Billify is a Flutter-based personal bill and payment management app. It helps users track upcoming, overdue, and paid bills, process bills and transactions from SMS and email, view payment activity on a calendar, receive reminders, and understand spending patterns through analytics and predictions.
- Email/password and Google authentication with Firebase Auth.
- Bill tracking for upcoming, overdue, and paid payments.
- Automatic bill and transaction processing from SMS and connected email accounts.
- PDF bill extraction using OCR/AI processing.
- Manual bill and transaction entry.
- PayPal-based payment and top-up flows.
- Calendar view for bills and transactions.
- Local notifications and custom reminders for upcoming bills.
- Monthly insights, category breakdowns, spending trends, and prediction history.
- Payment history export as PDF.
- Profile management, account settings, and notification center.
- Flutter and Dart
- Firebase Core, Firebase Auth, Cloud Firestore, and Firebase App Check
- Supabase Flutter
- Flutter BLoC/Cubit for state management
- GetIt for dependency injection
- Telephony for SMS access
- Enough Mail and Google APIs for email processing
- Gemini API integration for bill extraction
- PayPal checkout integration
- Local notifications and Android alarm scheduling
- FL Chart, Table Calendar, PDF, Printing, and Share Plus
lib/
core/ Shared routes, services, widgets, utilities, and networking
features/
analytics/ Spending summaries, trends, and category breakdowns
auth/ Login, signup, Google sign-in, and password reset
bill_processing/ Bill CRUD, reconciliation, payment export, and bill lists
calendar/ Calendar-based bill and transaction views
home/ Dashboard and app-open synchronization
insights/ Monthly insights and bill predictions
layout/ Main app shell and navigation
notifications/ Notification list and read/delete actions
profile/ Account, settings, and communication permissions
reminders/ Default and custom bill reminders
transactions/ Manual payments, PayPal flows, and SMS transaction parsing
- Flutter SDK compatible with Dart
^3.5.4 - Android Studio or VS Code with Flutter tooling
- Firebase project configured for Android/iOS
- Supabase project
- API credentials for any enabled integrations, such as Gemini, PayPal, Twilio, and email providers
-
Install dependencies:
flutter pub get
-
Configure Firebase for the target platforms:
flutterfire configure
-
Add the required app credentials in the project credential configuration used by
lib/core/constants/app_credentials.dart. -
Run the app:
flutter run
Run the test suite with:
flutter test- SMS reading, background processing, exact alarms, and local notifications require Android permissions.
- Email processing depends on connected email credentials and provider access.
- Some features require Firebase, Supabase, and third-party API credentials before they work end to end.
- The app is locked to portrait orientation from
lib/main.dart.