- Provider (State Management)
- Hive (Local Persistence)
- Repository Pattern
- Clean Architecture Principles
- Animated Donut Chart
- Monthly & Yearly Analytics
- CRUD with Undo
- Unit Tested Business Logic
- Add Expense
- Edit Expense
- Delete Expense
- Undo Delete
- Persistent Local Storage (Hive)
- Category-based analytics
- Monthly filtering
- Yearly summary view
- Animated Donut Chart
- Category percentage display
- Dynamic month navigation
- Year toggle mode
- UI handles rendering
- Provider manages state
- Repository handles storage
- Hive handles persistence
lib/
│
├── models/
│ └── expense.dart
│
├── providers/
│ └── expense_provider.dart
│
├── repositories/
│ └── expense_repository.dart
│
├── screens/
│ └── home_screen.dart
│
├── widgets/
│ ├── add_expense_sheet.dart
│ └── category_chart.dart
│
└── main.dart- Flutter
- Provider
- Hive
- fl_chart
- mocktail (testing)
git clone https://github.com/YOUR_USERNAME/expense_tracker.git
cd expense_trackerflutter pub getflutter pub run build_runner build --delete-conflicting-outputsflutter runflutter test- Lightweight, scalable, clean separation of UI and business logic.
- Allows swapping storage (Hive → Firebase/SQLite) without touching UI.
- Fast
- Offline-first
- No heavy SQL setup
- Perfect for Flutter apps
- Firebase Sync
- Budget Limits per Category
- Export to CSV
- Dark Mode
- CI/CD Pipeline
- Cloud Backup
MIT License