Inspiration
Every day, people notice problems in the places around them: a dangerous pothole, a blocked drain, overflowing waste, a broken streetlight, or an accessibility barrier.
The problem is rarely noticing these issues. The difficult part is knowing what the problem actually is, whether it truly needs attention, who is responsible, and what to do next.
We were also bothered by something deeper: even when a complaint is filed and marked as "resolved," there is often no simple way for the person who reported it to know whether the problem was actually fixed.
We wanted to close that gap.
MENDRA was built around a simple idea:
See the problem. Understand it. Take action. Prove the change.
What it does
MENDRA turns a photo of an everyday local problem into a guided path toward real-world action.
A user can upload a photo, describe what they noticed, and let MENDRA analyze it using AI. The system identifies the likely issue, estimates its severity, explains the visual evidence behind its assessment, and helps the user understand why it matters.
Because AI can be wrong, users can disagree with the assessment and bring the issue to the community. Other people can support or challenge the issue and contribute additional evidence.
When an issue gains enough support, MENDRA helps the user determine where and how to report it, including the relevant authority, category, evidence, and a structured complaint draft.
But MENDRA doesn't stop at reporting.
When a problem is later marked as resolved, a new photo can be submitted. MENDRA compares the original and new evidence to determine whether the issue appears to be resolved, partially resolved, or still present.
This creates a complete loop:
Observation → Understanding → Community → Action → Verification
How we built it
MENDRA is built as a modern full-stack application with AI at the center of the experience.
The frontend uses Next.js, React, TypeScript, Tailwind CSS, and Framer Motion to create a responsive, mobile-first interface for reporting and reviewing issues.
The backend is built with FastAPI and Python, with PostgreSQL/PostGIS used for structured case data and geographic queries.
Uploaded images are processed through a multimodal AI pipeline that handles:
- Visual issue identification
- Severity and confidence assessment
- Evidence extraction
- Explanations and educational context
- Complaint generation
- Before/after resolution analysis
We separated AI reasoning from deterministic application logic so that the model can make assessments without directly controlling critical state such as votes, permissions, or case status.
MENDRA also maintains a structured case timeline, community voting, location data, evidence history, and resolution records so every issue has an understandable history rather than disappearing after submission.
Challenges we ran into
One of the biggest challenges was deciding how much authority to give AI.
It is tempting to let an AI simply say:
"This needs to be fixed."
But real-world problems are rarely that binary, and AI can make mistakes.
We therefore designed MENDRA around AI-assisted decision making rather than AI-controlled decisions. The system exposes confidence and reasoning, allows users to disagree, and uses community input as an additional signal.
Another challenge was distinguishing between "marked resolved" and "actually resolved."
A status update alone is not enough to prove a physical problem has disappeared. This led us to build the before/after verification concept, where fresh evidence is compared with the original report.
We also had to keep the product simple enough to understand immediately while still making the underlying system technically meaningful. Instead of building a complicated collection of AI agents, we focused on one clear end-to-end workflow and made each step useful.
Accomplishments that we're proud of
We're most proud that MENDRA is not just another AI image-analysis tool or complaint form.
We created a complete feedback loop around a real-world problem:
a person sees something → AI helps them understand it → the community can validate it → the system helps them act → fresh evidence can prove the outcome.
We're also proud of making AI reasoning visible to the user instead of hiding it behind a single prediction.
The before/after verification flow is particularly important to us because it changes the meaning of "resolved." MENDRA doesn't simply record that someone says a problem was fixed; it creates a path to evidence-based verification.
Finally, we designed MENDRA so that every interaction can teach the user something about the issue itself, making civic participation more informed rather than purely transactional.
What we learned
We learned that solving a civic problem isn't only about building another reporting channel.
The harder problem is the space between observation and outcome.
People need help understanding what they are seeing, navigating complicated reporting processes, and knowing what happened after they reported something.
We also learned that AI is most useful when it acts as a layer between humans and complexity—not when it tries to replace human judgment.
Most importantly, we learned that evidence creates trust.
A community vote can show that people care about something. An authority status can show what was recorded. But a new piece of evidence can show what actually changed.
That distinction became the foundation of MENDRA.
What's next for Mendra
MENDRA's next step is to move from a prototype into a real civic infrastructure layer.
We want to connect MENDRA directly with more municipal and public reporting systems so users can move from AI guidance to official submission with as little friction as possible.
We also want to expand beyond individual issues by identifying recurring problems and larger patterns across neighborhoods—for example, locations where drainage, road damage, waste, or accessibility problems repeatedly occur.
Over time, MENDRA could build a living, evidence-based picture of how communities change:
What was broken. What was reported. What was done. And what was actually fixed.
Our goal is simple:
Make it easier for people to care about their surroundings—and much harder for real problems to disappear unnoticed.
Built With
- alembic
- argon2
- arq
- azure-blob-storage
- azure-container-apps
- azure-container-registry
- azure-database-for-postgresql
- azure-openai
- fastapi
- framer-motion
- gpt-5-mini
- jwt
- maplibre
- next.js-16
- postgis
- pydantic-2
- python-jose
- radix-ui
- react-19
- redis
- sqlalchemy-2
- tailwind-css-4
- text-embedding-3-small
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.