Inspiration

Brampton's existing 311 system relies on phone calls and web forms — slow, one-directional, and disconnected from the community. We wanted to give residents a voice and let the crowd surface what actually matters, not just what gets reported first.

What it does

Residents report neighborhood issues (potholes, broken streetlights, graffiti) by snapping a photo and dropping a pin. Reports appear on an interactive map and a TikTok-style feed where the community upvotes and comments. City officials get a real-time admin dashboard to filter, prioritize, and resolve issues — with the most upvoted problems rising to the top.

How we built it

  • Mobile app: Expo (React Native) with TypeScript, featuring GPS auto-detection, camera integration, and anonymous Reddit-style usernames
  • Admin dashboard: Vite + React + Tailwind CSS with Recharts for analytics and Leaflet for interactive maps with marker clustering
  • Backend: Firebase Auth, Firestore, and Storage for real-time data and media
  • Deployment: Vercel for the web dashboard, Expo for mobile

Challenges we ran into

  • Getting reliable GPS within Brampton boundaries while handling edge cases and fallback positioning
  • Building a smooth media feed that handles both photos and videos without jank
  • Designing a status update flow (Open → In Progress → Resolved) that keeps residents informed without overwhelming them
  • Syncing real-time data across the mobile app and admin dashboard simultaneously

Accomplishments that we're proud of

  • A fully functional two-sided platform — resident app and admin dashboard — built end to end during a hackathon
  • Community-driven prioritization that actually works: upvotes directly influence what officials see first
  • Clean, intuitive UX on both sides — residents can submit a report in under 30 seconds, and admins can triage at a glance

What we learned

  • How to structure a real-time Firebase backend that serves two very different frontends
  • The UX tradeoffs between anonymity (encouraging honest reports) and accountability
  • How map clustering and geo-filtering make or break the usability of location-based apps at scale

What's next for 311.2Brampton

  • Push notifications so residents get alerted when their report's status changes
  • AI categorization to auto-tag reports from photos
  • Ward-level analytics so council members see issues specific to their district
  • Expansion beyond Brampton — the platform is city-agnostic by design

Built With

Share this project:

Updates

Submission history