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

Share this project:

Updates

Submission history