Inspiration

PRAJA was originally built for India Innovates 2026, the world’s largest civic tech hackathon, where it went all the way to the national finals at Bharat Mandapam.
India’s grievance systems are fragmented, slow, and often inaccessible for citizens who are not fluent in English or comfortable with complex portals.
We wanted to build something that feels as simple as sending a WhatsApp message, but with the reliability and accountability of a serious government workflow.
Seeing everyday issues in our own cities go unresolved for months inspired us to design a system that treats each complaint like a trackable ticket, not a one-way shout into the void.

What it does

PRAJA is an AI-powered GrievanceOS that connects citizens to the right government officials through a single, unified platform.
Citizens can submit complaints via WhatsApp, SMS, Web, or Voice; PRAJA automatically translates, classifies, and prioritizes each grievance.
The system routes tickets to the correct department/ward, tracks SLAs, and keeps citizens updated through real-time notifications.

How we built it

We built the frontend with React 18, Vite, React Router, and Tailwind CSS to get a fast, modular UI that can scale to multiple roles and dashboards.
For the backend, we used Supabase for PostgreSQL, authentication, Row Level Security, and Edge Functions to handle secure grievance workflows.
The AI layer runs on Groq’s LLaMA models for translation, sentiment analysis, and multi-label classification of complaints, while Twilio handles WhatsApp/SMS/Voice channels and status updates.
We iterated quickly using Vite’s dev server, Supabase migrations, and a focused schema for citizens, officials, tickets, and SLA events.

Challenges we ran into

Designing a schema that could handle multiple channels, many departments, and hierarchical routing (state → city → ward → officer) without becoming unmanageable was tricky.
Getting multilingual support right was challenging: we needed to preserve the citizen’s original text while still providing clean, standardized English versions for analytics and routing.
Balancing AI automation with human control was another challenge—ensuring misclassified or low-confidence tickets can be reviewed and corrected by officials.
We also had to be careful with performance and cost when calling large LLMs for every message, so we thought about batching, caching, and lightweight models for simpler tasks.

Accomplishments that we're proud of

We built an end-to-end flow where a citizen can raise a complaint on WhatsApp and see it appear as a structured ticket with category, urgency, and SLA in the dashboard.
Our SentinelPulse-style heatmap concept lets administrators visualize grievance hotspots and public mood across regions, which is powerful for planning and governance.
We are proud that the architecture is practical and deployable: React + Vite on the frontend, Supabase as a managed backend, and Groq/Twilio for scalable AI + communication.
Most importantly, PRAJA feels like a tool that real citizens and local bodies could actually adopt, not just a demo.

What we learned

We learned how important data modeling is when you’re building civic-tech tools—bad schema decisions early on can make routing and reporting almost impossible later.
We deepened our understanding of chaining AI capabilities (translation → sentiment → classification → routing) and where to put human-in-the-loop checks.
We also saw how powerful omnichannel design is: users don’t care about our stack, they just want to use whatever channel is easiest for them at that moment.

What's next for PRAJA

Next, we want to integrate real geospatial visualizations and a proper SentinelPulse heatmap to track clusters of grievances in near real time.
We plan to add more languages, richer dashboards for ML-based SLA breach prediction, and a feedback loop so citizens can rate resolutions.
Long term, we want PRAJA to be pluggable into existing e‑governance systems so that municipalities can adopt it with minimal friction while still giving citizens a modern experience.

Built With

  • auth
  • edge-functions
  • groq-(llama-models)
  • javascript/typescript
  • node.js
  • npm
  • react-18
  • react-router
  • rls)
  • sms
  • supabase-(postgresql
  • tailwind-css
  • twilio-(whatsapp
  • vercel
  • vite
  • voice)
Share this project:

Updates

Submission history