🩸 Emergency Donor Connect – Project Story 🚀 What Inspired Us During a college medical emergency, one of our teammates struggled for hours to find a matching blood donor. Despite several apps and online platforms, none gave real-time availability, nor did they ensure verified data or fast coordination. That moment made us realize: finding help shouldn’t be a hunt — especially when every second counts.
This project was born out of the need for speed, trust, and simplicity in life-threatening situations.
📚 What We Learned The importance of hyperlocal, real-time data in emergency applications.
How consent, trust, and privacy must be deeply embedded into the user flow — not treated as afterthoughts.
Using Firebase Cloud Messaging for instant donor alerts.
Applying PostgreSQL relational modeling to link users, donors, consent, and hospital data efficiently.
Handling edge cases in real-time communication: network drops, unresponsive donors, etc.
🛠️ How We Built It 🔧 Tech Stack Frontend: Flutter (Dart) — for fast, responsive cross-platform mobile app
Backend: Node.js + Express — REST APIs and core business logic
Database: PostgreSQL — structured donor and request data
Real-Time Alerts: Firebase Cloud Messaging (FCM)
Cloud: AWS EC2 + S3 (for storage of consent forms, etc.)
Authentication: JWT-based login with role-based access
Admin Dashboard: React.js — monitor donor activity, alerts, analytics
🧠 Features Verified donor registration and consent wallet
Real-time blood/organ request broadcasting
Smart matching based on availability, proximity, and compatibility
Volunteer coordination support
Hospital-verified requests only — to eliminate false/abusive usage
⚠️ Challenges We Faced Trust & Privacy Concerns: Designing a flow where donors feel safe sharing sensitive info.
Real-Time Matching: Ensuring quick and accurate donor matching in a scalable way.
Mobile-First UX: Keeping the app dead simple, even under pressure during an emergency.
Network Limitations: Handling poor internet zones, especially in rural areas.
🧮 Any Math or Logic Used We used a basic distance formula to match nearby donors:
Distance
( 𝑥 2 − 𝑥 1 ) 2 + ( 𝑦 2 − 𝑦 1 ) 2 Distance= (x 2 −x 1 ) 2 +(y 2 −y 1 ) 2
In production, this would be replaced with the Haversine formula to compute geospatial distances:
𝑑
2 𝑟 ⋅ arcsin ( sin 2 ( Δ 𝜙 2 ) + cos ( 𝜙 1 ) cos ( 𝜙 2 ) sin 2 ( Δ 𝜆 2 ) ) d=2r⋅arcsin( sin 2 ( 2 Δϕ )+cos(ϕ 1 )cos(ϕ 2 )sin 2 ( 2 Δλ ) ) Where:
𝜙 ϕ: latitude
𝜆 λ: longitude
𝑟 r: radius of Earth (~6371 km)
🌱 What’s Next Offline-first mode for rural regions
AI-based smart priority alerts (e.g. auto-flagging rare blood types)
Vernacular language support
Government hospital partnerships
Built With
- express.js
- fastapi
- firebase
- flutter
- google-directions
- javascript
- location
- mysql
- postgresql
- react
- react-native
- sqlite
- supabase
Log in or sign up for Devpost to join the conversation.