A beautiful, production-ready Flutter expense tracking application with Liquid Glass design aesthetic.
- Expense Tracking: Add, edit, delete, and categorize expenses
- Budget Management: Set budgets for different categories with period support (weekly, monthly, yearly)
- Analytics: Visual spending breakdown with charts and insights
- Export: Export data to CSV and PDF formats
- Dark Mode: Full dark/light theme support
- Local Storage: Persistent data storage using Hive
- Beautiful UI: Liquid Glass design with glassmorphism effects
lib/
├── config/ # Environment configurations
│ ├── app_environment.dart # Environment enum and config class
│ ├── env_development.dart # Development environment config
│ ├── env_uat.dart # UAT environment config
│ ├── env_production.dart # Production environment config
│ └── environment_manager.dart # Environment manager
├── core/ # Core utilities and constants
│ ├── exceptions/ # Custom exceptions
│ ├── utils/ # Utility classes (Result, Logger)
│ └── constants/ # App-wide constants
├── models/ # Data models
│ ├── expense.dart # Expense model with Hive support
│ ├── budget.dart # Budget model with Hive support
│ └── category.dart # Category model
├── providers/ # State management
│ └── theme_provider.dart # Theme state management
├── screens/ # UI screens
│ ├── onboarding_screen.dart # Onboarding flow
│ ├── home_screen.dart # Main home screen
│ ├── add_expense_screen.dart # Add/Edit expense
│ ├── budget_screen.dart # Budget management
│ ├── budget_setup_screen.dart # Initial budget setup
│ ├── analytics_screen.dart # Analytics and charts
│ └── settings_screen.dart # App settings
├── services/ # Business logic services
│ ├── storage_service.dart # Hive storage abstraction
│ ├── expense_service.dart # Expense CRUD operations
│ ├── budget_service.dart # Budget CRUD operations
│ ├── export_service.dart # CSV/PDF export
│ └── analytics_service.dart # Analytics calculations
├── widgets/ # Reusable widgets
│ ├── expense_card.dart # Expense display card
│ ├── glass_card.dart # Glassmorphism card
│ └── gradient_button.dart # Gradient button
├── main.dart # Default entry point (production)
├── main_dev.dart # Development entry point
├── main_uat.dart # UAT entry point
└── main_prod.dart # Production entry point
This app supports three environments with different configurations:
- App Name: "Expense Tracker (Dev)"
- Debug Banner: Shown
- Logging: Verbose
- Analytics: Disabled
- Hive Prefix:
dev_
- App Name: "Expense Tracker (UAT)"
- Debug Banner: Hidden
- Logging: Info only
- Analytics: Enabled
- Hive Prefix:
uat_
- App Name: "Expense Tracker"
- Debug Banner: Hidden
- Logging: Errors only
- Analytics: Enabled
- Hive Prefix: None
flutter run -t lib/main_dev.dartflutter run -t lib/main_uat.dartflutter run -t lib/main_prod.dart
# or simply:
flutter runDevelopment:
flutter build apk -t lib/main_dev.dart --flavor devUAT:
flutter build apk -t lib/main_uat.dart --flavor uatProduction:
flutter build appbundle -t lib/main_prod.dart --flavor prodDevelopment:
flutter build ios -t lib/main_dev.dart --flavor DevelopmentUAT:
flutter build ios -t lib/main_uat.dart --flavor UATProduction:
flutter build ios -t lib/main_prod.dart --flavor Production- Provider: Used for theme management
- Services: Singleton services for business logic
- Result Pattern: Type-safe error handling with
Result<T, E>
- Hive: Local NoSQL database for offline storage
- TypeAdapters: Generated adapters for model serialization
- Custom Exceptions: App-specific exception types
- Result Type: Encapsulates success/failure states
- Logging: Environment-aware logging with
AppLogger
Run all tests:
flutter testRun specific test file:
flutter test test/services/expense_service_test.dartprovider: ^6.1.1
hive: ^2.2.3hive_flutter: ^1.1.0
fl_chart: ^0.66.0
intl: ^0.18.1
uuid: ^4.2.1
path_provider: ^2.1.1
csv: ^5.1.1pdf: ^3.10.7share_plus: ^7.2.1
glassmorphism: ^3.0.0flutter_animate: ^4.3.0shimmer: ^3.0.0blur: ^3.1.0
font_awesome_flutter: ^10.6.0
Generate Hive TypeAdapters:
flutter pub run build_runner buildThe app uses a "Liquid Glass" design aesthetic featuring:
- Glassmorphism effects with blur and transparency
- Gradient backgrounds (Purple → Pink → Blue)
- Smooth animations and transitions
- Consistent border radius (20px for cards)
- Semi-transparent overlays
- Primary Gradient:
#667eea→#764ba2→#f093fb - Scaffold Background:
#F5F5F5(light) /#121212(dark)
| Category | Color |
|---|---|
| Food & Dining | #FF6B6B |
| Transport | #4ECDC4 |
| Shopping | #FFB347 |
| Entertainment | #9B59B6 |
| Bills & Utilities | #3498DB |
| Healthcare | #E74C3C |
| Education | #2ECC71 |
| Travel | #1ABC9C |
| Groceries | #95A5A6 |
| Other | #7F8C8D |
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing framework
- Hive team for the efficient local database
- fl_chart team for beautiful charts