Finager is a comprehensive finance management application designed to help users track expenses, manage budgets, and monitor financial activities efficiently. Finager targets Logistic Business for truck dispatching, expense tracking and family expenses and incomes. The app is built with Flutter and provides a modern, cross-platform solution for personal and business finance management.
The project uses the following technologies:
- Flutter
- Riverpod
- GoRouter
- HTTP
- Shared Preferences
- Image Picker
- Cached Network Image
- FL Chart
- Flutter Localizations
- Cupertino Icons
- Add Transactions: Record income and expense transactions with detailed information
- Transaction Types: Support for both income and expense tracking
- Categories: Organize transactions by categories (household expenses and truck expenses)
- Payment Methods: Track payment methods for each transaction
- Transaction History: View and filter transaction history with date ranges
- Edit & Delete: Modify or remove existing transactions
- Truck Dispatch Tracking: Manage truck dispatching operations
- Active Dispatch: Monitor currently active dispatches
- Dispatch List: View all dispatch records with details
- Cost & Revenue Tracking: Track total costs and revenues for each dispatch
- Driver Management: Assign and track drivers for dispatches
- Dispatch Details: View comprehensive dispatch information including associated transactions
- Expense Analytics: Visual pie charts for expense breakdown
- Household Expenses: Separate analytics for household-related expenses
- Truck Expenses: Dedicated analytics for truck-related expenses
- Monthly Statistics: Track monthly income and expenses
- Daily Averages: View daily average income and expenses
- Weekly Statistics: Monitor weekly financial trends
- Today's Summary: Quick overview of today's income and expenses
- Account Management: Manage user account details and display name
- Multi-language Support:
- English
- Burmese (Myanmar)
- Chinese
- Theme Settings: Choose between Light, Dark, or System theme
- Font Size: Adjustable font size (14-18) for better readability
- Model Settings: Manage core data models:
- Trucks: Add, edit, and manage truck information (name, IMEI, license expiry, color, type)
- Payment Methods: Configure available payment methods
- Categories: Manage transaction categories (household and truck expenses)
- Secure user authentication
- Token-based authentication system
- Session management
- Modern and intuitive Material Design UI
- Responsive layout for various screen sizes
- Pull-to-refresh functionality
- Loading indicators and overlays
- Custom bottom navigation bar
- Smooth navigation with GoRouter
- Framework: Flutter
- State Management: Riverpod
- Routing: GoRouter
- Charts: FL Chart
- HTTP Client: HTTP package
- Local Storage: Shared Preferences
- Image Handling: Image Picker, Cached Network Image
- Localization: Flutter Localizations (i18n)
- UI Components: Material Design, Cupertino Icons
lib/
├── components/ # Reusable UI components
├── core/ # App configuration and routing
├── l10n/ # Localization files (English, Burmese, Chinese)
├── models/ # Data models (Transaction, Dispatch, Category, etc.)
├── providers/ # Riverpod state providers
├── screens/ # App screens
│ ├── analytics_screen.dart
│ ├── dispatch/ # Dispatch-related screens
│ ├── edit_transaction/
│ ├── home/ # Home screen components
│ ├── login_screen.dart
│ ├── main_screen.dart
│ ├── new_transaction/
│ ├── settings/ # Settings screens
│ ├── splash_screen.dart
│ └── transaction_history/
├── services/ # API and authentication services
├── utils/ # Utility functions
└── widgets/ # Custom widgets
- Flutter SDK (^3.7.2)
- Dart SDK
- Android Studio / Xcode (for mobile development)
- A backend API server (configured at
https://finager.pythonanywhere.com)
- Clone the repository:
git clone https://github.com/Winstonjames2/expense_tracker_flutter.git
cd expense_tracker_flutter- Install dependencies:
flutter pub get-
Configure the API endpoint (if needed):
- Edit
lib/services/api_service.dart - Update the
baseUrlconstant
- Edit
-
Generate I10n for translations
flutter gen-l10n- Run the app:
flutter runAndroid:
flutter build apk --release
# or
flutter build appbundle --releaseWeb:
flutter build web Windows:
flutter build windows --releaseFor backend, I use python django rest framework. You can find the backend code at https://github.com/Winstonjames2/expense_tracker_backend_django
To connect to the backend, simply change the baseUrl constant in lib/services/api_service.dart to your backend URL.
- Tracks financial transactions (income/expense)
- Includes amount, category, payment method, date, description
- Can be associated with truck dispatching
- Manages truck dispatch operations
- Tracks dispatch date, truck, driver, costs, and revenues
- Supports active/inactive status
- Organizes transactions into categories
- Supports household and truck expense categories
- Multi-language support for category names
- Manages truck information
- Includes name, IMEI, license expiry date, color, and type
The app connects to a backend API for data synchronization. The API service handles:
- User authentication
- Transaction CRUD operations
- Dispatch management
- Category, payment method, and truck management
- Data synchronization
The app supports three languages:
- English (en)
- Burmese/Myanmar (my)
- Chinese (zh)
Localization files are located in lib/l10n/ directory.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For support or questions, please contact: [email protected]
Version: 1.0.1