DEV Community

Divyansh Singh
Divyansh Singh

Posted on

LocalLedger AI

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

LocalLedger AI: Turn Receipts into Expenses with Local AI

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

What I Built

Meet LocalLedger AI — a privacy-focused receipt and invoice expense tracker powered by locally running AI.

Keeping track of expenses shouldn't mean manually entering every transaction. Students, freelancers, and small businesses often collect receipts but struggle to turn them into organized financial records.

LocalLedger AI simplifies that workflow. Users upload a receipt, let AI extract important transaction details, review and correct the results, and save the verified expense to a local database.

Features include:

  • AI-powered receipt and invoice data extraction.
  • An editable review step before saving expenses.
  • Local SQLite storage for expense records.
  • Spending analytics by category and month.
  • CSV export for further analysis.

The long-term goal is to make this a lightweight expense-management tool for people who want to spend less time entering data and more time understanding where their money goes.

Demo

Demo video: https://youtu.be/PSt0bdE1pNE

The demo will show the complete workflow: uploading a receipt, extracting its details, reviewing the results, saving the transaction, viewing spending analytics, and exporting the data.

Code

GitHub repository: https://github.com/divyyansh-063/LocalLedgerAI

The project is built with Python, Flask, SQLite, HTML, CSS, JavaScript, and Ollama.

How I Built It

The application uses Gemma 3 (gemma3:4b) through Ollama to power the receipt-extraction workflow locally.

I built the application around a simple pipeline:

  1. Upload: The user provides a receipt or invoice image.
  2. Extract: Gemma processes the receipt and extracts transaction details.
  3. Review: The user checks and corrects the extracted information.
  4. Save: Verified data is stored in SQLite.
  5. Analyze: The dashboard summarizes expenses by category and month.
  6. Export: Users can download transaction records as a CSV file.

Flask connects the backend workflow to the web interface, while SQLite stores expense records.

An important design decision is keeping the user involved in the process. AI-extracted information can be imperfect, so users can review the result before it becomes a saved expense.

Why Does Open Innovation Matter?

Financial documents can contain sensitive information, and not everyone wants to send them to an external AI service.

Open-weight models such as Gemma make it possible to experiment with AI-powered workflows locally, giving developers more control over inference and data handling.

Building LocalLedger AI with Gemma and Ollama also gave me an opportunity to explore how open AI models can be integrated into a practical application instead of being used only for a chatbot.

Open innovation makes these tools more accessible to students and independent developers who want to build, inspect, adapt, and extend AI-powered products.

Local inference can also reduce reliance on per-request hosted AI fees, although hardware and electricity costs still matter.

Prize Categories

  • Best Use of Gemma

What's Next?

I want to improve duplicate receipt detection, transaction filtering, extraction validation, and budgeting features to make LocalLedger AI more reliable for everyday use.

Building this project has been an opportunity to explore local AI, open-source development, and the process of turning a practical problem into a working application.

hf26challenge #Gemma

Top comments (0)