Screenshots
A polished, production-ready Flutter app for tracking expenses, managing budgets, and visualizing your finances.
Features β’ Architecture β’ Getting Started β’ Tech Stack β’ Screenshots β’ Contributing
budget_app is a comprehensive personal finance manager built with Flutter and modern best practices. It helps you record transactions, analyze spending, create budgets, and export professional reports β all with a clean, responsive UI and offline-first storage.
- Clean Architecture (domain/data/presentation separation)
- Riverpod-based state management (reactive, testable)
- Local storage (Hive/SQLite) for fast offline access
- Modern Material 3 UI with theming and dark mode
- Analytics dashboards and charts (FL Chart / Syncfusion)
- Biometric authentication and local notifications
- Export to PDF/CSV, advanced filters, and search
- Add/edit/delete income and expenses
- Custom categories with color and icons
- Notes and optional receipt images
- Recurring transactions (daily/weekly/monthly/yearly)
- Unified quick-add modal from anywhere (FAB, nav, dashboard)
- Searchable category Autocomplete for faster selection
- Inline bottom sheet date picker for rapid date changes
- Two-decimal amount enforcement & keyboard optimizations
- Income vs Expense overview (monthly)
- Category breakdown with top spenders
- Recent activity and trends
- Multiple chart types and time ranges
- Memoized monthly & category totals (performance)
- Animated transaction list entries (smooth state feedback)
- Per-category or overall budgets
- Real-time progress indicators
- Alerts at thresholds (e.g., 80%)
- Biometric auth (Face ID / Touch ID / fingerprint)
- Local notifications and reminders
- PDF reports with charts, CSV export
- Multi-currency support
- Encrypted Hive box for transactions (secure local storage)
- PIN lock with timeout & improved back navigation handling
This app follows Clean Architecture principles to keep code scalable and testable.
lib/
βββ core/ # Core utilities and base classes
β βββ error/ # Error handling
β βββ usecase/ # Base use case abstractions
βββ data/ # Data layer (models, repositories impl)
β βββ models/
β βββ repositories/
βββ domain/ # Business logic (entities, repos, usecases)
β βββ entities/
β βββ repositories/
β βββ usecases/
βββ presentation/ # UI layer (providers, screens)
β βββ providers/
β βββ ...
βββ services/ # Device/services (DB, notifications, PDF)
βββ utils/ # Themes and helpers
Related docs in repo:
- IMPLEMENTATION_SUMMARY.md
- RECENT_UPDATES.md
- RECENT_UI_IMPROVEMENTS.md
- LATEST_FIXES_OCT15.md
- MONTHLY_SELECTION_ENHANCEMENT_OCT16.md
- Flutter SDK 3.0+
- Dart 3.0+
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputsflutter run-
Web:
flutter run -d chrome -
Desktop: Enable platform (Windows/Linux/macOS) in Flutter config
-
Flutter 3 β’ Dart 3
-
Riverpod 2.4+ for state management
-
Charts: fl_chart, syncfusion_flutter_charts
-
Auth/Notifications: local_auth, flutter_local_notifications, timezone
-
Exports: pdf, printing, csv
-
UI/UX: google_fonts, lottie, shimmer, animations See
pubspec.yamlfor full dependency list.
Add screenshots under docs/screenshots/ and reference them here:
docs/
βββ screenshots/
βββ dashboard.png
βββ analytics.png
βββ add_transaction.png
flutter test- Incremental aggregates stored in
AppStatefor O(1) reads - Pagination +
LazyBoxadoption for large data sets - Attachments image compression & path storage
- Material 3 surface container theme refinements
- Advanced recurrence: skip-once & auto-catch-up logic
- Quiet hours for notification scheduling
- Provider, integration & golden tests expansion
- Minimal logging abstraction (replacing raw prints)
This README.md is the canonical documentation for the app. All prior markdown notes and logs have been consolidated here so the codebase can stay tidy. If you remove other .md files from the repository, you will still have everything you need (features, setup, roadmap) in this document.
For deeper changelogs or release notes, consider tracking them in GitHub Releases going forward.
- Cloud sync
- Investment tracking
- ML-based spending insights
- Web dashboard
Track ongoing updates in the repo's markdown logs listed above.
- Category Autocomplete
- Inline CalendarDatePicker sheet
- SliverList conversion with keep-alive
- Transaction item fade/slide animations
- Hive AES encryption (secure key via flutter_secure_storage)
- Memoized derived totals providers
- Quick-add tooltip on Transactions tab
- PopScope migration for lock screen
Contributions are welcome! Please open an issue to discuss changes. Follow conventional commits where possible (e.g., feat:, fix:, chore:).
This project is licensed under the MIT License. See LICENSE for details.
Made with β€οΈ using Flutter
