AWS Builder Center
"Haan Haan, Ho Jayega": We Built an AWS System That Doesn't Accept That as an Answer

"Haan Haan, Ho Jayega": We Built an AWS System That Doesn't Accept That as an Answer

Two IIT Bhilai students, one keypad phone and an unreasonable number of AWS services. JalSakshi calls village families every evening to ask if water came, and a repair only counts as done when they say so. Live in Kutelabhatha, Durg.

It's 7 PM. The Tap Is on Airplane Mode.

Let me set the scene.
It is 7 PM somewhere in rural Chhattisgarh. A woman has been waiting at the tap since 5. The tap is giving her the silent treatment.
She calls the pump operator. He picks up on the first ring (suspicious) and says the three most powerful words in Indian infrastructure:

Literal translation: "Yes yes, it will happen." Actual translation: "This conversation has been archived."
She has no ticket number. The Sarpanch doesn't know. And the government dashboard proudly says her village is "Har Ghar Jal", tap water in every home, because the tap was installed. The tap exists. The water is a separate DLC.
So two of us from IIT Bhilai decided to fix rural water accountability. In a hackathon. With a deadline.
A completely normal level of ambition. We are fine. Everything is fine.

Some Context That Will Make You Sad Before You Laugh Again

India's Jal Jeevan Mission is genuinely massive. Most rural homes now have a tap connection. Respect.
But having a tap connection and having water come out of it are two very different things. Like having a gym membership and having abs.
The receipts, all from public data:
  • The official JJM progress report (data as on 7 Oct 2026) shows 7,603 Chhattisgarh villages reported "Har Ghar Jal" but only 6,594 certified. About 1,009 villages are waiting on a Gram Sabha decision.
  • On 30 Sep 2026, the state's JJM Mission Director told every Collector to hand completed schemes over to Gram Panchayats at special Gram Sabhas from 2 Oct. So right now, villages are literally deciding: is this thing working?
  • A CAG audit tabled in July 2026 found villages certified despite incomplete works. In Korba, ₹516 crore has been paid and about 110 villages get water.
  • The official review, Jal Seva Aankalan, is a once-a-cycle self-assessment by the village water committee.

Nobody was asking each household the one question that matters: did water come today?
The people who know are the women who wait at the tap. Usually on a shared keypad phone. In Hindi or Chhattisgarhi. With zero patience for an app that wants a download, an OTP, a password with one uppercase letter and one special character, and proof that they are not a robot.
So we didn't build them an app. We built them a phone call.

What JalSakshi Actually Does (In Plain Human)

JalSakshi (जल साक्षी) means "water witness". The families are the witnesses. The tap is the accused. The pump operator is, let's say, a person of interest.
Every evening, it asks. At 7 PM the system calls every registered family, on whatever phone they have. A short keypad call: did water come today from your tap, standpost, handpump, borewell or tanker? For how many hours? Was it clean? Press, press, press, done. Shorter than a WhatsApp good-morning forward.
Rules decide, not vibes. Tested, deterministic code turns the answers into each water point's status for the day:  SUPPLIED ,  PARTIAL ,  NO_SUPPLY ,  DIRTY , or  UNVERIFIED  when too few families answered. No AI is guessing whether water came. The families said it. The code counted it.
Complaints at any hour, for free. A family gives a missed call to the village number. The system rejects it, so it costs them nothing, and calls them straight back with a menu: no water, dirty water, or just say it out loud. Indian missed-call culture, finally used for good.
Then the pump operator gets a call. His keypad now has a whole personality:
  • 1: fixed
  • 2 to 5: a reason (parts, electricity, pipe, not my source)
  • 6: explain in your own words
  • 7: "I can't fix this alone", which calls the Sarpanch and plays the operator's own words
Then the plot twist. After he presses 1, the same families get called back. The complaint closes as  CLOSED_VERIFIED  only when enough of them say water is back. Otherwise it reopens. And if 48 hours pass without a fix, the Sarpanch's phone rings.

He cannot press 1 and walk off into the mountains like the nihilist penguin. The colony will call him back.
The operator doesn't decide when it's done. The dashboard doesn't decide. We don't decide. The families decide.

The Stack (Bhai, Yeh Hackathon Hai Ya Startup?)

At some point one of us looked at the architecture diagram and asked, "bhai, yeh hackathon hai ya startup?" We still don't have an answer. Here's what's inside:
  • AWS Step Functions is the main character. It runs the evening call round as a Map state, fans out to every family, and waits on each call with  waitForTaskToken . It also runs the whole complaint lifecycle, from ticket to operator to families to closed. It waits for a phone call more patiently than anyone who has ever called customer care.
  • Amazon EventBridge Scheduler is the village alarm clock: 7 PM IST, per village, every day. It's also the "48 hours and still nothing?" timer that calls the Sarpanch. EventBridge Scheduler has never once said "ho jayega".
  • AWS Lambda: 18 functions, Python 3.12, Powertools for structured logs. Eighteen. For a hackathon. We know.
  • Amazon API Gateway (HTTP API) catches every keypress from the phone line.
  • Amazon DynamoDB: single table, point-in-time recovery on, TTL for old records. Single-table design, because we like our suffering well organised.
  • Amazon Bedrock with Claude Haiku 5.5 reads spoken complaints, reads photos of handwritten family registers, and writes complaint overviews. If it's unavailable, it falls back to Haiku 4.5, then Nova 2 Lite, then a plain template.

  • Cedar is the strict class monitor. Consent before any call, no calls after a family refuses, a call-back limit so nobody gets pestered, a quorum before a complaint can close, Sarpanch approval for announcements, and department privacy. We picked Cedar because the alternative was an if-else jungle we'd be lost in by 2 AM.
  • Strands Agents for the agent bits.
  • CloudFront + S3 + Cognito serve the Panchayat console. The secretary and the Sarpanch log in and see every water point, every call, every ticket, every family response. Dekh raha hai Binod? Sab dikh raha hai.
  • CloudWatch dashboards and alarms, SSM Parameter Store for keys, AWS CDK in Python, all in  ap-south-1  (Mumbai).
  • Outside AWS: Vobiz gives us a real +91 number, and Sarvam does the Hindi voice ("Ritu") and speech-to-text.
