Inspiration
Cities rely on roads and infrastructure every day, yet damage such as potholes and road cracks often goes unnoticed until it becomes dangerous or expensive to repair. Reporting systems today are slow, inconsistent, and rely heavily on manual inspection.
We wanted to explore whether modern tools like computer vision and geospatial data could help cities detect and understand infrastructure damage earlier. Our goal was to build a system that can collect reports of road damage, map them geographically, and visualize where problems are concentrated so that repairs can be prioritized more efficiently.
What it does
CityWatch is a platform that helps identify and visualize infrastructure damage across a city.
Users can submit reports of road damage with location and images. These reports are stored in a geospatial database and visualized on an interactive map. The platform aggregates reports into heatmaps to highlight areas with higher concentrations of issues.
This allows municipalities or communities to quickly see where problems are emerging and prioritize maintenance before damage spreads.
How we built it
The project consists of three main components: • Mobile Frontend built with React Native and Expo, allowing users to view the map and submit reports. • Backend and database powered by Supabase with PostGIS, enabling geospatial storage and queries. • Map visualization using Mapbox, which renders heatmaps of reported infrastructure issues.
Reports include latitude, longitude, issue type, and severity. These are aggregated into spatial grid cells using PostGIS, allowing the system to generate heatmaps that reveal infrastructure risk patterns across a city.
Challenges we ran into
One of the biggest challenges was integrating geospatial data with our application. Working with spatial reference systems and PostGIS required careful setup to ensure coordinates and geometry data were handled correctly.
Another challenge was configuring the mobile development environment. Running native builds through Expo and Xcode introduced several build and dependency issues that needed to be resolved before the app could run properly.
Accomplishments that we're proud of
We’re proud of building a complete end-to-end system that connects a mobile reporting interface with a geospatial analytics backend. Users can submit infrastructure issues directly from the app, and those reports are immediately visualized on an interactive map, allowing problem areas to be identified quickly.
We’re also proud of integrating Supabase with PostGIS to enable spatial queries and heatmap generation, and combining it with a React Native + Expo mobile app and Mapbox visualization. Bringing together mobile development, geospatial databases, and real-time mapping into a single working system was a major milestone for our team.
What we learned
Through this project we gained experience working with: • geospatial databases and spatial indexing with PostGIS • building mobile apps using React Native and Expo • integrating Mapbox for real-time map visualization • designing systems that combine crowdsourced data with spatial analytics
We also learned how powerful geospatial analysis can be when applied to real-world infrastructure problems.
What's next for Crack
Future improvements could include: • better automated detection from uploaded images using computer vision • better predictive models to forecast where road damage is most likely to occur • integration with municipal repair systems to streamline maintenance workflows
Ultimately, our goal is to help cities detect infrastructure problems earlier and maintain safer, more reliable roads.
Built With
- c
- expo.io
- javascript
- kotlin
- mapbox
- postgis
- postresql
- python
- react-native
- ruby
- supabase
- swift
- typescript
Log in or sign up for Devpost to join the conversation.