ShopSaathi: A Local AI Sales and Inventory Assistant for Small Shopkeepers
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
ShopSaathi is a local AI-powered sales and inventory assistant designed for small shopkeepers.
Many small shop owners track their daily sales and remaining stock manually, using notebooks or memory. This can make it difficult to calculate daily revenue, monitor inventory, identify products running low, and understand how the business performed at the end of the day.
ShopSaathi aims to make this process simpler.
With ShopSaathi, a shopkeeper can:
- Add products with their prices, opening stock, and optional cost prices.
- Record sales using simple, natural-language text, such as โSold 3 packets of biscuits and 2 bottles of juice.โ
- Review AI-extracted sales entries before confirming them.
- Track remaining stock as confirmed sales are recorded.
- View daily revenue, units sold, estimated gross profit, and low-stock products.
- Generate an easy-to-understand, AI-written end-of-day summary.
The goal is to give small shopkeepers a simple way to understand their business without needing complicated accounting or inventory software.
Who is it for? Small retail shops and independent shopkeepers who want a lightweight way to track sales and inventory.
Demo
ShopSaathi currently runs locally on a computer.
To try it, clone or download the repository, start the local Gemma model server, install the Python dependencies, and launch the FastAPI application. The web interface is served directly by the backend.
- Repository: ShopSaathi on GitHub
-
Local demo:
http://127.0.0.1:8000
Code
The project is built with a small, straightforward codebase:
- FastAPI: Backend and API endpoints.
- SQLite: Local storage for products and sales.
- Gemma: Natural-language sales extraction and daily-summary generation.
- HTML, CSS, and JavaScript: Lightweight web interface.
The project is designed to be approachable for contributors and easy to run locally.
How I Built It
I wanted to build something practical for people who run small businesses, rather than another AI chatbot that only answers questions.
I chose Gemma as the core AI model and designed ShopSaathi to run locally using a Gemma-compatible inference server.
The workflow is simple:
- Product setup: The shopkeeper adds products, prices, and stock quantities.
- Sales entry: The shopkeeper types a natural-language description of the items sold.
- AI extraction: Gemma converts the description into structured product and quantity entries based on the available catalogue.
- Human confirmation: The shopkeeper reviews the proposed entries before confirming them.
- Inventory update: Python handles the actual stock and sales calculations after confirmation.
- Daily summary: The application calculates the day's figures and lets Gemma explain them in plain language.
One important design decision was to keep arithmetic and inventory updates in application code instead of trusting the language model to calculate business figures. This helps keep recorded totals and stock changes grounded in the database.
The current MVP is text-first. Voice input is a planned next step, not a feature I am claiming is already implemented.
Why Does Open Innovation Matter?
Open innovation makes it possible to experiment with useful AI tools without building everything around a paid, closed API.
Using an open-weight model such as Gemma gives this project a path toward local inference, more control over how data is processed, and the ability to experiment without sending every sales entry to an external AI service.
For a small shopkeeper, privacy and running costs matter. Sales records and inventory information can be sensitive, and an internet-dependent workflow may not always be convenient.
Local inference does not automatically solve every privacy or deployment concern, but it gives ShopSaathi a foundation for exploring a more private, accessible, and affordable approach.
Open-source tools also make the project easier for other developers to inspect, improve, and adapt to different types of shops.
Future Plans
The next major improvement is to make ShopSaathi voice-first.
Many shopkeepers may find speaking easier than typing every sale, especially while serving customers. In a future version, I want a shopkeeper to say something like, โSell five packets of biscuits,โ have the system identify the product and quantity, and then confirm the transaction.
The planned voice workflow is:
- Speech-to-text for capturing spoken sales.
- Gemma for interpreting the spoken text against the product catalogue.
- A confirmation step before changing stock.
- Optional spoken feedback for sales confirmation and end-of-day summaries.
I also want to test ShopSaathi with a real shopkeeper, gather feedback, and improve the workflow based on how they actually record sales.
Prize Categories
Best Use of Gemma
Closing Thoughts
ShopSaathi is an early MVP, but the idea behind it is simple: useful AI should help people with everyday work, not make that work more complicated.
I built this project to explore how open-weight AI can make sales tracking and inventory management more accessible to small shopkeepers. My next goal is to make it voice-first and put it in the hands of a real user.
Feedback, ideas, and contributions are welcome!
Top comments (0)