FinWallet
A modern finance wallet application with beautiful UI/UX

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#
- Framework: Flutter
- State Management: Riverpod 3.0 (using code generation)
- Navigation: Go Router
- Local Database: Drift (SQLite)
- Networking: Dio & Retrofit
- Animations: Flutter Animate
- Data Visualization: FL Chart
- Dependency Injection: Riverpod
🏗 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#
- Unidirectional Data Flow: State flows down, events flow up.
- Offline-First: Data is always fetched from the local database first, with network updates happening in the background.
- 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#
-
Clone the repository:
git clone https://github.com/mixin27/finance-wallet.git cd finance-wallet -
Install dependencies:
flutter pub get -
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 -
Environment Setup: Copy
.env.exampleto.envand fill in your API configuration (if applicable). -
Run the app:
flutter run
📜 Development Commands#
| Command | Description |
|---|---|
flutter pub run build_runner watch | Watch for changes and auto-generate code |
flutter test | Run all unit and widget tests |
flutter build apk | Build production Android APK |
flutter build ios | Build production iOS app |
📄 License#
This project is licensed under the MIT License - see the LICENSE file for details.


