About the Project

Inspiration

We built StreetWise to make Calgary more accessible for everyone. We noticed that barriers like broken sidewalks, missing ramps, or steep curbs often go unreported or take months to fix. Our goal was to create a tool that empowers residents to report issues easily and helps the city take action faster.

What It Does

StreetWise lets Calgarians report and track accessibility issues through an interactive map or by sending a text message.
Each report is automatically geocoded, categorized, and visualized on a live map. City staff can review, verify, and resolve reports through a dashboard that supports community filtering and progress analytics.

How We Built It

The frontend was built using React 18 and Vite, powered by Mapbox GL for interactive maps and Supabase for real-time data and authentication.
The backend runs on Flask, integrating Twilio for SMS reporting and OpenAI’s GPT-4o-mini to parse natural-language messages into structured fields like category and location.
We used the Google Maps Geocoding API to convert text addresses into coordinates:

\[ \text{Geocode: Address} \rightarrow (\text{Latitude}, \text{Longitude}) \]

Challenges We Faced

Integrating SMS with Flask and GPT-4o-mini was the hardest part. We had to configure ngrok tunnels for local webhook testing and handle delays from Twilio’s API.
We also had to design our Supabase schema carefully to support both public and private reports while keeping data secure with Row-Level Security (RLS) policies.

What We Learned

We learned how to blend AI, geospatial data, and real-time databases into one cohesive platform.
Most importantly, we realized accessibility in software is not just about compliance — it’s about removing barriers at every level of interaction.

What's Next

We plan to expand StreetWise to other Canadian cities, add photo uploads via SMS, and include advanced data visualization tools to help planners identify long-term accessibility trends.

Built With

Share this project:

Updates