Inspiration

We wanted to make a web application that helps people who live in or near Buffalo with the issues they face now and in the future. We landed on making a small Natural Disaster Hub called Snowbelt that mainly focuses on heavy snowstorms in the winter season. Snowstorms up here in Western New York are typically bad and hard to deal with, and it's hard to know how much they're hurting other people based off where they live.

What it does

It maps out weather patterns into a live and projected feed on a map of Buffalo and Western New York, using the National Weather Service forecast for the present and the next 24 hours. We wanted this web application to be more useful to people who live in Buffalo than your typical weather forecast app or website. It labels which parts of Buffalo will be heavily affected by the snowstorm, ranks which towns are getting hit the hardest, and checks if your drive goes through risky snow. We also have points on the map for local law enforcement and government buildings like town halls, along with shelters and warming centers for local help if the user is being heavily affected by the snow. You can also turn on a replay based on the November 2022 lake-effect storm to see what it looks like during a big one.

That's where the AI chat assistant comes in. It's powered by Gemini, and it can help clarify which paths or areas are safe to travel, recommend what supplies you should get to prepare for the storm, and point you to where you can get them. It uses the snow conditions, routes and shelters in the app to inform its answers.

The app works around your location in Buffalo. When there's a way around the heavy snow, it shows you a safer path, but the tradeoff is it usually takes longer than the riskier snowy paths. There's also a community feature that lets people in Buffalo offer help to locals who need supplies, directions, or help shoveling snow. You sign in with Google and ask for help, your emergency contacts get an email, and a neighbor or volunteer can claim your request with an ETA. After, you can rate the person who helped you, and volunteers can list what they can help with, like a snowblower or rides to shelters.

How we built it

We first started brainstorming the main mechanics the user would want from an advanced Natural Disaster Hub, things like a map, weather movement, etc. For the UI we kind of first drew it on a board, then used Claude to give us a web design for the general draft, and used Gemini to find sources and resources for how we'd build the map and snow forecast feature.

The frontend is React and TypeScript with Vite, with a Leaflet map. The backend is Python with FastAPI. We used OpenRouteService for routing and comparing safe vs. risky paths, Firebase for Google sign-in and storing community data, Gmail for sending email alerts to emergency contacts, and the Gemini API for the chat assistant. Twilio SMS alerts are built in too, but not turned on yet. The weather data comes from the National Weather Service API, which gives us the snowfall forecast and active alerts. We pull the forecast for dozens of towns around Western New York and blend them into one map.

Challenges we ran into

Our biggest challenge was trying to find sources of live satellite data that track weather patterns while also trying to project future snow accumulation. We ended up using the National Weather Service forecast instead, since it already does that. It was also challenging to make the map more accurate and form paths under certain conditions, because snowstorm patterns can change, which makes it harder to make paths or label which parts of Buffalo are safe.

Accomplishments that we're proud of

We're proud that we were able to narrow down the idea for our web application, since we started off very broad with too many overcomplicated ideas. We really wanted to make sure the web application gives enough information and help to the user. We initially thought it would be hard to make it actually helpful, so we're really proud of where it ended up, with the map, the Gemini assistant, routing and the community help all working together.

What we learned

We learned that finding live weather data is a lot harder than we expected, and predicting snow accumulation is a whole different problem from just showing the current weather. We also learned how to hook Gemini up to our own data so it can look things up before it answers, how to work with routing APIs, and how important it is to narrow down the idea early instead of trying to build everything.

What's next for Natural Disaster Hub

Making the web application consider which parts of Buffalo are under a power outage from the storm. We're also trying to expand the community hub so people can reach emergency contacts and resources more easily. We also want to make our own lake-effect snow predictions from wind direction and Lake Erie's temperature, and connect the storm checklist to the volunteer hub so if you mark that you need something, it shows you volunteers nearby who can help with it.

Built With

Share this project:

Updates

Submission history