MoneyManager is a polished Flutter application for tracking expenses, managing budgets, and gaining insight into your personal finances. It combines a beautiful Material 3 expressive UI with powerful features like cloud sync, local CSV backup, detailed analytics, and OLED-optimised dark mode β all in a single, lightweight app.
| Category | Details |
|---|---|
| π Dashboard | Financial overview with expressive charts, income/expense summaries, and trend analytics |
| πΈ Transactions | Add, edit, delete, and categorise income and expenses with ease |
| π¦ Accounts | Track multiple payment methods and account balances simultaneously |
| π Calendar View | Browse transactions by date with an interactive calendar |
| π Analysis | Detailed monthly/yearly breakdowns and category-level insights |
| βοΈ Cloud Sync | Real-time backup and restore via Firebase Firestore |
| πΎ CSV Export | Export and restore all transaction data as CSV files locally |
| π Biometric Auth | Secure app access with fingerprint / face unlock |
| π OLED Dark Mode | True-black backgrounds for OLED displays β saves battery and looks stunning |
| π¨ Material 3 UI | Dynamic colour theming, expressive animations, and adaptive layouts |
| π¬ In-App Feedback | Send feedback directly from the settings screen |
| Layer | Technology |
|---|---|
| Framework | Flutter 3.0+ |
| Language | Dart 3.0+ |
| State Management | Riverpod |
| Cloud Database | Firebase Firestore |
| Local Database | SQLite (sqflite) |
| Charts | fl_chart |
| Theming | dynamic_color Β· Material 3 |
| Authentication | local_auth |
- Flutter SDK β₯ 3.0
- Dart SDK β₯ 3.0
- A Firebase project with Firestore enabled
-
Clone the repository
git clone https://github.com/yourusername/moneymanager.git cd moneymanager -
Install dependencies
flutter pub get
-
Configure Firebase
- Create a project in the Firebase Console.
- Enable Cloud Firestore in the database section.
- Download
google-services.jsonand place it inandroid/app/.google-services.jsonis excluded from version control β never commit it.
-
Run the app
flutter run
flutter build apk --releaselib/
βββ src/
βββ core/ # Theme, constants, and app-wide configuration
βββ data/ # Repository and data-access layer
βββ models/ # Data models (transaction, account, category, etc.)
βββ providers/ # Riverpod state providers
βββ screens/ # Feature screens (dashboard, analysis, accounts, β¦)
βββ services/ # Firebase, SQLite, and CSV services
βββ utils/ # Helper functions and extensions
βββ widgets/ # Reusable UI components
assets/
βββ icons/ # App icon and category icons
βββ images/ # Illustrations, logos, and onboarding graphics
- Never commit
google-services.jsonor any other credentials to version control. - All sensitive files are listed in
.gitignore. - See SECURITY.md for the full security policy and vulnerability reporting process.
Contributions are welcome! Please read CONTRIBUTING.md before submitting a pull request.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feature/your-feature - Open a Pull Request
See CHANGELOG.md for a full history of releases and changes.
This project is licensed under the MIT License β see the LICENSE file for details.