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.
-
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
-
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
- Daily recording reminders
- Custom time notifications
- Balance alerts
- Weekly report notifications
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
}
class BalanceState {
final double totalBalance;
final double totalIncome;
final double totalExpenses;
final List<Transaction> recentTransactions;
}
class ReportData {
final DateTime startDate;
final DateTime endDate;
final double periodIncome;
final double periodExpenses;
final double netChange;
final Map<String, double> categoryBreakdown;
}
- Flutter SDK (3.24.0 or higher)
- Dart SDK (3.2.0 or higher)
- Android Studio or VS Code
- Git
- Clone the Repository
git clone https://github.com/yourusername/finflow.git
cd finflow
- Install Dependencies
flutter pub get
- 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:
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
// 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(),
));
// Daily reminder
await notificationService.scheduleDailyReminder(
time: TimeOfDay(hour: 20, minute: 0),
title: 'Record Your Transactions',
body: 'Don\'t forget to log your daily transactions!',
);
-
Home Screen
- Total Balance Display
- Recent Transactions
- Quick Add Buttons
- Balance Summary
-
Add Transaction
- Income/Expense Toggle
- Amount Input
- Category Selection
- Image Attachment
- Notes Field
-
Reports Screen
- Weekly/Monthly Toggle
- Income vs Expense Charts
- Category Distribution
- Transaction History
- Double-entry accounting system
- Real-time balance updates
- Category-based organization
- Image storage and compression
- Customizable reminder times
- Daily transaction reminders
- Weekly report notifications
- Balance change alerts
- Automated weekly summaries
- Monthly financial reports
- Category-wise analysis
- Trend predictions
final FlutterLocalNotificationsPlugin notifications =
FlutterLocalNotificationsPlugin();
final initializationSettings = InitializationSettings(
android: AndroidInitializationSettings('@mipmap/ic_launcher'),
iOS: IOSInitializationSettings(),
);
await notifications.initialize(initializationSettings);
- Transaction calculations
- Balance updates
- Notification scheduling
- Report generation
- Data persistence
- Budget planning and tracking
- Multiple accounts management
- Export reports to PDF/Excel
- Cloud backup integration
- Financial goals tracking
We welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Your Name - [email protected]
Project Link: https://github.com/dhruvx19/finflow
Remember to star β the repo if you find it helpful!