DEV Community

Cover image for Chhaap: A Local AI Print Counter for Neighbourhood Shops
Aniruddh Vijayvargia
Aniruddh Vijayvargia

Posted on

Chhaap: A Local AI Print Counter for Neighbourhood Shops

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

Chhaap turns scattered customer messages into reviewed print quotes—and keeps the work moving after the quote.

A print request rarely arrives as a complete specification. It arrives across messages: “500 cards,” “make it matte,” “both sides,” followed by a screenshot and a changed deadline. Someone has to assemble those details, ask what is missing, calculate a price, and remember what was agreed.

Chhaap gives an independent print shop one workspace for that process:

  • Paste a conversation or upload screenshots.
  • Get AI suggestions for print specifications, missing information, and clarification questions.
  • Review and confirm the details.
  • Calculate a quote using the shop’s rate card.
  • Record acceptance and track artwork approval, production, and manually recorded payments.

The intended paying customer is a small print-shop owner who currently coordinates this work across messages, spreadsheets, and memory. A supported installation or managed hosting service is a potential business model; willingness to pay has not been validated.

I designed the project around Aman Printworks, a fictional neighbourhood print shop. Its customers, conversations, orders, and prices are sample data, not real customer research or revenue.

Beautiful UI was a core requirement: paper-inspired surfaces, ink-like typography, restrained red accents, responsive layouts, and light and dark themes.

Demo

Explore Chhaap’s public visual preview

The hosted site is a read-only visual preview containing screenshots of the working local application. The controls inside those screenshots are not interactive.

The complete application—including accounts, PostgreSQL, the background worker, and local AI inference—runs locally. Setup instructions are in the repository.

Chhaap’s print-shop workspace

Code

GitHub: ANIRUDDH-001/Chhaap

Chhaap’s application code is available under the MIT license. Model weights are distributed separately under their own license.

The repository includes setup instructions, migrations, evaluation fixtures, tests, and review evidence.

How I Built It

The interface uses React, TypeScript, and Vite. A FastAPI backend handles business rules and persistence through SQLAlchemy and PostgreSQL.

For AI, Chhaap runs the open-weight Gemma 4 E4B model locally through Ollama. A separate worker processes extraction requests, with bounded concurrency and retries.

The central design decision is simple: AI proposes; the owner confirms.

AI suggestions stay separate from saved specifications. They cannot silently overwrite the order, set prices, issue quotes, accept work, or move money. Pricing uses deterministic server-side calculations, and issued quotes preserve the agreed rates, totals, and terms.

I also built customer history, repeat orders, rate-card management, production tracking, reports, private screenshot storage, and data export.

I tested the AI pipeline against 60 labelled fictional cases, including incomplete requests, corrections, screenshots, and adversarial inputs.

The initial evaluation achieved 97.46% accuracy on annotated text fields, but 84.78% overall, below my proposed 90% target. Screenshot extraction and conflict detection were weaknesses. Those results informed subsequent fixes, but I have not rerun the complete revised evaluation, so I am not claiming a higher final score.

That limitation reinforces the need for explicit human review.

Evaluation fixtures and results

At the submission snapshot, verification included 69 backend tests against PostgreSQL, 11 frontend tests, and a successful production build.

Codex assisted with planning, implementation, testing, and review. The repository records the resulting design decisions and verification evidence.

Why Does Open Innovation Matter?

A small shop should be able to understand and control a tool that handles its customer conversations and prices.

Open weights and local inference let Chhaap process requests without requiring a hosted model API. The shop can choose its hardware, inspect the integration, and avoid mandatory per-request API charges.

Open application code makes the business rules inspectable too: how prices are calculated, how quotes are preserved, and where owner confirmation is required.

It also makes failures useful. Publishing the evaluation exposes where extraction struggles and gives other developers concrete cases to reproduce, improve, or test with another model.

For Chhaap, open innovation means the product can evolve beyond one developer or provider: another shop can adapt its rates, another contributor can improve extraction, and another deployment can replace the model while retaining the review workflow.

Top comments (0)