RoadSense: drivers report the hazards, and the community keeps it current.
An Android app where drivers report potholes, flooding and debris with photo evidence and GPS, see hazards on a live map, and help confirm or resolve them, with a web dashboard for administrators.
01The problem
Road hazards such as potholes, flooding and debris are dangerous, and drivers have no easy way to report them or to know whether they've been fixed. A report that is never confirmed or closed quickly becomes noise.
02The solution
RoadSense makes reporting fast, shows every hazard on a shared map, and asks the community to keep that map accurate.
- Email/password and Google sign-in.
- A five-step reporting wizard: hazard type, description, photo, location and review, with upload progress.
- A home dashboard with a nearby-alert card, location card and clustered map.
- A hazard map with status filters (All / New / Investigation) and status-coloured markers.
- Community verification: users confirm hazards or mark them as resolved.
- Arrival prompts: within 150 m of a hazard, the app asks whether it's still there.
03Hybrid AI risk scoring
Every report gets a risk level. The design goal was that the driver never waits for an AI model.
- On submission, the phone assigns a preliminary risk level with a rule-based engine, instantly.
- A Firebase Cloud Function is triggered and asks Gemini to review the report and its photo.
- The function writes the AI risk level and its reasoning back to Firestore.
- The app listens in real time and refreshes the home screen and map automatically.
- On-device rules
- Firestore
- Cloud Function + Gemini
- Real-time update
04Admin dashboard
- Overview statistics, charts and an active hazard map.
- Report management with filtering, status updates and CSV export.
- Hazard detail pages with photos, reporter profiles and admin notes.
- Analytics on report trends and risk breakdown.
- Access restricted to accounts with an admin role claim.
05Challenges & decisions
AI review is slow, but drivers are on the road
Score instantly on the device with rules, then let the Cloud Function refine the score in the background and push it to the app in real time.
Hazards go stale once they're fixed
Community confirm/resolve actions, plus location-based prompts when a driver arrives within 150 m of a reported hazard.
Only administrators should manage reports
The admin dashboard checks for an admin role claim on the signed-in account rather than relying on a hidden URL.
06Outcome
A working Android app and web admin dashboard built by a team of four for ICT602 Mobile Programming. It's one of my clearest examples of using AI with guardrails: the model adds judgement, but the app stays fast and useful without it.
I can demo the app and dashboard on request. Get in touch.