A beautiful and modern Money Management App built with Flutter, using GetX for state management and Hive for local storage. Track your expenses, manage budgets by category, and stay on top of your finances with an intuitive and reactive interface.
- Choose from 24+ currencies on first launch
- Automatic currency symbol display throughout the app
- Supports USD, EUR, GBP, INR, JPY, and many more
- Set monthly income and track spending
- Create unlimited expense categories
- Assign budget limits to each category
- Visual progress bars with color-coded status:
- π’ Green: < 75% spent
- π Orange: 75-100% spent
- π΄ Red: > 100% spent (over budget)
- Add transactions with amount, note, and date
- View all transactions in a single list
- Category-wise transaction history
- Real-time spending calculations
- Navigate between months to view historical data
- Track budgets and spending over time
- Persistent storage of all data
- Material Design 3
- Smooth animations and transitions
- Clean, minimalist interface
- Reactive updates with GetX
- Pull-to-refresh functionality
- All data stored locally using Hive
- No internet connection required
- Fast and reliable data access
- Complete data privacy
- Flutter SDK 3.0 or higher
- Dart 3.0 or higher
- Android Studio / VS Code with Flutter extensions
- Android Emulator / iOS Simulator / Physical Device
-
Clone the repository
git clone https://github.com/yourusername/budget-buddy.git cd budget-buddy -
Install dependencies
flutter pub get
-
Generate Hive adapters
flutter pub run build_runner build --delete-conflicting-outputs
-
Run the app
flutter run
lib/
βββ main.dart # App entry point
βββ data/
β βββ models/ # Data models
β β βββ category.dart # Category model with Hive adapter
β β βββ transaction_item.dart # Transaction model with Hive adapter
β βββ storage/
β βββ hive_boxes.dart # Hive box configuration
β βββ hive_service.dart # Hive database operations
βββ modules/ # Feature modules
β βββ dashboard/ # Dashboard module
β β βββ dashboard_controller.dart # Dashboard logic
β β βββ dashboard_view.dart # Dashboard UI
β β βββ set_income_dialog.dart # Income dialog
β βββ category/ # Category module
β β βββ category_controller.dart # Category logic
β β βββ category_view.dart # Category list UI
β β βββ add_transaction_view.dart # Add transaction UI
β βββ add_category/ # Add category module
β β βββ add_category_controller.dart
β β βββ add_category_view.dart
β βββ transactions/ # All transactions module
β β βββ transactions_controller.dart
β β βββ transactions_view.dart
β βββ currency_selection/ # Currency selection module
β βββ currency_selection_controller.dart
β βββ currency_selection_view.dart
βββ routes/ # Navigation routes
β βββ app_pages.dart # GetX routes configuration
β βββ app_routes.dart # Route constants
βββ services/ # Business logic services
β βββ budget_service.dart # Budget calculations
β βββ income_service.dart # Income management
βββ utils/ # Utilities
β βββ constants.dart # App constants & styling
β βββ helpers.dart # Helper functions
β βββ currency_helper.dart # Currency operations
βββ widgets/ # Reusable widgets
βββ category_card.dart # Category card widget
βββ transaction_tile.dart # Transaction tile widget
βββ progress_bar.dart # Progress bar widget
- Framework: Flutter 3.0+
- State Management: GetX 4.6.6
- Local Storage: Hive 2.2.3
- Language: Dart 3.0+
- UI: Material Design 3
dependencies:
flutter:
sdk: flutter
get: ^4.6.6 # State management, navigation, DI
hive: ^2.2.3 # Local NoSQL database
hive_flutter: ^1.1.0 # Flutter integration for Hive
uuid: ^3.0.7 # Unique ID generation
intl: ^0.19.0 # Internationalization & formatting
dev_dependencies:
hive_generator: ^2.0.1 # Generate Hive adapters
build_runner: ^2.4.6 # Code generation
flutter_lints: ^2.0.0 # Linting rules- Select Currency: Choose your preferred currency from the list
- Set Income: Tap the settings icon and set your monthly income
-
Create Categories:
- Tap "Manage Categories"
- Click "Add Category"
- Enter name, budget limit, and choose a color
- Tap "Create Category"
-
Add Transactions:
- Tap a category to view transactions
- Click the "+" button to add a new transaction
- Enter amount, note, and date
- Tap "Add Transaction"
-
View Spending:
- Dashboard shows total income, spent, remaining, and unallocated
- Tap "Total Spent" to see all transactions
- Each category shows progress and remaining balance
-
Navigate Months:
- Use arrow buttons on dashboard to switch months
- View historical budgets and spending
| Dashboard | Categories | Transactions |
|---|---|---|
- Clean Architecture: Separation of concerns (data, business logic, UI)
- Feature-Based Modularization: Each feature in its own module
- Repository Pattern: Abstracted data access through services
- Reactive Programming: GetX observables for state management
- GetX Controllers: Manage business logic and state
- Reactive Variables: Automatic UI updates with
RxandObx - Dependency Injection: GetX's lazy loading and permanent services
- Navigation: Route-based navigation with GetX routing
- Hive: Fast, lightweight NoSQL database
- Local-Only: All data stored on device
- Type-Safe: Generated adapters for models
- Persistent: Data survives app restarts
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Flutter and Dart conventions
- Maintain clean architecture principles
- Add comments for complex logic
- Ensure all code passes linting
- Test on both Android and iOS
This project is licensed under the MIT License - see the LICENSE file for details.
- GetX - Amazing state management solution
- Hive - Fast and efficient local storage
- Flutter team for the incredible framework
Your Name - @syeduzaif
Project Link: https://github.com/syeduzaif/Budget-buddy
If you like this project, please give it a β on GitHub!
Made with β€οΈ using Flutter