All projects

GaruTickets

From a receipt photo to actionable structured data.

AI & DataFunctional

Digitization of receipts and invoices through OCR and artificial intelligence. A mobile app captures the receipt while a web dashboard manages the extracted data.

The problem

Photos of receipts contain essential data for expense tracking, but that data needs to be converted into structured, verifiable fields.

The solution

Asynchronous OCR and extraction pipeline using large language models. RabbitMQ distributes jobs, MinIO stores images, and Express APIs connect the pipeline to the dashboard and mobile app.

From a receipt photo to a verifiable ticket

The original image is preserved while processing continues in the background. OCR extracts raw text; an LLM turns it into structured, verifiable expense records.

  1. Receipt photoReact Native app
  2. Image & jobMinIO · RabbitMQ
  3. Text & fieldsPaddleOCR · LLM
  4. Verifiable ticketMongoDB · React
The API stores the receipt image in MinIO and enqueues a processing job. The result returns to the backend via webhook.
  1. Capture and persist image

    React Native · Express · MinIO

    The mobile app uploads the photograph to the API, and the backend stores the unmodified original in MinIO object storage.

  2. Queue background processing

    Node.js · RabbitMQ

    The inference API publishes a job to RabbitMQ. An asynchronous worker picks up the message to execute the OCR and inference pipeline.

  3. Separate OCR and structuring

    Python · PaddleOCR · LLM

    PaddleOCR extracts raw text from the image. A language model structures it into merchant, date, items, tax breakdown, and total.

  4. Return and review results

    Webhook · MongoDB · React

    The worker posts extracted data back to the core API to update the database. Users inspect and edit fields in the mobile app and dashboard.

Original image asset

The captured photo is kept separate from parsed data, providing an immutable audit source for every digitized ticket.

Structured expense fields

The verified data feeds directly into the expense ledger, accounting exports, and analytics dashboard.

Core capabilities

  • Receipt capture from the Android mobile app.
  • Extraction of merchant, date, line items, taxes, and total.
  • Web backoffice and expense management dashboard.
  • Separation of concerns between API, OCR, and inference workers.

How it works

Image capture, OCR extraction, and verification connect through an asynchronous pipeline.

Select a part of the architecture map to learn about its role.

Receipt Capture

The mobile app captures receipt photographs and submits them for digitization. The image is the entry point for the extraction pipeline.

OCR & Inference

RabbitMQ distributes jobs across processing workers. PaddleOCR and LLMs extract merchant, date, line items, taxes, and totals.

Storage & Results

MinIO stores original images securely, while MongoDB holds parsed application data. Express APIs deliver results to the mobile app and dashboard.

Review & Management

The web dashboard lets users inspect, verify, and export extracted receipt fields. The backoffice centralizes expense reporting workflows.

Looking for someone like this?

Let's talk about your engineering team and the software you need to build.

Email me