CivicTrace
Report problems. Track repairs. Verify the fix.
Inspiration
Reporting damaged roads, faulty streetlights or water leaks is only part of the problem. Residents also need a reliable way to know whether anything was done about them. I wanted to build a system where a repair claim could be checked, challenged and traced back to the people and evidence involved.
What it does
CivicTrace allows residents to submit infrastructure reports with locations and supporting evidence. Reviewers moderate reports and evaluate potential duplicates, while public works operators record repair progress and completion claims.
Residents can inspect the outcome and dispute repairs that are still incomplete. Case events are recorded in a tamper-evident SHA-256 hash chain, giving each case a verifiable history.
The platform also provides neighborhood statistics and identifies potentially recurring infrastructure problems.
How I built it
I used React, TypeScript and Vite for the frontend, FastAPI and Python for the backend, and SQLite and PostgreSQL/PostGIS for persistence. The project uses cryptographic event verification, deterministic duplicate correlation and Playwright browser testing.
Challenges
The hardest part was building reliable case transitions while preserving the integrity of earlier records. I also had to handle concurrent actions, access control, duplicate reports and independent repair verification.
What I learned
Building CivicTrace showed me how important data integrity and understandable workflows are in public-service software. A useful civic platform needs more than a reporting form—it needs accountability throughout the resolution process.
What's next
Future work includes real municipal integrations, stronger identity verification, production-grade hosting and more detailed geographic mapping.
Note: CivicTrace currently runs as a local demonstration and is not connected to an actual municipal government.
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for CivicTrace
Built With
- cryptography
- fastapi
- playwright
- postgis
- postgresql
- python
- react
- sqlalchemy
- sqlite
- typescript
- vite
Log in or sign up for Devpost to join the conversation.