Project Inspiration:

Road users frequently encounter dangerous potholes, damaged infrastructure, reckless driving, accidents, and other traffic hazards. However, reporting these incidents is often complicated, slow, or disconnected from the people responsible for reviewing them.

I created RoadPatron because I believe everyday road users can contribute to safer roads when they are given a simple, secure, and responsible reporting platform. My goal is to transform photos and videos captured by citizens into structured, reviewable road-safety reports while maintaining privacy, accountability, and human oversight.

What it does:

RoadPatron is a community-powered road-safety reporting platform that allows users to submit reports about road hazards, incidents, and traffic violations using photo or video evidence.

Users can securely sign in, create structured reports, upload images or videos, track report status, receive requests for more information, and provide additional evidence when required.

Authorized reviewers can examine reports, access private evidence, add internal notes, request additional information, identify possible duplicates, reject invalid submissions, approve eligible reports, and forward appropriate cases.

AI assists reviewers by analysing evidence, detecting possible duplicates, and highlighting relevant details. However, AI remains advisory only. Every important decision is made by an authorized human reviewer.

How I built it:

I built the RoadPatron mobile application using React Native, Expo, TypeScript, and Expo Router. I developed the reviewer dashboard using React, Vite, and TypeScript.

Firebase provides the backend infrastructure:

  • Firebase Authentication for secure access
  • Cloud Firestore for reports, notifications, status history, audit records, and workflow data
  • Cloud Storage for private image and video evidence
  • Cloud Functions for secure backend workflows and authorization
  • Firebase Hosting for the staging reviewer dashboard

I implemented role-based authorization to separate normal users from reviewers. Firestore and Storage security rules protect reports and evidence from unauthorized access.

I also created a staging-only environment for safe testing. Synthetic evidence and controlled test accounts were used to validate the workflow without involving real incidents, personal data, or production resources.

Challenges I ran into:

One of the biggest challenges was securing uploaded evidence while still allowing authorized reviewers to access it. Images and videos could not be made public, so I implemented private Storage rules, authenticated access, reviewer authorization, and evidence-access logging.

I also encountered permission errors during report submission because the secure report-draft flow required media identifiers to be registered correctly before evidence was uploaded. I corrected the Firestore and Storage rules while keeping access restricted.

Another challenge was maintaining a clear separation between staging and production. I created a dedicated Android package, Firebase project, Storage bucket, hosting environment, update channel, and EAS build profile specifically for staging.

Dark-mode readability was another issue. Some email, password, placeholder, border, and validation-error colours did not adapt correctly to the selected theme. I improved the form components so every state remains readable in both light and dark modes.

I also made sure that raw Firebase permission errors were never displayed directly to users. Technical backend messages were replaced with safe and actionable user-facing messages.

Accomplishments that I’m proud of:

I successfully built and validated an end-to-end road-safety reporting workflow.

The staging system supports:

  • Secure tester and reviewer authentication
  • Private image and video uploads
  • Structured road-safety reports
  • Human reviewer decisions
  • AI-assisted evidence analysis
  • Duplicate-report detection
  • Additional-information requests
  • Report approval, rejection, and forwarding
  • User and reviewer notifications
  • Status-history tracking
  • Internal reviewer notes
  • Evidence-access logging
  • Workflow audit records
  • Idempotent symbolic points allocation

I verified the platform using five synthetic staging scenarios, including a valid image report, a valid video report, a blurry image, a possible duplicate, and a report requiring additional information.

I am especially proud that AI does not automatically approve, reject, penalize, forward, or reward users. Human oversight remains mandatory throughout the platform.

I also completed automated tests, security-rule tests, type checks, lint checks, secret scans, staging-identity checks, design reviews, and product reviews before generating the Android staging APK.

What I learned:

I learned that building a reporting platform is not only about creating an upload form. A responsible system must carefully handle evidence privacy, authorization, auditability, duplicate submissions, user feedback, reviewer accountability, and secure error handling.

I also learned that AI works best as a decision-support tool rather than an autonomous authority, especially when reports could affect other people.

Testing with synthetic data helped me validate complex workflows safely without using real incidents or exposing personal information.

The project also taught me the importance of separating development, staging, and production environments. Dedicated identifiers, security rules, build profiles, cloud resources, and deployment checks significantly reduce the risk of accidental production changes.

What’s next for RoadPatron:

My next step is to complete owner-device validation of the Android staging application. This includes testing authentication, report creation, image and video uploads, report tracking, additional-information responses, theme accessibility, and reviewer-data isolation.

After successful device validation, I plan to:

  • Conduct controlled testing with a small group of approved external testers
  • Improve evidence quality checks and duplicate detection
  • Add privacy-protection features such as face and licence plate redaction
  • Improve accessibility and multilingual support
  • Develop dashboards for road-hazard trends and high-risk areas
  • Explore responsible integrations with relevant road-safety organizations
  • Gather feedback from users, reviewers, and public-sector stakeholders
  • Prepare a limited pilot for Malaysia and India.

My long-term vision is to make RoadPatron a trusted bridge between road users and responsible organizations, helping communities identify risks earlier, respond more effectively, and make roads safer for everyone.

Built With

Share this project:

Updates