// Case Study · 04 · Web + Android App
Your bills, organized & intelligent.
// The Problem
Physical or digital, invoices pile up and disappear when you need them. Warranty claims fail. Tax time becomes chaos. Reimbursements get missed. The problem isn't storing invoices — it's making them searchable, validated, and accessible the moment you need them.
Invoice Holder is a full-stack invoice management system. Upload a bill — photo, PDF, or screenshot — and the app does the rest. OCR extracts vendor name, date, and amounts. AI validates it's a real invoice, not a random image. Everything indexed and searchable instantly.
// What it does
Upload invoices via camera, photo library, or file picker. Accepts JPG, PNG, PDF. Works with physical receipts, e-bills, and screenshots equally well.
On-device OCR powered by TFLite automatically reads and extracts vendor name, invoice number, date, line items, totals, and tax amounts from any bill.
The AI model verifies the uploaded image is actually an invoice — not a random photo or screenshot. Keeps your library clean and trustworthy.
Auto-categorized by vendor, date range, and amount. Custom tags and folders. Filter by month, category, or payment status. Find anything in seconds.
Free tier stores everything locally on your device — zero data leaves your hands. Premium tier syncs seamlessly via Firebase across all your devices.
Fully responsive, fast, and available in both Light and Dark UI modes. Built for real-world use — whether you're in bright sunlight or low-light at night.
// Tech Stack
Every technology choice was deliberate — built for performance, privacy, and cross-platform reach.
// Performance & Capacity
Invoice Holder is engineered for speed on-device. OCR and validation run locally via TFLite — no server round-trip, no latency, no privacy risk. Everything is fast by design.
// Key Decisions
A cloud OCR API would have been simpler to set up. But invoices contain sensitive data — amounts, vendors, dates. TFLite runs everything on-device. No data leaves the phone. No API costs. No latency. Worth the harder implementation.
Building native Android + a separate web app would have doubled the effort. Flutter's single codebase compiles to both. The web app shipped first; the Android build inherits the exact same logic and UI. Right call every time.
Without validation, users accidentally upload selfies and random screenshots. The AI validation model acts as a gatekeeper — it checks the image looks like a real invoice before OCR even runs. Keeps the library clean without any user effort.
The free tier never touches the internet. Local-only by default was intentional — users shouldn't have to trust a cloud service just to organize their bills. Firebase sync is opt-in for those who want it.
// In Action
Upload a receipt and watch the pipeline run — OCR reads it, AI validates it, storage saves it.
// Availability
Fully functional web version. Open in any browser — no install needed. Upload, scan, organize, and search all your invoices right from your desktop or mobile browser.
Open Web App →Native Android experience is in development. Camera integration, on-device TFLite inference, background sync, and push notifications. Watch this space — it ships when it's right.
In development —Live on Web · Free · No ads · Your data stays yours