Inspiration SafeSight was inspired by a deeply personal story. One of our team members grew up in Botswana, where gender-based violence is not a statistic but a daily reality. Taking an Uber, walking to a friend's house, going out at night, these are things that have cost women their safety and sometimes their lives. When she came to Vancouver, the fear followed. Every woman is someone's daughter, someone's mother, and no one deserves to feel unsafe just for existing in public. The idea was further sparked at the WiCS AI Research Day event, where we were inspired to take what we learned and build something real for our community here in Vancouver.
What it does SafeSight is a web application that provides women and students with a real-time safety companion for navigating Vancouver. Users enter their starting location and destination, and SafeSight pulls real crime data from Vancouver's Open Data Portal, over 32,000 incidents and displays a safety score for both locations. Google's Gemini AI then translates that raw data into a calm, plain-English safety briefing. The app also shows a breakdown of recent incident types and provides one-tap access to emergency resources including 911, VPD Non-Emergency, SFU Safe Walk, and BC211.
How we built it We built SafeSight using Python and Flask for the backend, HTML, CSS and JavaScript for the frontend, and Google's Gemini API for AI-powered safety summaries. Crime data comes from Vancouver's Open Data Portal in CSV format, loaded and processed using pandas. We designed the UI mobile-first with a soft purple colour palette, elegant typography using Google Fonts, and smooth animations. The frontend features a custom autocomplete neighbourhood search, side by side safety score cards, dynamic results powered by the Fetch API, and a Google Maps route button.
Challenges we faced Our biggest challenge was the Gemini API free tier quota, we kept hitting rate limits during testing which forced us to implement a smart fallback that uses real crime data to generate a meaningful summary even when the API is unavailable. We also navigated Git merge conflicts as a team of three working across separate branches simultaneously, and fine-tuned our safety scoring system to reflect Vancouver's actual crime data scale, which is much higher than we initially anticipated.
What we learned We learned how to integrate a real government open dataset into a live application, how to work collaboratively using Git branches under time pressure, and how to use Google's Gemini API for practical AI-powered text generation. We also learned that the most impactful technology is built from personal experience, the best products solve problems you have lived yourself.
Built With
- css
- flask
- google-fonts
- google-gemini-api
- html
- javascript
- pandas
- python
- vancouver-open-data-portal
Log in or sign up for Devpost to join the conversation.