Skip to content

nathija-nimantha/receiptwise-flutter

Repository files navigation

ReceiptWise - The Smart Digital Receipt Organizer

ReceiptWise Logo

FeaturesScreenshotsInstallationTech StackProject StructureContributingLicense

ReceiptWise is a Flutter-based Android application that helps you digitize, organize, and manage your receipts efficiently. Say goodbye to paper clutter and never miss a warranty claim or return deadline again!

Features

Core Features

  • 📸 Scan Receipts: Capture receipts using your camera or import from gallery
  • 🔍 Smart OCR: Automatically extract key information like store, date, and amount
  • 📊 Organize by Category: Categorize receipts with custom categories and icons
  • 🔔 Warranty Tracking: Get notifications before warranties expire
  • 📅 Return Deadlines: Never miss a return window again
  • 🔄 Cloud Sync: Access receipts from anywhere with Supabase backend
  • 🌓 Dark Mode: Easy on the eyes with light and dark themes

Technical Features

  • 🔒 Secure Authentication: Email/password authentication with Supabase
  • 💾 Local Storage: Backup receipt images locally for offline access
  • 🔎 Advanced Search: Find receipts quickly with text-based search
  • 📱 Responsive UI: Beautiful Material Design interface
  • 🚀 Performance Optimized: Fast loading and efficient resource usage

Screenshots

Dashboard Scan Receipt Receipt Details Categories

Installation

Prerequisites

  • Flutter SDK (2.10.0 or later)
  • Dart (2.16.0 or later)
  • Android Studio with Android SDK
  • A Supabase account

Getting Started

  1. Clone this repository

    git clone https://github.com/yourusername/receiptwise.git
    cd receiptwise
  2. Install dependencies

    flutter pub get
  3. Configure Supabase

    • Create a new project on Supabase
    • Run the database schema script in database/schema.sql
    • Create a lib/config/secrets.dart file with your Supabase credentials
    class Secrets {
      static const String supabaseUrl = 'YOUR_SUPABASE_URL';
      static const String supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY';
    }
  4. Run the app

    flutter run

For detailed setup instructions, check out our Setup Guide.

Tech Stack

Frontend

  • Flutter: UI framework for building natively compiled applications
  • Provider: State management solution
  • Supabase Flutter SDK: Client library for Supabase
  • Google ML Kit: OCR and text recognition
  • Flutter Local Notifications: Managing notifications

Backend

  • Supabase: Backend as a Service (BaaS) with PostgreSQL database
  • PostgreSQL: Relational database for structured data storage
  • Supabase Auth: Authentication and user management
  • Supabase Storage: File storage for receipt images

Project Structure

receiptwise/
│
├── lib/
│   ├── main.dart                # Entry point
│   ├── app.dart                 # App configuration
│   │
│   ├── config/                  # App configuration
│   │   ├── theme.dart           # Theme settings
│   │   ├── routes.dart          # App routes
│   │   └── constants.dart       # App constants
│   │
│   ├── models/                  # Data models
│   │   ├── receipt.dart
│   │   ├── category.dart
│   │   └── user.dart
│   │
│   ├── services/                # Service layer
│   │   ├── auth_service.dart    # Authentication
│   │   ├── storage_service.dart # Storage
│   │   ├── ocr_service.dart     # OCR processing
│   │   └── ...
│   │
│   ├── repositories/            # Repository layer
│   │   ├── receipt_repository.dart
│   │   └── category_repository.dart
│   │
│   ├── screens/                 # UI screens
│   │   ├── auth/                # Authentication screens
│   │   ├── home/                # Home/dashboard
│   │   ├── receipt/             # Receipt management
│   │   ├── category/            # Category management
│   │   └── settings/            # Settings
│   │
│   └── widgets/                 # Reusable widgets
│       ├── receipt_card.dart
│       ├── category_card.dart
│       └── ...
│
├── assets/                      # App assets
│   ├── images/                  # Images
│   └── fonts/                   # Fonts
│
├── database/                    # Database scripts
│   └── schema.sql               # Supabase schema
│
└── docs/                        # Documentation
    ├── SETUP_GUIDE.md           # Setup guide
    └── USER_GUIDE.md            # User guide

Contributing

We welcome contributions to ReceiptWise! Please follow these steps to contribute:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Please ensure your code follows our coding standards and includes appropriate tests.

License

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

Acknowledgements


Made with ❤️ by Nathija Nimantha

About

ReceiptWise - A modern Flutter receipt management app that helps users track purchases, warranties, and spending patterns. Organize receipts by categories, scan paper receipts with OCR, and visualize your spending with intuitive charts and analytics.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors