Inspiration

We built Helping Hand because there are no unified tools that bring together opportunities for volunteering, aid, and crisis response in one place. When disasters happen — floods, fires, or humanitarian emergencies — the information about who needs help and how to help is scattered across news articles, social media posts, and local reports. Existing systems don’t effectively aggregate or interpret these signals in real time. That’s where we saw an opportunity.

What it does

Our platform collects and organizes information about ongoing crises — such as floods, wildfires, or other emergencies that require community assistance. It aggregates data from various news outlets, processes the unstructured data using the Google Gemini LLM, and then displays it in a clear, interactive interface. Users can view a global map of active crises and explore a list view, sorted by various attributes to match participants to volunteering opportunities.

How we built it

We combined a React frontend with a FastAPI backend, storing data in MongoDB to power the user experience. Specifically, we periodically run a program that filters events from a news source and uses Gemini v2.5 to analyze it, extracting information that can be used to geolocate the event using Google APIs. This geolocation data is used by the MapBox module that our application implements to display each event as an interactable spot on the map.

Challenges we ran into

Throughout building this project, we’ve learned that creating a real-time platform for crisis information isn’t just a technical challenge, but an information challenge. Our primary data source filters from the last weeks' worth of news articles, however there was a lack of articles that matched our filters in the neighboring area, which negatively impacted our testing process. In addition, the API that we used to source news articles had a limit on the number of characters we could query, so we had to build our database by combining queries that matched randomized sets of randomized keywords set by us. To solve the above issues, we leveraged Gemini API to glean useful data attributes from our constricted query of news articles.

Accomplishments that we're proud of

  • Successfully integrated multiple APIs (News API, Google Gemini, Google Maps, and MapBox) to create a seamless pipeline from raw unstructured news data to a clean, interactive map of crises.
  • Built a functioning prototype that automatically discovers and categorizes real-world crises without manual intervention.
  • Designed a user interface that balances clarity and urgency, helping people quickly identify where help is needed most.
  • Overcame several API limitations and data inconsistencies to produce a working proof of concept in a short time-frame.
  • Created an extensible architecture that can be scaled to support additional data sources, AI models, and real-time updates

What we learned

Throughout our development process, we’ve discovered how fragmented and unstructured data about emergencies and volunteer needs really is. We learned how to leverage LLM prompts for intelligent interpretation and filtering of unstructured data. We’ve also discovered how to make the user interface more intuitive, which is essential in a high stakes context.

What's next for Helping Hand

A key next step for our platform is enabling real-time updates and a mobile-friendly experience. We want users to receive the most up-to-date information on ongoing crises as they happen, and having live updates alongside push notifications could further enable this. At the same time, we’re designing a responsive, mobile-ready interface so people can access, monitor, and respond to crises from anywhere. Whether it’s a volunteer checking for nearby opportunities or an organization coordinating aid, the platform should deliver important information quickly and seamlessly on any device.

Built With

Share this project:

Updates