Skip to content

OpenVibes/Expense-Tracker

Repository files navigation

Expense Tracker Logo

💰 Expense Tracker

A modern, beautiful expense tracking app built with Flutter

FeaturesScreenshotsTech StackInstallationArchitectureContributing

Flutter Dart Platform License


✨ Features

💳 Account Management

  • Multiple Account Types — Track Bank accounts, Trading portfolios, and Cash wallets
  • Real-time Balance — See your total balance across all accounts at a glance
  • Color-coded Categories — Easily distinguish between different account types

📊 Transaction Tracking

  • Income & Expenses — Log all your financial activities with categories
  • Transfer Between Accounts — Move money between your accounts seamlessly
  • Transaction History — View, filter, and search through all your transactions

📈 Insights & Analytics

  • Visual Charts — Beautiful pie charts and bar graphs powered by FL Chart
  • Monthly Summaries — Track income vs expenses for any month
  • Spending Patterns — Understand where your money goes

🎨 Premium UI/UX

  • Dark Mode Design — Stunning dark theme with glassmorphism effects
  • Smooth Animations — Declarative animations throughout the app
  • Modern Typography — Clean fonts via Google Fonts (Outfit & Inter)
  • Responsive Layout — Works beautifully on phones, tablets, and desktop

🔐 Security

  • PIN Protection — Secure your financial data with a PIN
  • Local Storage — All data stays on your device
  • No Cloud Required — Complete privacy, works offline

🌍 Localization

  • Multi-currency Support — Track expenses in your preferred currency
  • Locale-aware Formatting — Proper number and date formatting

🖼️ Screenshots

Dashboard Transactions Insights Accounts
Dashboard Transactions Insights Accounts

🛠️ Tech Stack

Core

Technology Purpose
Flutter 3.5+ Cross-platform UI framework
Dart 3.0+ Programming language
Riverpod State management
Go Router Navigation & routing

Data & Storage

Technology Purpose
Drift (SQLite) Local database
Shared Preferences Settings storage
Freezed Immutable data classes

UI & Design

Technology Purpose
Flutter Animate Declarative animations
FL Chart Charts & graphs
Google Fonts Typography
Glassmorphism Modern glass effects

Utilities

Technology Purpose
intl Date & number formatting
UUID Unique ID generation
CSV Data export support
Share Plus Share functionality

🚀 Installation

Prerequisites

  • Flutter SDK >=3.5.0
  • Dart SDK >=3.0.0
  • Android Studio / Xcode (for mobile development)

Steps

  1. Clone the repository

    git clone https://github.com/OpenVibes/Expense-Tracker.git
    cd expense-tracker-dart
  2. Install dependencies

    flutter pub get
  3. Generate code (for Drift, Freezed, Riverpod)

    dart run build_runner build --delete-conflicting-outputs
  4. Run the app

    # For development
    flutter run
    
    # For specific platform
    flutter run -d android
    flutter run -d ios
    flutter run -d chrome
    flutter run -d windows
    flutter run -d macos
    flutter run -d linux

Build for Production

# Android APK
flutter build apk --release

# Android App Bundle
flutter build appbundle --release

# iOS
flutter build ios --release

# Web
flutter build web --release

🏗️ Architecture

The project follows a clean architecture pattern with clear separation of concerns:

lib/
├── core/                   # App-wide utilities
│   ├── constants.dart      # App constants
│   ├── router.dart         # Navigation setup
│   └── theme/              # Design system
│       ├── app_colors.dart # Color palette
│       └── app_theme.dart  # ThemeData
│
├── data/                   # Data layer
│   └── database/           # Drift database
│       └── database.dart   # Tables & DAOs
│
├── domain/                 # Business logic
│   └── entities/           # Domain models
│       └── enums.dart      # Enumerations
│
├── presentation/           # UI layer
│   ├── providers/          # Riverpod providers
│   ├── screens/            # App screens
│   │   ├── auth/           # Authentication
│   │   ├── onboarding/     # Onboarding flow
│   │   ├── settings/       # Settings
│   │   └── *.dart          # Main screens
│   └── widgets/            # Reusable widgets
│
└── main.dart               # Entry point

Key Design Patterns

  • Provider Pattern — State management with Riverpod
  • Repository Pattern — Data abstraction
  • Composition — Widget composition for reusability
  • Declarative UI — Flutter's widget-based architecture

🎨 Design System

Color Palette

Color Hex Usage
🟣 Primary #6B4BFF Main actions, highlights
🔵 Secondary #00D1FF Accent elements
🔴 Accent #FF0080 Alerts, CTAs
⬛ Background #050511 App background
🟢 Success #00FF94 Income, positive
🔴 Error #FF3B30 Expenses, errors

Typography

  • Headings: Outfit (Bold, Semi-bold)
  • Body: Inter (Regular, Medium)

📱 Supported Platforms

Platform Status Min Version
Android ✅ Supported API 21 (5.0)
iOS ✅ Supported iOS 12.0
Web ✅ Supported Modern browsers
Windows ✅ Supported Windows 10+
macOS ✅ Supported macOS 10.14+
Linux ✅ Supported Modern distros

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write meaningful commit messages
  • Update documentation as needed
  • Test on multiple platforms when possible

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments


Made with ❤️ by OpenVibes

⭐ Star this repo🐛 Report Bug✨ Request Feature

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published