Inspiration
Floods are one of the most common natural disasters in the United States, yet most people aren't prepared for it. I wanted to build something that was easy for anybody to use to check their real, official flood risk just by typing in their zip code!
What it does
Ripple Risk receives a valid US zip code and cross references it with FEMA flood zone data to determine the level of flood risk in that area and provides relevant information on how to prepare before, during, and after a flood.
How we built it
I used HTML, CSS, and JavaScript. The flood risk is determined by first converting the zip code to coordinates using the Nominatim API by OpenStreetMap to convert a zip code into latitude and longitude coordinates. Then, I passed those coordinates into FEMA's official ArcGIS REST API, specifically Layer 28 which contains all the flood hazard area data for the US.
Challenges we ran into
The biggest challenge I faced was connecting to the FEMA database. At first, I used the US Census Geocoder API to convert the zip codes to coordinates, but it kept returning errors/empty results because it was made for full street addresses, not just the zip code. Also, my browser was blocking the API request entirely because I was opening the HTML file directly from my computer ('file://') instead of through a real web server, so I had to run a local server using Python in my terminal. After, I switched from the Census API to Nominatim which was completely free with no API key needed. Once the coordinates worked, the FEMA API connection worked!
Accomplishments that we're proud of
I'm proud that the zone lookup works with real, live data that reports it in a way that is easy for people without a high-level understanding to grasp.
What we learned
I learned how to connect a website to a live external API using fetch(), what JS keywords like 'async' and 'await' mean and why they matter when waiting for data, and how to utilize my browser's console to troubleshoot.
What's next for Ripple Risk
I hope to create a mobile app with live alerts and updates so people can be alert during an emergency!

Log in or sign up for Devpost to join the conversation.