Skip to content

FinFlow is your personal finance companion that helps you track both income and expenses, providing detailed insights into your financial health. With features like balance tracking, periodic reports, and smart notifications, managing your finances has never been easier.

Notifications You must be signed in to change notification settings

dhruvx19/FinFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FinFlow - Personal Finance Management App

Flutter Version Dart Version License Build

FinFlow App Demo

πŸ“± Overview

FinFlow is your personal finance companion that helps you track both income and expenses, providing detailed insights into your financial health. With features like balance tracking, periodic reports, and smart notifications, managing your finances has never been easier.

✨ Key Features

πŸ’° Transaction Management

  • Record Transactions

    • Firebase Authentication(Login/Signin)
    • Add Income entries
    • Add Expense entries
    • Set transaction date
    • Edit or Delete entries
    • Local Notification Reminders
    • Weekly or Monthly Summary
  • Balance Overview

    • View total balance
    • Total income summary
    • Total expenses breakdown
    • Real-time balance updates

πŸ“Š Financial Reports

  • Weekly Analysis

    • Income vs Expense comparison
    • Category-wise breakdown
    • Visual charts and trends
    • Weekly balance changes
  • Monthly Insights

    • Detailed monthly summary
    • Category distribution
    • Spending patterns
    • Saving trends

πŸ”” Smart Notifications

  • Daily recording reminders
  • Custom time notifications
  • Balance alerts
  • Weekly report notifications

πŸ—οΈ Technical Architecture

Data Structure

class Transaction {
  final String id;
  final double amount;
  final TransactionType type; // Income or Expense
  final String category;
  final DateTime date;
  final String? note;
  final String? imagePath;
}

enum TransactionType {
  income,
  expense
}

πŸ“Š Features Implementation

1. Balance Management

class BalanceState {
  final double totalBalance;
  final double totalIncome;
  final double totalExpenses;
  final List<Transaction> recentTransactions;
}

2. Reports Generation

class ReportData {
  final DateTime startDate;
  final DateTime endDate;
  final double periodIncome;
  final double periodExpenses;
  final double netChange;
  final Map<String, double> categoryBreakdown;
}

πŸš€ Getting Started

Prerequisites

  1. Flutter SDK (3.24.0 or higher)
  2. Dart SDK (3.2.0 or higher)
  3. Android Studio or VS Code
  4. Git

Installation Steps

  1. Clone the Repository
git clone https://github.com/yourusername/finflow.git
cd finflow
  1. Install Dependencies
flutter pub get
  1. Configure Notifications
// Add to AndroidManifest.xml for Android
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE" />

πŸ“¦ Dependencies

dependencies:
  flutter:
    sdk: flutter
  # State Management
  flutter_bloc: ^8.1.3
  
  # Local Storage
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  
  # Notifications
  flutter_local_notifications: ^9.0.0
  
  # Charts
  fl_chart: ^0.63.0

πŸ’‘ Usage Examples

Adding a Transaction

// Add Income
await transactionBloc.add(AddTransaction(
  amount: 1000.0,
  type: TransactionType.income,
  category: 'Salary',
  date: DateTime.now(),
));

// Add Expense
await transactionBloc.add(AddTransaction(
  amount: 100.0,
  type: TransactionType.expense,
  category: 'Groceries',
  date: DateTime.now(),
));

Setting Up Notifications

// Daily reminder
await notificationService.scheduleDailyReminder(
  time: TimeOfDay(hour: 20, minute: 0),
  title: 'Record Your Transactions',
  body: 'Don\'t forget to log your daily transactions!',
);

πŸ“± App Screens

  1. Home Screen

    • Total Balance Display
    • Recent Transactions
    • Quick Add Buttons
    • Balance Summary
  2. Add Transaction

    • Income/Expense Toggle
    • Amount Input
    • Category Selection
    • Image Attachment
    • Notes Field
  3. Reports Screen

    • Weekly/Monthly Toggle
    • Income vs Expense Charts
    • Category Distribution
    • Transaction History

πŸ” Key Implementation Details

1. Transaction Management

  • Double-entry accounting system
  • Real-time balance updates
  • Category-based organization
  • Image storage and compression

2. Notification System

  • Customizable reminder times
  • Daily transaction reminders
  • Weekly report notifications
  • Balance change alerts

3. Reports Generation

  • Automated weekly summaries
  • Monthly financial reports
  • Category-wise analysis
  • Trend predictions

πŸ”§ Setup Configuration

Notification Setup

final FlutterLocalNotificationsPlugin notifications = 
    FlutterLocalNotificationsPlugin();

final initializationSettings = InitializationSettings(
  android: AndroidInitializationSettings('@mipmap/ic_launcher'),
  iOS: IOSInitializationSettings(),
);

await notifications.initialize(initializationSettings);

πŸ§ͺ Testing Guidelines

Key Test Areas

  • Transaction calculations
  • Balance updates
  • Notification scheduling
  • Report generation
  • Data persistence

πŸ“ˆ Future Enhancements

  • Budget planning and tracking
  • Multiple accounts management
  • Export reports to PDF/Excel
  • Cloud backup integration
  • Financial goals tracking

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

πŸ“„ License

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

πŸ“ž Contact

Your Name - [email protected]

Project Link: https://github.com/dhruvx19/finflow


Remember to star ⭐ the repo if you find it helpful!

About

FinFlow is your personal finance companion that helps you track both income and expenses, providing detailed insights into your financial health. With features like balance tracking, periodic reports, and smart notifications, managing your finances has never been easier.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published