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.
- Receipt photoReact Native app
- Image & jobMinIO · RabbitMQ
- Text & fieldsPaddleOCR · LLM
- Verifiable ticketMongoDB · React
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.
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.
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.
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.



