Civic Hero
A deployed mobile-first civic-reporting prototype that moves image-led reports through assisted triage, a live Firestore feed and community verification.
Problem
A civic report needs more than an uploaded image. The prototype had to connect evidence, classification, location and status changes without presenting a demo as a production public-service system.
How I solved it
- 01
Built an image-report intake that combines Gemini-assisted triage with a nearby-report resolution planner, while retaining a user-facing report lifecycle instead of treating classification as the final action.
- 02
Models report state in Firestore from publication through cleaner claims, proof and citizen verification; people still acknowledge, claim and make the final clean-or-dirty decision.
- 03
Containerised the React and Express system and deployed it to Cloud Run as a demonstrable prototype, with the demo-grade permissions and verification limits stated openly.
My role / what I owned
Hackathon builder
- Built the image-report intake, Gemini-assisted triage and nearby-report resolution planner.
- Implemented the Firestore lifecycle from publishing and cleaner claims through proof and citizen verification.
- Containerised the React and Express application and deployed it to Cloud Run.
How it was built
- Team
- A private BlockseBlock hackathon repository. This public record exposes only the safe technical outline, not the source or internal deployment details.
- Tools
- React
- TypeScript
- Express
- Gemini
- Firestore
- Firebase
- Cloud Run
- Docker
- Use of AI
- Gemini assists image triage, resolution planning and completion-proof assessment. Firestore owns state, and people still control acknowledgement, claims and the final clean-or-dirty vote.
Source and current state
- 24 commits in the private hackathon repository at the 9 August 2026 review.
- Container, Cloud Run, Firestore lifecycle and verification paths are present in the audited source.
- The deployed demonstration is publicly reachable; no formal automated test suite is committed.
- Status
- Completed and deployed as a hackathon prototype.
- What it shows
- The live demonstration and audited private source support the report, triage and status-lifecycle claim.