Inspiration: Safety is a major concern in many cities, especially for women, students, and people traveling alone. We realized that most safety apps react after something happens. We wanted to build something that warns users before they enter a potentially unsafe area. This inspired us to create SafeWay, a real-time geo-alert system that helps people navigate safely by detecting danger zones around them.
What it does: Tracks your real-time GPS location. Looks for nearby unsafe zones (geo-fencing)Instantly alerts you if you enter a dangerous area. Shows unsafe areas on a live mapLets admins add/remove unsafe zones. Plays an alarm, vibrates (on mobile), and shows a warning. Provides a quick SOS button for emergencies.
How we built it: Frontend: HTML, CSS, JavaScript. Maps: Leaflet + OpenStreetMap. Geo-Fencing: navigator.geolocation.watchPosition() + Haversine formula. Alerts: Custom modal, vibration API, audio alarm. Storage: LocalStorage for unsafe zone data. Design: Responsive layout for both mobile and desktop. Testing: Mobile GPS + Chrome DevTools location simulation.
Challenges we ran into: Getting accurate real-time GPS data in browsers. Avoiding repeated alerts when staying inside the same unsafe zone. Handling mobile permissions for location and vibration.
Accomplishments that we're proud of: Built a fully functional real-time geo-fencing system. Successfully implemented live location tracking on web. Clean, simple UI built from scratch.
What we learned: How to implement efficient geo-fencing using JavaScript. Real-world challenges with browser GPS permissions. Difference between desktop and mobile GPS accuracy
What's next for SafeWay: Integrating crowdsourced reports with on-chain data (Web3). Machine learning to identify danger hotspots automatically. SMS alerts to emergency contacts. Safer route suggestions using dynamic routing.
Built With
- geofencing
- gps
- html5
- javascript
- mobile-friendly-ui-styling-javascript-(vanilla-js)-?-core-logic
- navigator
- openstreetmap
Log in or sign up for Devpost to join the conversation.