Features • Screenshots • Installation • Tech Stack • Project Structure • Contributing • License
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!
- 📸 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
- 🔒 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
- Flutter SDK (2.10.0 or later)
- Dart (2.16.0 or later)
- Android Studio with Android SDK
- A Supabase account
-
Clone this repository
git clone https://github.com/yourusername/receiptwise.git cd receiptwise -
Install dependencies
flutter pub get
-
Configure Supabase
- Create a new project on Supabase
- Run the database schema script in
database/schema.sql - Create a
lib/config/secrets.dartfile with your Supabase credentials
class Secrets { static const String supabaseUrl = 'YOUR_SUPABASE_URL'; static const String supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY'; }
-
Run the app
flutter run
For detailed setup instructions, check out our Setup Guide.
- 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
- 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
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
We welcome contributions to ReceiptWise! Please follow these steps to contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows our coding standards and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Nathija Nimantha




