mobile

FinWallet

A modern finance wallet application with beautiful UI/UX

FinWallet Logo

A modern, premium finance wallet application built with Flutter. FinanceWallet helps users manage their finances with a beautiful UI, robust offline-first architecture, and secure biometric authentication.


✨ Features#

  • 🔒 Biometric Security: Secure your data with fingerprint/face ID authentication.
  • 💳 Account Management: Support for multiple account types (Cash, Bank, Savings, etc.).
  • 💸 Transaction Tracking: Easily log income, expenses, and transfers between accounts.
  • 📊 Visual Insights: Beautifully rendered charts to visualize spending habits.
  • 📶 Offline-First: Seamlessly access and manage your data with or without internet.
  • 🎨 Premium UI/UX: Modern design system featuring glassmorphism, dark mode support, and smooth micro-animations.

🛠 Tech Stack#


🏗 Architecture#

The project follow the MVVM (Model-View-ViewModel) architectural pattern combined with a robust Offline-First strategy.

Component Relationship#

graph TD
    subgraph Presentation
        View[View / Pages]
        VM[ViewModel / Notifier]
    end
 
    subgraph Domain
        Provider[Riverpod Providers]
    end
 
    subgraph Data
        Repo[Repository Implementation]
        Remote[Remote DataSource]
        Local[Local DataSource]
    end
 
    View <--> VM
    VM <--> Provider
    Provider <--> Repo
    Repo <--> Remote
    Repo <--> Local
    Remote <--> API[Backend API]
    Local <--> DB[(Drift SQLite)]

Key Principles#

  1. Unidirectional Data Flow: State flows down, events flow up.
  2. Offline-First: Data is always fetched from the local database first, with network updates happening in the background.
  3. Reactive UI: The UI automatically updates when the underlying data in the database or state changes.

📁 Project Structure#

lib/
├── app/                # App-wide configuration (theme, routes)
├── core/               # Shared utilities, database, and network config
├── features/           # Feature-based modules
│   ├── auth/           # Authentication & Biometric guard
│   ├── dashboard/      # Main overview & charts
│   ├── accounts/       # Account management
│   ├── transactions/   # Transaction logging & filtering
│   └── profile/        # User settings & preferences
└── shared/             # Reusable UI components & extensions

🚀 Getting Started#

Prerequisites#

  • Flutter SDK ^3.10.4
  • Dart SDK ^3.10.4

Installation#

  1. Clone the repository:

    git clone https://github.com/mixin27/finance-wallet.git
    cd finance-wallet
  2. Install dependencies:

    flutter pub get
  3. Run Code Generation: The project uses code generation for models, providers, and database. Run this command to generate the necessary files:

    flutter pub run build_runner build --delete-conflicting-outputs
  4. Environment Setup: Copy .env.example to .env and fill in your API configuration (if applicable).

  5. Run the app:

    flutter run

📜 Development Commands#

CommandDescription
flutter pub run build_runner watchWatch for changes and auto-generate code
flutter testRun all unit and widget tests
flutter build apkBuild production Android APK
flutter build iosBuild production iOS app

📄 License#

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