FastForex
Real-time currency conversion in your pocket
A sleek, modern Flutter app for instant currency exchange rates and conversions
Features * Screenshots * Installation * Usage * Tech Stack * Contributing * License
Features
- Real-time Currency Conversion -- Convert between currencies with up-to-date exchange rates
- Visual Trend Analysis -- Track exchange rate history with beautiful interactive charts
- Favorites System -- Mark currencies for quick access and conversion
- Conversion History -- Keep track of your previous conversions
- Light & Dark Themes -- Switch between visual modes for comfortable viewing
- Simple & Intuitive Interface -- Clean design focused on user experience
- Lightning Fast Calculations -- Instant results with every input
- Responsive Design -- Works beautifully on any screen size
Screenshots
Installation
Prerequisites
- Flutter SDK (2.12.0 or later)
- Dart SDK (2.17.0 or later)
- Android Studio / VS Code with Flutter plugins
- An API key from OpenExchangeRates
Setup Instructions
-
Clone this repository to your local machine:
git clone https://github.com/madboy482/FastForex.git -
Navigate to the project directory:
cd FastForex -
Install dependencies:
flutter pub get -
Configure the API Key:
-
Obtain an API key from OpenExchangeRates by signing up at OpenExchangeRates.
-
Replace
"your_api_key"with your actual API key in lib/utils/constants.dart:class Constants {
// API key for OpenExchangeRates
static const String API_KEY = "your_api_key";
...
...
}
- Run the app on your preferred platform:
-
Android:
flutter run -
Windows:
flutter run -d windows -
Web (Run on Chrome):
flutter run -d chrome
-
Build for production:
# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# Web application
flutter build web --release
# Windows application
flutter build windows --release
How to Use
Currency Conversion
- Enter the amount you want to convert.
- Select source and target currencies.
- Tap "Convert" to see the result.
- Use the swap button to quickly reverse the conversion.
Tracking Favorites
- Star any currency to add it to your favorites.
- Access your favorite currencies quickly from the Favorites tab.
Viewing Trends
- Navigate to the Trends tab to visualize exchange rate history.
- See how rates have changed over the last 14 days.
Managing History
- View your past conversions in the History tab.
- Delete individual history items by swiping.
Tech Stack
- Framework: Flutter
- API Integration: OpenExchangeRates API
- State Management: Flutter's built-in state management
- Data Storage: SharedPreferences for local storage
- Charts & Visualization:
fl_chartpackage - Networking: Dart
httppackage
Project Structure
+-- main.dart # App entry point
+-- models/ # Data models
| +-- currency.dart # Currency data structure
| +-- conversion_history.dart # Model for storing past conversions
+-- screens/ # App screens
| +-- home_screen.dart # Main tabbed interface
| +-- convert_screen.dart # Currency conversion UI
| +-- history_screen.dart # Conversion history
| +-- trends_screen.dart # Exchange rate trends
| +-- favorites_screen.dart # Favorite currencies
+-- services/ # API services
| +-- currency_api_service.dart # OpenExchangeRates API integration
+-- utils/
| +-- constants.dart # App constants and configurations
| +-- theme.dart # Theme definitions and utilities
+-- widgets/ # Reusable UI components
+-- exchange_rate_chart.dart # Currency trend chart
+-- conversion_result_card.dart # Displays converted currency amount
+-- currency_dropdown.dart # Dropdown for selecting currencies
Future Enhancements
- Currency Alerts -- Notifications when exchange rates reach target values
- Currency Calculator -- Advanced calculator with multiple operations
- Widgets -- Home screen widgets for quick conversion
- Historical Data -- Extended historical data with custom date ranges
- Multi-language Support -- Interface translations for global users
- Currency News -- Latest updates and news affecting exchange rates
Contributing
Contributions are welcome! If you have ideas for improvements, feel free to fork the repo and submit a PR.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit changes:
git commit -m "Added new feature" - Push to GitHub:
git push origin feature-name - Open a Pull Request
License
This project is open-source and available under the MIT License.
See the full license details here.
Connect with Me
- GitHub: @madboy482
- LinkedIn: Nalin
- Portfolio: madboy482.me
If you like this project, don't forget to star the repo!