1. πŸ’‘ Inspiration

The idea for Pothole Radar didn't come from a single dramatic moment β€” it came from a pattern we couldn't unsee. πŸ“°πŸ˜” As a student, I kept coming across news articles and reports about people getting seriously injured, or even losing their lives, because of poorly maintained roads and undetected potholes. πŸ›£οΈβš οΈ What struck me most wasn't just the tragedy of each individual story β€” it was realizing how preventable so many of these incidents were, if only someone had reported the hazard in time and the right people had actually seen it.

That question stuck with me: if potholes are dangerous enough to make headlines again and again, why does reporting one still feel like shouting into a void? πŸ•³οΈπŸ“’ So I decided to actually test it myself β€” and quickly discovered the same broken system these articles kept hinting at. Municipal reporting forms were outdated, didn't accept photo uploads πŸ“·πŸš«, offered zero map feedback πŸ—ΊοΈβŒ, and gave no visibility into whether a report would ever be reviewed, let alone acted on.

That gap between "this is genuinely dangerous" and "there's no real way to flag it before someone gets hurt" became the driving force behind this project. I realized this wasn't just a local annoyance β€” it was a systemic failure playing out across cities everywhere: 🌍

πŸ™ˆ Citizens are blind β€” no tracking, no transparency, no feedback loop, even when lives are at stake. 🏚️ Cities are under-equipped β€” buried in scattered, unstructured complaints with no way to tell which hazards are truly life-threatening.

So I set out to build something that could close that gap: a transparent, community-first command center for road safety β€” one that helps everyday citizens report hazards before they turn into headlines, and gives city workers the smart tools to act fast on the ones that matter most. πŸ› οΈβœ¨

  1. πŸ—οΈ How We Built It

We engineered Pothole Radar from the ground up to be fast, responsive, and deeply data-driven. Every design decision was made with one goal in mind: remove friction for citizens and add intelligence for cities. πŸš€

πŸ–₯️ The Telemetry Interface Built on React 19 βš›οΈ and Vite ⚑ for a snappy, modern front-end experience, with Leaflet πŸ—ΊοΈ powering our interactive mapping system. Pothole coordinates render dynamically on the map in real time, so users can instantly see hazards in their neighborhood, zoom into their street, and understand exactly what's been reported nearby β€” no more guessing, no more black-box forms.

☁️ The Backend & Storage We chose Firebase Firestore πŸ”₯ to handle real-time data synchronization β€” meaning the moment someone reports a pothole, it appears live on every other user's map, instantly. πŸ“‘ Firebase Auth πŸ” secures our admin dashboard, giving municipal teams a safe, permissioned space to manage, verify, and resolve reports without exposing sensitive controls to the public.

Together, this stack turns a slow, bureaucratic process into something that feels alive β€” a living map of a city's road health, updating in real time. πŸŒ†πŸ’š

  1. πŸ“š What We Learned

πŸ€– AI Changes Everything for Civic Tech One of our biggest "aha!" moments was realizing just how much AI-assisted verification could transform civic infrastructure reporting. By integrating the Google Gemini Vision API πŸ‘οΈβœ¨, we built a system where users simply snap a photo of a pothole β€” and the AI automatically analyzes the image to estimate hazard severity, with impressively high reliability. πŸ“Έβž‘οΈπŸ“Š

This was huge. It meant municipal workers no longer had to manually sift through hundreds of blurry photos trying to judge "is this bad enough to fix first?" The AI does the heavy lifting instantly, saving hundreds of hours of manual validation work and letting city crews focus on what matters most: actually fixing roads. πŸ›£οΈπŸ”§

🎯 The Prioritization Engine We knew that if we just let every report pile up in a flat list, cities would get overwhelmed fast. πŸ˜΅β€πŸ’« So we built a smart Prioritization Engine β€” an algorithmic scoring system that automatically ranks every hazard on the map based on three key factors working together:

πŸ”₯ Severity β€” how dangerous is the damage? (Minor, Moderate, Severe) πŸ‘ Community upvotes β€” how many people have confirmed this is a real, urgent problem? ⏳ Time elapsed β€” how long has this report been sitting unresolved?

