Inspiration

In Kenya, when an accident happens or a patient urgently needs a blood transfusion, families often turn to social media — posting desperate pleas on Facebook and WhatsApp groups hoping someone with the right blood type will see it in time. This process is painfully slow and unreliable. Meanwhile, hospitals frequently face blood shortages, and willing donors nearby have no way of knowing they're needed. DamuAlert was born from the question: what if we could notify the right donors instantly?

What it does

DamuAlert is a location-aware blood emergency notification system. When a hospital or patient creates an emergency request for a specific blood type, the system instantly sends SMS alerts to all registered donors with matching blood types within a defined radius. Donors can confirm their availability with a single tap, and the requester gets real-time updates on who's coming to donate.

How we built it

  • Frontend: React.js with a responsive mobile-first UI for donor registration, emergency request dashboards, and real-time status tracking
  • Backend: Node.js + Express.js REST API handling donor matching, geolocation queries, and SMS alert dispatching
  • Database: MongoDB with geospatial indexing (2dsphere) for efficient nearby-donor lookups using $geoNear aggregation
  • SMS Integration: Africa's Talking API for reliable SMS delivery across Kenyan mobile networks
  • Authentication: JWT-based auth with role separation for hospitals and individual donors
  • AI Layer: Qwen model integration for intelligent donor matching and emergency triage prioritization

Challenges we ran into

Geospatial querying at scale was tricky — we had to optimize MongoDB's $geoNear aggregation pipeline to return donors within radius efficiently without timeouts. Handling SMS delivery failures across different mobile carriers required implementing robust retry logic and queue-based dispatch with Africa's Talking. We also faced challenges designing a registration flow simple enough that non-tech-savvy donors in rural areas could complete it without assistance.

Accomplishments that we're proud of

We built a fully functional emergency alert pipeline that can notify matched donors within seconds of a request being created. Our geospatial matching engine accurately filters donors by both blood type compatibility and proximity. We also implemented SMS delivery confirmation tracking so requesters know exactly how many donors received the alert and who confirmed — bringing transparency to a process that was previously a shot in the dark on social media.

What we learned

We learned how critical geospatial indexing is for location-based services and how to design systems for unreliable network conditions — SMS fallbacks, queue-based dispatch, and graceful degradation. We also gained a deeper understanding of blood type compatibility rules (not just exact matches, but universal donor/recipient logic). Most importantly, we learned that building for the user's real environment matters — not everyone has a smartphone or stable internet, but almost everyone has SMS.

What's next for DamuAlert - Personal Blood Emergency System

  • USSD support for feature phones so donors without smartphones can register and respond
  • Integration with Kenya National Blood Transfusion Service (KNBTS) to sync with national blood bank inventory levels
  • Donor health tracking with eligibility reminders (56-day cooldown between donations)
  • Hospital dashboard for managing multiple concurrent emergency requests
  • Expansion to other East African countries (Uganda, Tanzania, Rwanda)
  • WhatsApp Business API integration as a secondary notification channel

Built With

Share this project:

Updates