Now the best part. The AWS + AI bill for one village of 50 families is about $0.35 a month (our estimate from list prices). That's roughly one chai. Per village. Per month. Ek-ek cup chai aur bola jaye.
The phone number costs ₹500 a month. Yes, the most expensive item in our cloud architecture is a phone number. Call minutes depend on the Vobiz plan.


Yes, It's Live. Like, Actually Live.

Not a demo server. Not "please imagine these are real calls".
JalSakshi runs in Kutelabhatha, Durg (Chhattisgarh), on the water pump our first users rely on, near the IIT Bhilai campus. Every family is a real family. The pump operator is a real pump operator. The Sarpanch is a real Sarpanch. Every call in the console is a real call to someone's actual phone.
So consent comes first. The very first call reads a short notice in the family's language and asks them to press 1 to agree. Every consent goes into an append-only record, and Cedar checks it before every single call. "I think they agreed" is not a policy.
Signing families up doesn't need an app either. The Panchayat secretary can paste numbers, photograph the paper register, or families can just give a missed call.
Somewhere in Phulera, Sachiv ji is jealous.
What we did not do is plug into government systems. There's no public API for IMIS, Meri Panchayat or PHED ticketing, and JalSakshi never dials a government helpline. Complaints go up to the Sarpanch, and "raise it with the block office" is a suggestion for the Panchayat to act on, not something we do behind their back.

What AI Does (and What It Is Not Allowed to Touch)

Every hackathon project in 2026 has AI in it. Ours does too. But we had one rule:

What AI does:
  • Reads spoken complaints, after Sarvam turns the voice into text
  • Reads photos of handwritten registers (and then a human checks every row)
  • Writes complaint overviews and the Gram Sabha evidence sheet
  • Suggests a next step on each complaint: call the operator again, send it to the Sarpanch, raise it with the PHED block office, or wait. That suggestion comes from a chain of decision models (Jev, then OpenAI Decisions, then fixed rules), and only de-identified codes and counts are ever sent to them. We compared them on 8 labelled cases before launch.
What AI does not do: decide any status, decide who gets called, or press any button. Statuses come from tested rules. Call permissions come from Cedar. Every action on a complaint is pressed by a person.
The AI is basically the intern who leaves a very well-written sticky note on your desk. Helpful. Not allowed to sign anything.
Why so strict? Because when the outcome is whether a village's water gets fixed, the authority should sit with the people who live there. Not with a model that has never stood at a tap.
(Full disclosure, since the hackathon rules ask for it: we built JalSakshi with Claude Code. So AI helped build the system. It just doesn't get to run the village.)

Things That Humbled Us

Keypad phones don't care about your UI. No screen, no app, no tooltips, no dark mode. Every interaction had to fit into "press a number" or "say it out loud". Our entire frontend for families is a voice named Ritu.
Waiting on humans is a different kind of async. With  waitForTaskToken , a Step Functions execution just sits there until a person on a keypad phone finishes pressing buttons. Our state machine has developed more patience than either of us.
Handwriting is undefeated. Bedrock reads the photographed family registers, but a person checks every single row before anyone gets a call. One wrong digit means calling a stranger, and "sorry, AI ne galat padha" is not a consent record.
Everything needed a Plan B. And a Plan C. The AI text has three models and a template behind it. The next-step suggestion has two decision models and fixed rules behind it. We have more fallbacks than a Bollywood hero has comebacks.
Chhattisgarhi deserves a native speaker. The Chhattisgarhi prompts are written, and they're waiting for a native speaker's review before they go out. "Mostly right" is not good enough on a call to someone's dadi.
Scaling is a paperwork problem. More villages need a service-series number and DLT registration through a Panchayat or government partner. Lambda scales in seconds. Telecom approvals? Haan haan, ho jayega.


What "Built for Bharat" Means When You Actually Build It

We're two students from IIT Bhilai, in Chhattisgarh. The village where this runs is down the road from our campus.
Every number in the system is a real person's phone. A call from our number has to mean something useful, never spam. We thought about that every time we touched the call flow.
JalSakshi isn't trying to audit the government from the outside or replace the Panchayat. It gives the Sarpanch, the secretary and the pump operator what they need to fix things faster. It gives families a voice that feeds straight into that process. And when the Gram Sabha decides on certification, it has evidence from its own households.
Whether water came is a question only the family can answer. We just made it easy to ask.

Try It

Built by Galaba Vamsi (voice, agent, data) and Varun (core, infra, console) for Environmental Hacks, WeMakeDevs × AWS Builder Center Bharat Builds Tour, Heat & Water track.
If you read this far: press 1 if water came today. Press 7 if you need the Sarpanch. Press "ho jayega" and Cedar will deny the request.




Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article