Inspiration- The purpose of ATLRisk is to help people in Atlanta stay safe during first-time meetups, whether they are going on a first date, meeting an online friend, or completing a transaction from platforms like Facebook Marketplace. Atlanta is a large and lively city full of opportunity, but meeting someone new, especially someone you have only interacted with online, comes with uncertainty. ATLRisk gives users the information they need to make smarter, more informed decisions before stepping into these situations. We created this with college students, women, and frequent online buyers and sellers in mind, since these groups often face unique safety concerns when meeting strangers for the first time. By offering clear, easy-to-access safety data, our website gives users confidence to enjoy these interactions without putting themselves at unnecessary risk.

Stats- Atlanta’s violent crime rate is approximately 707 incidents per 100,000 residents, nearly twice the national average. In Georgia, a resident experiences rape every 2 hours and 36 minutes. 27% of female undergraduates and 7% of male undergraduates experience sexual assault or rape during college. Roughly 40 robberies occur every week in Georgia, with Atlanta accounting for about a fourth of them, around 11.6 per week.

Impact- The impact of this website is to make first-time meetups safer, more informed, and less stressful for people in Atlanta. By showing real-time risk levels of neighborhoods, users can decide where to meet someone, choosing a public, safer area instead of unknowingly walking into a high-risk location. This reduces the chances of running into dangerous or uncomfortable situations during first dates, online marketplace exchanges, or meeting someone new for the first time. For groups like college students and women, knowing nearby police precincts, healthcare clinics, and registered sex offender data provides an extra layer of security before agreeing to meet someone. In addition, our Chat Analyzer, VibeCheck, improves social safety by detecting toxic, manipulative, or suspicious behavior in conversations. This helps users spot red flags before agreeing to meet, allowing them to make safer decisions about who they trust. Ultimately, ATLRisk empowers individuals to navigate first-time meetups confidently, reduce risks, and prioritize their well-being both physically and socially.

What It Does- Map Features: When a user inputs an address and the time of day they’ll be there, our website generates a risk score from 1 to 100, the higher the number, the higher the potential risk. Our predictor uses multiple real datasets, integrating sex offender locations, proximity to police departments, healthcare clinic density, and recent crime reports. All of this is combined into one clear and digestible output so users don’t have to sort through dozens of confusing public records. The map provides a visual layout of the area, marking the address and showing nearby registered sex offenders, highlighting healthcare clinics, and identifying which police precinct covers the location. It also displays the direct phone number for that precinct so users can quickly reach out if needed.

Chat Analyzer - VibeCheck: VibeCheck addresses the reality that danger isn’t always physical. Users can upload screenshots, paste messages, or use voice-to-text to input conversations. The analyzer flags toxic language, gaslighting, manipulation, threats, and other harmful patterns—then explains clearly what was detected and why it matters. At the bottom, VibeCheck provides an overall summary of the conversation’s tone and safety level. It also suggests a safe, de-escalating message the user can send back, helping them navigate uncomfortable interactions with confidence and emotional safety.

Data Sources- Atlanta Police Department Open Data Portal Sex offender registry of ATL Geographic and demographic datasets from the Atlanta Regional Commission’s Open Data & Mapping Hub

Execution- ATLRisk was built using Python and Google's Gemini API to turn public safety data into clear, real-time insights for anyone in Atlanta going on their first meetup with online friends. The app runs on a Flask REST API that handles address searches and calculates risk scores. When a user enters an address, Flask geocodes it with Geopy, filters nearby crime data, and returns a real-time safety score. Pandas processes the crime dataset by filtering incidents based on distance (using the Haversine formula) and weighting them by severity and time of day. This produces a normalized 0–100 risk score. The Gemini API powers our VibeCheck feature, which analyzes conversations or situations for tone, sentiment, and potential red flags. This adds a qualitative safety layer beyond just location-based crime data. The interface is built with HTML/CSS and uses Leaflet.js to provide dynamic user experiences for the interactive map.

Challenges- Two of our three team members had experience limited to introductory, first-year coursework, while the third had no prior coding experience. As a result, we faced a steep learning curve in both technical implementation and project coordination. We also struggled with prompting AI tools, which required significant trial and error before we found approaches that worked. We also greatly struggled with learning how to integrate Gemini API tools and a map feature.

What we Learned- Through this project, we learned how to quickly adapt to unfamiliar tools, languages, and frameworks under time pressure. We gained hands-on experience in debugging, structuring a larger codebase, and breaking down complex ideas into manageable tasks. We also improved our ability to collaborate and delegate as well as refined our AI prompting skills to get more precise and useful outputs. Most importantly, we learned how to persist through setbacks and continuously iterate until our solution worked.

Built With

Share this project:

Updates