The engine blends these signals so that severe, highly-upvoted hazards bubble straight to the top of the queue for immediate attention 🚨, while older, lower-priority tickets naturally fade down the list over time instead of clogging up the system forever. It's essentially a self-organizing to-do list for city maintenance crews β€” no manual triage, no spreadsheets, no guesswork. Just smart, automatic prioritization that keeps the most dangerous problems visible. βœ…

  1. πŸ§— Challenges We Faced

🧩 Duplicate Telemetry Prevention Once real users started testing the app, we quickly ran into a messy problem: when multiple people report the same pothole from slightly different locations, the map gets cluttered with duplicate pins. πŸ“πŸ“πŸ“ This wasn't just visually confusing β€” it also skewed our prioritization data.

Our fix? We built a geospatial proximity detection system that calculates the real-world distance between any two reported locations. If a new report lands suspiciously close to an existing one β€” close enough to obviously be the same pothole β€” the system automatically flags a potential conflict. Instead of creating a cluttered duplicate, the user is prompted to upvote the existing report instead. πŸ™Œ This single feature dramatically cleaned up our map and made our data far more trustworthy for cities to act on.

πŸ“± Mobile Geolocation Fallbacks Mobile browsers are notoriously unreliable when it comes to GPS permissions. 😀 Many devices silently restrict location access or fail without any clear error message β€” which could've completely broken our core reporting flow before users even got started.

To guarantee a frictionless experience no matter what, we built:

🌐 Custom IP-based geolocation fallbacks for when GPS access fails or is denied πŸ–±οΈ Drag-and-drop map markers so users can manually fine-tune or correct their pin placement in seconds

The result: reporting a pothole always works, on any device, in any condition β€” no dead ends, no frustration. πŸ’ͺ

πŸ§— Challenges We Ran Into

Building Pothole Radar wasn't all smooth driving. 🚧 A few bumps we had to navigate:

Duplicate reports cluttering the map πŸ“πŸ“ β€” Multiple users reporting the same pothole created messy, confusing data until we built a proximity-detection system to catch and merge duplicates. Unreliable mobile GPS πŸ“±βš οΈ β€” Browsers often blocked or silently failed location access, so we had to build IP-based fallbacks and drag-and-drop pins to keep reporting frictionless. Balancing simplicity with intelligence βš–οΈ β€” Making an AI-powered severity engine and prioritization algorithm run behind the scenes without overwhelming users with technical complexity took several rounds of UX iteration. Solo development under a deadline ⏳ β€” As a student building this mostly independently, juggling frontend, backend, and AI integration within hackathon time constraints pushed me to prioritize ruthlessly and ship a lean, working MVP. πŸ† Accomplishments That We're Proud Of βœ… Built a fully functional, real-time reporting platform from scratch β€” not just a mockup β€” with live map updates, photo uploads, and instant feedback. πŸ€– Successfully integrated AI-powered severity detection, turning a simple photo into an actionable data point without any manual review. 🎯 Designed a smart prioritization engine that actually makes sense β€” severe, community-verified hazards rise to the top automatically. 🧹 Solved a real, messy data problem (duplicate reports) with a clean geospatial solution instead of a band-aid fix. πŸ’š Most importantly: built something that could genuinely help prevent injuries and save lives, not just win a hackathon.

πŸ“š What We Learned AI can be a force multiplier for civic tech β€” a single Vision API call replaced what would've been hours of manual human review. Real-world data is messy β€” handling duplicates, unreliable GPS, and inconsistent user input taught us that robust engineering matters as much as clever features. Simplicity is a feature, not a compromise β€” the more we simplified the reporting flow, the more "complete" the product felt, even as the backend logic grew more sophisticated. Civic problems need civic-minded design β€” technical elegance means nothing if citizens or city workers find the tool confusing or untrustworthy.

πŸš€ What's Next for Pothole Radar πŸ™οΈ Direct municipal integrations β€” partnering with local city infrastructure departments so verified reports feed directly into their existing repair workflows. πŸ“Š Analytics dashboard for cities β€” heatmaps and trend reports to help municipalities plan proactive road maintenance instead of just reactive fixes. πŸ”” Push notifications β€” alerting nearby drivers in real time about newly reported severe hazards on their route. 🌐 Expanding beyond potholes β€” broken streetlights, damaged signage, flooding, and other road hazards, all on the same platform. πŸ“± Native mobile app β€” a dedicated iOS/Android app for faster, more reliable on-the-go reporting.

Built With

Share this project:

Updates