Inspiration
Quite recently, on January 13, 2026 I got robbed in the Houston area. They took my most valuable possession, my MacBook. It had all of my competition code stored locally, and so I lost most of my data on it. Additionally, my car window was broken, which caused me a horrible, long drive back home to Katy, TX, which is 40 minutes away from Houston. In actuality, I didn't know the dangers of Houston. I haven't been there very often, and I've always lived in particularly safe areas. I didn't know the dangers. Thus, creating this would help others like me find alternative and safer paths to the same destinations as well as prevent tragedies like this from occurring again. Using the safety scores, people can assess whether to bring valuables along with them and where to stash them if they do.
What it does
SafeRoute is a crime-aware navigation web application that analyzes reported crime data near a selected route and generates a safety score based on proximity risk. Users enter a starting location and destination, and the app retrieves a route between the two points. It then evaluates nearby crime incidents within a defined radius of the path and applies a proximity-based penalty system. The result is:
- A mapped route visualization
- A color-coded safety indicator
- A numerical safety score
- A breakdown explaining the calculated risk
This allows users to make informed decisions before traveling, especially in unfamiliar areas.
How I built it
SafeRoute was built as a client-side web application using:
- HTML and CSS for structure and styling
- JavaScript for route calculation and safety scoring
- Leaflet for interactive mapping
- OpenStreetMap for map tiles
- OSRM for route generation
Crime data is processed locally and evaluated against route coordinates. For each incident within a defined proximity threshold, a weighted penalty is applied to the safety score. The scoring logic balances route distance and crime density to produce an interpretable result. The project was deployed using GitHub Pages to make it easily accessible and demo-ready.
Challenges I ran into
One major challenge was implementing route-based safety analysis without access to paid APIs. Many commercial mapping services require billing, which limited our options. I addressed this by using open-source tools like OSRM and OpenStreetMap to build a cost-accessible solution. Another challenge was designing a scoring system that was both meaningful and understandable. Crime density varies significantly across areas, so I needed a penalty model that reflected proximity without exaggerating risk. Fine-tuning the distance threshold and weighting logic required iteration and testing. Additionally, optimizing the interface for mobile responsiveness while keeping the map and controls usable was a design challenge.
Accomplishments that I'm proud of
I am proud that SafeRoute:
- Successfully integrates real routing data with safety scoring
- Operates entirely without paid APIs
- Provides a clear and interpretable risk breakdown
- Deploys as a fully accessible live web app Most importantly, I transformed a personal negative experience into a preventative tool that could help others avoid similar situations.
What I learned
Through building SafeRoute, I learned:
- How to integrate multiple open-source mapping tools into a cohesive system
- The importance of clear data visualization when communicating risk
- How to balance technical functionality with user-centered design
- The constraints and trade-offs of working within free API ecosystems I also gained a deeper understanding of how data accessibility impacts safety awareness.
What's next for SafeRoute
Future improvements could include:
- Real-time crime data integration
- Alternative route comparison (safest vs fastest)
- Machine learning-based risk modeling
- User alerts for high-risk zones
- Expanded city support beyond Houston Ultimately, SafeRoute could evolve into a broader safety-focused navigation platform designed for students, commuters, and travelers in unfamiliar areas.
Log in or sign up for Devpost to join the conversation.