Inspiration

Potholes are easy to notice, but reporting them takes effort: collecting evidence, describing the location, and figuring out which agency maintains the road. We wanted to make that process easier. PotPatrol turns “someone should fix that” into a report someone can act on.

What it does

PotPatrol is an iPhone prototype that turns road footage into reviewable pothole reports. Its analysis pipeline flags potential potholes and connects them with photo evidence, video timestamps, and GPS when available. Users can edit a report, review candidate agencies, and open an official reporting portal. Missing GPS does not hide a hazard, and opening a portal never claims that a report was submitted.

How we built it

We built the native app with SwiftUI, AVFoundation for video recording, and CoreLocation for GPS. Location samples use millisecond offsets from the first recorded video frame. Our Python/FastAPI backend handles authenticated MP4 uploads, background analysis, private evidence, and report drafts. A computer vision worker analyzes footage, while PostgreSQL stores application data. We deployed the backend on AWS with Docker and used macOS GitHub Actions to build and test the iOS app while developing primarily on Windows.

Challenges we ran into

Keeping video and GPS synchronized required careful handling of recording startup, delayed location updates, and interrupted sessions. Integration also exposed mismatched report fields and stale cached drafts. Another challenge was jurisdiction: GPS can suggest nearby agencies, but it cannot prove who owns a road. We added explicit candidate selection and kept submission status under user control.

Accomplishments that we're proud of

We built the capture, upload, analysis, evidence-review, and editable-report workflow across three developer components. Our automated checks passed 33 iOS unit checks, six simulator UI scenarios, and 57 backend and worker tests. We also verified authenticated uploads, private evidence, missing-location handling, and repaired report drafts using clearly labeled synthetic fixtures. Full-video sharing is optional and off by default.

What we learned

Reliable integration depends on precise contracts: timestamp origins, nullable fields, authentication, and response shapes all matter. We also learned that responsible reporting requires human review. A possible detection needs verification, an approximate location needs context, and a portal handoff needs an actual receipt before anyone can claim submission.

What's next for PotPatrol

We’ll merge the iOS branch into main, complete physical-iPhone testing, and validate the real model with safely recorded pothole and clean-road clips. After that, we want to improve detection accuracy, expand agency coverage, strengthen road-ownership verification, and explore shorter evidence clips and automatic privacy redaction.

Built With

Share this project:

Updates

Submission history