Inspiration
We’ve all seen news of floods swallowing towns, wildfires racing across hills, or earthquakes rattling cities and it can feel overwhelming. We wanted a simple, friendly tool that cuts through the noise and answers the big question: “How worried should I be right now?” Safe-Spot was born from that idea: real-time alerts + one clear risk score = peace of mind.
What it does
- Spot hazards nearby
Whether it’s a flood, fire, quake, or storm, Safe-Spot pulls in live feeds and maps them around you. - Crunches a 1–100 score
It factors in distance, hazard type, wind or magnitude, elevation, and even time of day to give you one easy-to-understand number. - Tappable map markers
Tap any marker and instantly see your personalized risk. No jargon, no charts just a raw score. - Finds your nearest shelter
A handy card points to the closest safe spot and gives you one-tap directions.
How we built it
- Expo & React Native for a smooth, cross-platform build.
- react-native-maps to paint the world around you and drop interactive callouts.
- Pure JS logic to normalize inputs (distance, wind, elevation, etc.) and calculate our risk score on the fly.
- Expo Location API for pinpointing where you are and doing the math to each hazard.
- Iterative design
We kept testing on-device, gathering feedback, and fine-tuning until it felt intuitive.
Challenges we ran into
- Inconsistent data feeds
Not all alerts speak the same language. We had to build smart parsers and defaults so nothing ever breaks. - Performance on phones
Rendering lots of polygons and distance calculations at once can lag. We learned to batch updates and memoize heavy operations. - Third-party library issues
We tried on-device ML under Expo Go but hit roadblocks, so we pivoted to a lightweight JS function that just works. - Offline handling
Cellular drops happen. We added caching so recent alerts and shelters stay available even when you lose signal.
Accomplishments we’re proud of
- Instant risk insights
Tap a marker and get a score in under a second. - Seamless shelter lookup
From risk awareness to directions in two taps. - Readable, accessible UI
Clear map layers, high-contrast text, and thoughtful design for stressful moments. - Solid offline support
Your data stays usable, no Wi-Fi required once you’ve opened the app.
What we learned
- Keep it simple
A pure JS approach trumps complex on-device ML when your priority is reliability. - Expect the unexpected
Handling edge cases (missing wind data, weird timestamps) is just as important as the main flow. - User feedback matters
Early testers helped us tweak normalization so “50” actually felt like medium risk. - Optimize early
Profiling performance on real devices saved us from nasty bottlenecks later.
What’s next for Safe-Spot
- Custom risk profiles
Let users tweak how much weight distance, elevation, or hazard type have in their score. - Offline map tiles
Pre-download regions so you’re covered even in black-spot areas. - Community shelters
Empower local organizations to add and update safe locations. - Smart alerts
Down the road, integrate optional machine-learning models to refine scores based on historical outcomes.
Built With
- expo.io
- google-maps
- javascript
- openai
- reactnative
- vscode
Log in or sign up for Devpost to join the conversation.