Inspiration

What it does

The app takes messy, physical receipts and turns them into clean, structured financial data. Users simply upload or snap a photo of a receipt, and the system: Extracts text from the image using Gemini OCR. Structures the data into JSON with key fields: vendor date total_amount line_items (each with item, price, and category). Categorizes expenses automatically into predefined groups (e.g., Snacks, Vegetables, Clothes), with the option to add or remove categories. Logs everything to Google Sheets in real time, so users have an organized, always-up-to-date record of their spending. In short, it transforms piles of paper receipts into a living, digital expense tracker that’s easy to maintain and analyze.

How we built it

Backend: A Python-based MCP server connected to Google Gemini for OCR. Receipt Processing: extract_receipt_text converts raw receipt images into text. structure_receipt_text transforms messy OCR output into structured JSON with vendor, date, total_amount, and line_items. Categorization: Items are classified into categories stored in categories.json. Users can add or remove categories as needed. Google Sheets Integration: Structured receipts are appended directly into a live Google Sheet, creating a chronological log of spending. Frontend: Built with Flutter, allowing simple receipt uploads and chat-style interaction with the assistant.

Challenges we ran into

Messy OCR: Wrinkled receipts, faded ink, and overlapping text made extraction inconsistent. JSON Drift: The model occasionally produced natural language instead of strict JSON, requiring schema enforcement. Negative Values: Discounts and refunds needed logic to subtract from previous items rather than appear as standalone expenses. Authentication: Managing Google Sheets API credentials was tricky and required multiple iterations.

Video Demo URL : https://www.loom.com/share/52c7d01c50b342e6b1b4387e3e53bdbb?sid=023796df-afc6-4f61-a641-222f8aeb449f

Built With

Share this project:

Updates

posted an update

Features/Scope for the project: -> Receipt ocr (will take input as images of receipts), categorise into more granular categories like veggies, snacks, meat, clothes, skincare etc (rather than the basic bank's broad categories like groceries, travle etc) -> Budgeting: can create budget for each category and kind of set reminders or response of how much budget for whichever category is left. ->Creating some reports/ forecasts/charts for expenses (might need liek~1 month data atleast?) -> Carbon Footprint report (either product's or companies (whichever you can extract from the receipt))

Log in or sign up for Devpost to join the conversation.