Skip to content

A cross-platform personal finance management application built using Flutter, implementing CLEAN Architecture with GetX state management. The app allows users to track expenses, manage budgets, view financial summaries, and access real-time currency exchange rates with offline data support.

Notifications You must be signed in to change notification settings

jaiminspace/finance_manager

Repository files navigation

finance_manager

A cross-platform personal finance management application built using Flutter, implementing CLEAN Architecture with GetX state management.
The app allows users to track expenses, manage budgets, view financial summaries, and access real-time currency exchange rates with offline data support.

Finance Manager – How to Use

🧭 App Usage Flow (Recommended Order) This app is designed to be used in the following simple steps:

  1. Set Budget Limits (First Step) Go to the Budget section Set monthly expense limits category-wise This helps track overspending and remaining balance ⚠️ It is recommended to set budgets before adding expenses.

  2. Add & Manage Expenses Navigate to the Expenses tab Add new expenses with: Amount Category Date Notes Edit an expense by tapping on it Delete an expense using swipe action

  3. Track Spending on Dashboard Open the Dashboard View: Monthly total expenses Category-wise spending summary Budget vs spent overview Dashboard data updates automatically when expenses change

  4. Use Exchange Rates (Optional) Go to the Exchange Rates section View currency exchange rates Convert amounts between currencies for reference Manage App Settings

  5. From Settings, you can: 🔄 Backup data (export Hive data as JSON) 📥 Restore data from backup 🗑️ Clear all stored data ♻️ Reset app to initial state 💡 Helpful Tip

Tap the Help ( ? ) icon on the Dashboard AppBar anytime to see a quick in-app usage guide.

Tech Stack

Flutter Hive (local database) State Management: (GetX) Architecture: CLEAN Architecture principles

📌 Budget Recurrence Logic (Monthly)

This application treats budgets as monthly recurring spending allowances. Budgets are not duplicated or reset every month. Instead, recurrence is achieved through month-based expense calculation, which automatically applies the same budget to each new month. How it works Budgets are stored once per category (e.g. Groceries, Rent, Travel). Expenses are stored with their transaction dates.

While calculating totals, expenses are filtered by the current month and year. Monthly Expenses = Expenses where expense.date.month == currentMonth AND expense.date.year == currentYear

Because only the current month’s expenses are considered: Budgets automatically “reset” every month No manual reset, cron job, or database cleanup is required The same budget applies again when a new month starts

Example Month Budget (Groceries) Expenses Remaining January ₹5,000 ₹4,200 ₹800 February ₹5,000 ₹1,500 ₹3,500

The January expenses are excluded from February calculations, making the budget naturally recurring.

Why this approach Avoids duplicating budget records per month Keeps data model simple and scalable Reduces storage and migration complexity Aligns with real-world expense tracking behavior This design ensures budgets remain predictable, reusable, and easy to extend for future enhancements (e.g. yearly budgets or budget versioning).

Hive Database Upgrade Strategy

  • Do not change existing @HiveField indexes once released.
  • For adding new fields:
    • Append a new @HiveField(n) with a new index
    • Keep it nullable or provide a default mapping
  • Avoid changing typeId for existing models.
  • For breaking changes:
    • Create a new box (e.g., expenses_box_v2)
    • Migrate old data to the new structure
    • Remove old box after migration (optional)
  • Run code generation: dart run build_runner build --delete-conflicting-outputs

👨‍💻 Author Jaimin Modi Sr. Flutter Developer Support: career.jaimin@gmail.com

About

A cross-platform personal finance management application built using Flutter, implementing CLEAN Architecture with GetX state management. The app allows users to track expenses, manage budgets, view financial summaries, and access real-time currency exchange rates with offline data support.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages