DEV Community

Cover image for MomCart ๐Ÿ›’
Je Sai Kailash Pulipati
Je Sai Kailash Pulipati

Posted on

MomCart ๐Ÿ›’

Gemma 4 Challenge: Build With Gemma 4 Submission

This is a submission for the Gemma 4 Challenge: Build with Gemma 4

What I Built

MomCart: A Telegram bot that turns the daily grocery struggle in Indian households into a 30-second conversation.

The problem is everywhere: my mom spends 2-3 days hand-writing the monthly pantry list on paper, photographs it, and sends it to our neighborhood shopkeeper on WhatsApp. She forgets items, sends correction messages, and the back-and-forth eats 30+ minutes for both of them. Multiply this by every mother and every small kirana shopkeeper in India and you're looking at millions of hours of friction every month friction that exists because the tools built for grocery shopping (BigBasket, Blinkit) ignore them entirely.

MomCart fits the workflow they already use. Mom speaks a Hinglish voice note - "do kilo aata, ek paav haldi" and the bot adds items to a persistent cart that lives across days. She edits with natural language ("no, make it 3 kg potato"), checks the cart anytime with /cart, and only when she says "bhej do" does the order ship to the shopkeeper as a structured Telegram message with โœ… โš ๏ธ โŒ buttons next to each item.

When the shopkeeper marks something out of stock, the bot proposes substitutes from the same category and remembers the unmet need in a wishlist so the next shopping cycle, MomCart proactively reminds mom about the items she wanted but didn't get. It's not a chatbot. It's a closed-loop agent with memory across weeks.

For mothers who aren't tech-savvy: voice, photo, or text all on Telegram, no app to install. The bot replies in whatever language mix she used (English, Hindi, or Hinglish), automatically.

For small shopkeepers: clean structured orders instead of WhatsApp screenshots, one-tap status updates, and zero workflow change beyond installing Telegram.

Demo

Code

MomCart ๐Ÿ›’

A Telegram bot that lets mom build a grocery list by voice, photo, or text โ€” and ships a live packing checklist to the neighborhood shopkeeper with one-tap status buttons.

Built for the DEV.to Gemma 4 Challenge.


Why it exists

Mom currently writes the monthly pantry list by hand, photographs it, and sends the photo to the shopkeeper on WhatsApp. She forgets items, sends "addendums," and the back-and-forth takes 30+ minutes. MomCart removes the typing friction, remembers past orders, tracks out-of-stock items, and gives the shopkeeper a structured, tappable checklist.


How it works

Mom speaks / types / sends photo
          โ†“
  faster-whisper  โ†โ”€ voice note transcribed locally
          โ†“
  Gemma 4 E4B (Ollama)  โ†โ”€ parses Hinglish / Telugu / English grocery text
          โ†“
  Chroma pantry DB  โ†โ”€ fuzzy-matches items to canonical catalog names
          โ†“
  Notion (via MCP)  โ†โ”€ items written as Status='cart' rows
          โ†“
  Mom builds cart over
โ€ฆ



Stack: Gemma 4 E4B (Ollama) ยท LangChain ยท LangGraph ยท MCP (Notion) ยท Chroma (vector memory) ยท faster-whisper (STT) ยท python-telegram-bot ยท zero cloud APIs, zero cost.

How I Used Gemma 4

I chose Gemma 4 E4B (9.6 GB, 128K context, multimodal) for three reasons: it runs entirely on a laptop with no API costs, its tool-calling on ฯ„ยฒ-bench is dramatically stronger than Gemma 3 (which mattered for the LangGraph agent loop), and crucially, its native multilingual capability handles code-mixed Hinglish without a separate translation step.

Gemma 4 is load-bearing in four distinct places:

Grocery parsing - Hinglish voice transcripts and free-text messages ("do kilo aata aur ek paav haldi") become validated structured JSON: [{name_en, qty, unit}], ready for canonicalization against the pantry catalog.

Register matching - every reply is rewritten by Gemma to match mom's language register on a rolling basis. English in โ†’ English out. Hinglish in โ†’ Hinglish out. Code-mixed in โ†’ code-mixed out. No language detection library, just Gemma reading the last few messages.

Substitution reasoning - when an item is out, Gemma reasons over the vector-retrieved candidates in the same product category and frames the proposal in the user's register.

Recall and correction handling - phrases like "last time jaisa, plus do kg gud" are interpreted against vector-stored order history, and "no, make it 3 kg" triggers a re-parse without breaking the cart.

Everything runs on my laptop. No API key. No data leaves the machine. And that's the point โ€” for the mothers and shopkeepers this is built for, that's the only architecture they'd ever trust with their conversations.

Top comments (0)