DEV Community

atharvarsingh2ee-lab
atharvarsingh2ee-lab

Posted on

Tally: A Private, Local-First Receipt Organizer

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

What I Built

Tally is a receipt and invoice organizer for freelancers and solo business owners. It reads receipt images, extracts bookkeeping details for review, saves expenses in the browser, and exports them as CSV. It aims to help people keep expense records without adding another cloud bookkeeping subscription.

The current demo supports manual entry, browser OCR, and CSV export. Local-model extraction is part of the app, but a model is not currently running in the hosted demo.

Demo

Try Tally

The demo is served from a Codespace and is available while that Codespace is running.

Code

The source files (server.py, index.html, styles.css, and app.js) are in my project workspace. I have not published a public GitHub repository yet.

How I Built It

Tally uses Tesseract.js, an open-source OCR engine, to read receipt images in the browser. For field extraction, the Python server can send recognized text to an Ollama model running locally; the setup guide suggests qwen2.5:3b. Extracted details are shown for review before saving. Expense records are stored in browser local storage.

The public demo’s Codespace does not currently have Ollama or a model running, so AI extraction is unavailable there. When run locally with Ollama, the model request stays on that machine.

Why Does Open Innovation Matter?

A hosted AI API might be easier to operate, but it can add a per-document cost and requires sending receipt text to a third party. With Ollama, a freelancer can run inference on their own machine, avoid per-receipt model fees, and switch models or adjust prompts to suit their workflow. Tesseract.js also provides OCR without uploading the receipt to a recognition service.

The tradeoff is setup: users need Ollama and a compatible model for extraction, and OCR downloads its library and language data from a CDN on first use. This public demo is a prototype, not a hosted private-inference service.

mlhacks:)

Top comments (0)