- Add, edit and delete income or expense transactions with custom categories.
- Browse today's transactions and view history with flexible date filters and sorting.
- Analyze spending using an animated pie chart grouped by category.
- Monitor account balance over time using charts.
- Biometric or PIN-code authentication protects your data.
- Helpful finance articles with fuzzy search.
- Theme customization with dynamic accent colors.
- Works completely offline thanks to ObjectBox local storage seeded with mock data.
The project follows a feature-first layout. Each feature exposes its own data, domain and presentation layers through Riverpod providers.
lib/
core/ # navigation, network and theming
features/
account/
articles/
auth/
balance/
settings/
transactions/
shared/ # reusable data sources and widgets
util/ # helpers such as logging
packages/
animated_pie_chart/ # local chart widget package
Repositories abstract local and remote data sources. Riverpod manages dependency injection and state. ObjectBox acts as the offline-first database, so the app functions without network connectivity.
-
Install Flutter (version 3.7 or newer).
-
Fetch the dependencies:
flutter pub get
-
Generate freezed, JSON serialization and ObjectBox bindings:
dart run build_runner build --delete-conflicting-outputs
-
Run the application on a device or emulator:
flutter run
Mock data for categories, articles and transactions is inserted on first launch from lib/shared/data/datasources/mock_data.dart.
This project is licensed under the MIT License