A beautiful, feature-rich Flutter application for tracking expenses offline with personalized notifications and comprehensive analytics.
- Offline Expense Tracking - Track expenses without internet connection
- Income & Expense Management - Categorized transaction management
- Multi-Currency Support - Support for 10+ currencies (PHP, USD, EUR, etc.)
- Beautiful Charts & Analytics - Visual representation of spending patterns
- Home Widgets - Quick access to balance and recent transactions
- Personalized Low Balance Alerts - Custom notifications with user's name
- Customizable Threshold - Set your own low balance warning amount
- Custom Messages - Personalize notification messages with placeholders
- Smart Notification Logic - Prevents spam with intelligent triggering
- Animated Splash Screen - Beautiful app launch experience
- Material Design 3 - Modern, clean interface
- Dark/Light Theme Support - Adapts to system preferences
- Intuitive Navigation - Easy-to-use bottom navigation
- First-Time Setup - Guided user onboarding
- Version History - Clickable version information with detailed changelog
- Data Management - Export/import and reset functionality
- Settings Customization - Comprehensive app configuration
- Flutter SDK (>=3.7.2)
- Dart SDK
- Android Studio / VS Code
- Android device or emulator
-
Clone the repository
git clone https://github.com/Allain-afk/ExpenseTracker.git cd ExpenseTracker -
Install dependencies
flutter pub get
-
Run the app
flutter run
# Build APK
flutter build apk --release
# Build App Bundle (for Play Store)
flutter build appbundle --releaseflutter- UI frameworkprovider- State managementsqflite- Local databaseshared_preferences- Local storageintl- Internationalization
fl_chart- Beautiful chartsanimated_splash_screen- Splash screen animationsflutter_native_splash- Native splash screen
flutter_local_notifications- Local notificationspermission_handler- Permission managementhome_widget- Home screen widgets
path_provider- File system pathspath- Path manipulation
lib/
βββ main.dart # App entry point
βββ models/ # Data models
β βββ settings.dart
β βββ transaction.dart
βββ providers/ # State management
β βββ settings_provider.dart
β βββ transaction_provider.dart
βββ screens/ # UI screens
β βββ splash_screen.dart
β βββ user_setup_screen.dart
β βββ main_navigation_screen.dart
β βββ home_screen.dart
β βββ add_transaction_screen.dart
β βββ transactions_screen.dart
β βββ settings_screen.dart
βββ services/ # Business logic
β βββ notification_service.dart
β βββ widget_service.dart
βββ database/ # Database layer
β βββ database_helper.dart
βββ utils/ # Utilities
βββ widgets/ # Reusable widgets
- Multi-Wallet & Modern UI Enhancements
- Introduced Multi-Wallet System with dedicated balances per card
- Overhauled Dashboard into a glassmorphic Multi-Wallet Carousel
- Redesigned Bottom Navigation Bar into a sleek floating dock
- Migrated generic UI lists to iOS-style Inset Grouped layout
- New user UI/UX functionalities
- Added notification system for low budget threshold
- Personalized notifications with user name
- Customizable notification settings
- First-time user setup flow
- App Animation Feature (Splash Screen)
- Beautiful animated splash screen
- Smooth transitions and loading animations
- UI and UX Improvements
- Enhanced user interface design
- Better user experience
- Performance optimizations
- App Icon Update
- New and improved app icon
- Better visual identity
- Basic Features for Expense Tracking
- Core expense tracking functionality
- Transaction management
- Basic reporting features
-
Install Flutter
- Follow the official Flutter installation guide
-
Configure IDE
- Install Flutter and Dart plugins for your IDE
- Configure code formatting and linting
-
Run in Debug Mode
flutter run --debug
- Follow Dart style guide
- Use
flutter formatfor consistent formatting - Run
flutter analyzefor static analysis
# Run unit tests
flutter test
# Run integration tests
flutter drive --target=test_driver/app.dart- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Allain Ralph Legaspi
- GitHub: @Allain-afk
- Flutter team for the amazing framework
- Material Design for the design system
- All contributors and testers
Made with β€οΈ using Flutter