Skip to content

Repository files navigation

Billify

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.

Features

  • 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.

Tech Stack

  • 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

Project Structure

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

Getting Started

Prerequisites

  • 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

Setup

  1. Install dependencies:

    flutter pub get
  2. Configure Firebase for the target platforms:

    flutterfire configure
  3. Add the required app credentials in the project credential configuration used by lib/core/constants/app_credentials.dart.

  4. Run the app:

    flutter run

Testing

Run the test suite with:

flutter test

Notes

  • 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.

About

Smart bill payment and notification mobile application with bill amount prediction

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages