An open API service indexing awesome lists of open source software.

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

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.

---