https://github.com/heartthanakorn/flutter-expense-manager
A modern Flutter expense management app with category tracking, local storage, and intuitive UI for personal budget management
https://github.com/heartthanakorn/flutter-expense-manager
budget-manager budget-tracking cross-platform dart expense-management expense-tracker financial-app flutter flutter-app local-storage material-design mobile-app money-management personal-finance provider-pattern
Last synced: 20 days ago
JSON representation
A modern Flutter expense management app with category tracking, local storage, and intuitive UI for personal budget management
- Host: GitHub
- URL: https://github.com/heartthanakorn/flutter-expense-manager
- Owner: HeartThanakorn
- License: mit
- Created: 2025-09-17T18:11:42.000Z (20 days ago)
- Default Branch: master
- Last Pushed: 2025-09-17T18:24:57.000Z (20 days ago)
- Last Synced: 2025-09-17T20:52:44.132Z (20 days ago)
- Topics: budget-manager, budget-tracking, cross-platform, dart, expense-management, expense-tracker, financial-app, flutter, flutter-app, local-storage, material-design, mobile-app, money-management, personal-finance, provider-pattern
- Language: Dart
- Homepage:
- Size: 274 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flutter Expense Manager ๐ฐ
A comprehensive Flutter application for tracking personal expenses with categories, tags, and local data persistence.
## ๐ฑ Features
- โ **Add, Edit & Delete Expenses** - Record your daily expenses with detailed information
- ๐ท๏ธ **Category Management** - Organize expenses by custom categories (Food, Transport, Entertainment, etc.)
- ๐ **Tag System** - Add descriptive tags for better expense organization
- ๐ **Expense Views** - View expenses grouped by date or category
- ๐พ **Local Storage** - All data persists locally using device storage
- ๐จ **Modern UI** - Clean, intuitive Material Design interface
- ๐ฑ **Cross-Platform** - Runs on Android, iOS, Web, Windows, macOS, and Linux## ๐ Quick Start
### Prerequisites
- Flutter SDK (3.5.2 or higher)
- Dart SDK
- Android Studio / VS Code
- Android/iOS emulator or physical device### Installation
1. **Clone the repository**
```bash
git clone https://github.com/HeartThanakorn/flutter-expense-manager.git
cd expense_manager
```2. **Install dependencies**
```bash
flutter pub get
```3. **Run the application**
```bash
flutter run
```## ๐ Project Structure
```
lib/
โโโ main.dart # App entry point
โโโ models/ # Data models
โ โโโ expense.dart # Expense model with JSON serialization
โ โโโ expense_category.dart # Category model
โ โโโ tag.dart # Tag model
โโโ providers/ # State management
โ โโโ expense_provider.dart # Main provider for app state
โโโ screens/ # UI screens
โ โโโ home_screen.dart # Main dashboard with expense lists
โ โโโ add_expense_screen.dart # Add/edit expense form
โ โโโ category_management_screen.dart # Manage categories
โ โโโ tag_management_screen.dart # Manage tags
โโโ widgets/ # Reusable UI components
โโโ add_category_dialog.dart # Dialog for adding categories
โโโ add_tag_dialog.dart # Dialog for adding tags
```## ๐ ๏ธ Built With
- **[Flutter](https://flutter.dev/)** - UI framework
- **[Provider](https://pub.dev/packages/provider)** - State management
- **[LocalStorage](https://pub.dev/packages/localstorage)** - Data persistence
- **[Intl](https://pub.dev/packages/intl)** - Date formatting
- **[Collection](https://pub.dev/packages/collection)** - Data grouping utilities## ๐ธ Screenshots
### Home Screen - By Date View
The main dashboard showing all expenses organized by date with swipe-to-delete functionality.
### Home Screen - By Category View
Expenses grouped by categories with totals for each category.
### Add Expense Screen
Comprehensive form for adding new expenses with category and tag selection.
### Category Management
Screen for managing expense categories with add/delete functionality.
## ๐๏ธ Architecture
This app follows Flutter best practices with:
- **Provider Pattern** for state management
- **Separation of Concerns** with dedicated folders for models, screens, and widgets
- **Local Data Persistence** using LocalStorage
- **Responsive Design** that works across different screen sizes## ๐งช Testing
Run the test suite:
```bash
# Run all tests
flutter test# Run tests with coverage
flutter test --coverage# Run specific test file
flutter test test/providers/expense_provider_test.dart
```## ๐ Building for Production
### Android
```bash
flutter build apk --release
# or for app bundle
flutter build appbundle --release
```### iOS
```bash
flutter build ios --release
```### Web
```bash
flutter build web --release
```### Desktop (Windows/macOS/Linux)
```bash
flutter build windows --release
flutter build macos --release
flutter build linux --release
```## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---