Inspiration
The recent snowstorm exposed a familiar but preventable breakdown in how communities prepare for extreme weather. As forecasts worsened, the residents in our town rushed to grocery stores like Trader Joe's, Costco, and Kroger, only to find shelves stripped of essentials. Many people bought excessive supplies without knowing what was truly necessary, while others had no clear starting point for how to prepare at all. This scramble not only wasted time and fuel, but also left some households over prepared and others without basic necessities.
This experience highlighted how information about supply shortages and crowding was fragmented and inaccessible. Had shoppers known which stores were already low-stocked, and how much they actually needed to sustain themselves for the duration of the storm, many trips could have been avoided entirely. The snowstorm showed how the lack of coordinated and personalized supply guidance can turn preparation efforts into chaos.
What it does
The app fills this gap by providing personalized supply guidance for short-term crises. It uses the type and duration of a weather event, along with individual factors like age and body metrics, to generate a list of essential supplies. After receiving their personalized list, users can see which nearby stores have those items in stock, based on quick check-ins or photos from other customers. This reduces panic buying, unnecessary trips, and unequal access to essentials.
How we built it
We built our app using a React front end and a Node.js back end. Our development environment included Visual Studio Code, and we ran the project locally using Node.js.
Challenges we ran into
We initially tried to use MongoDB to create retailer profiles and pull real store inventory instead of relying entirely on user data. We learned a lot during the process, but we were not able to get the component working in time, and had to abandon the idea. As a result, we had to redesign parts of the UI and refine the app’s functionality. We hope to revisit this feature in the future and fully integrate retailer inventory into the app.
Accomplishments that we're proud of
During this project, we successfully integrated APIs to display nearby store data and weather based on the user’s location. This was a new experience for all team members. We are also proud of how the UI came together. There were many bugs and design changes, but in the end the app is easy to navigate and looks polished.
What we learned
We learned how to use the Google Maps API to show nearby stores, helping users quickly find the closest locations and check item availability. We also learned how to use the OpenWeather API to display users’ current weather conditions based on their location. We also learned how to integrate an LLM into our project via the Gemini API. We figured out how to prompt the LLM using input data via a valid JSON file and were surprised at how well Gemini was able to convert this data and generate a response.
What's next for CrisisCart
In the future, we hope to involve store retailers more directly in the app. We plan to add a retailer login on the main page so store staff can input real inventory data and update item quantities for their location. Ideally, this would make locating essential goods faster, and more accurate. We also hope to add a verification process to ensure the information provided by retailers is accurate and trustworthy.
Built With
- gemini
- google-maps
- next
- node.js
- openweather
- react

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