This is a submission for the MLH x DEV Writing Challenge
ResQAlert: Offline-First Community Disaster & Mutual-Aid Resource Dispatcher
What I Built
During natural disasters—such as tropical storms, flash floods, and severe grid blackouts—centralized emergency services are quickly inundated. Worse, cellular data (4G/5G) and home Wi-Fi frequently go down, cutting off affected families from emergency coordination.
However, basic 2G/cellular SMS signals often remain active across cell towers even when data throughput drops to zero.
ResQAlert is an offline-first disaster mutual-aid platform built to solve this communication breakdown. It allows individuals stranded in crisis zones to broadcast urgent distress signals (medical emergencies, flood rescue, drinking water shortages) or volunteer resource offers using either a web dashboard or plain offline SMS text messages.
Key Highlights:
-
Dual-Channel Reporting: File rescue requests through an interactive web app or by sending an SMS (
NEED WATER at 450 Lexington Ave) with zero data connectivity. - Geospatial Discovery & Radius Matching: Responders can view live tactical heatmaps and query relief requests within a 5–50 km radius.
- Automated Two-Way SMS Updates: When an aid ticket is claimed or resolved, the requester receives an automated SMS update with responder details and ETA.
- Built-in SMS Simulator: A testing sandbox on the frontend that allows judges and reviewers to simulate incoming SMS messages and observe real-time pins drop on the map without needing live phone credits.
Demo
- GitHub Repository: github.com/swatiicfai/ResQAlert
- Live Deployment: https://resqalert-omega.vercel.app/
Project Highlights:
- Interactive Disaster Radar: Real-time Leaflet map displaying active incident pins color-coded by urgency (Red for critical medical/rescue, Amber for food/water, Green for volunteer shelters).
-
Offline SMS Ingestion: When an SMS message is sent to our Twilio gateway, the backend extracts the category, severity, and location, performs spatial geocoding, stores the ticket, and replies with a tracking ID (
REQ-XXXX). - Verified Responder Dispatch: Field teams can claim open requests, coordinate dispatches, and mark incidents as resolved in real time.
Partner Technologies
To make ResQAlert reliable and responsive under real-world crisis constraints, I integrated three primary partner technologies:
1. MongoDB Atlas (2dsphere Geospatial Indexing)
-
Implementation: Utilized MongoDB's native
2dspherespatial index on thelocation.coordinatesfield ([longitude, latitude]). -
Why it matters: In an emergency, volunteers cannot sift through an unorganized database. By leveraging MongoDB's
$nearoperator, the platform queries and sorts nearby relief requests by physical proximity in milliseconds:
const nearbyRequests = await db.collection("requests").find({
location: {
$near: {
$geometry: { type: "Point", coordinates: [userLng, userLat] },
$maxDistance: radiusInMeters, // e.g., 25000 (25km)
},
},
status: "OPEN",
}).toArray();
2. Twilio Programmable SMS
-
Implementation: Built an inbound webhook endpoint (
/api/sms) that parses incoming SMS traffic and responds with automated TwiML messages. -
Why it matters: When users have no cellular data or internet, SMS is their sole lifeline. Victims text
NEED [Category] at [Address], the backend parses the urgency, pins the location, and sends back immediate confirmation and status alerts.
3. Auth0 by Okta
- Implementation: Structured user authentication and Role-Based Access Control (RBAC).
-
Why it matters: In disaster mutual aid, trust and security are vital. Auth0 enables quick, frictionless sign-in for community members while protecting dispatch features with scoped roles (
role:responder,role:admin), ensuring only verified teams can claim sensitive medical tickets.
Hackathon Experience
Building ResQAlert was an intense and deeply rewarding experience.
- The Biggest Technical Challenge: Designing a tolerant parsing algorithm for incoming SMS messages. In an emergency, people text under extreme stress with unpredictable abbreviations and formatting. Developing a flexible keyword and landmark extractor with automatic fallback prompts required careful testing.
- Favorite Moment: Watching the built-in SMS simulator trigger an incoming text and immediately seeing the glowing red marker pop up on the live Leaflet map within milliseconds!
- Next Steps: Adding multi-lingual NLP translation using the Gemini API so non-English speakers can text in their native language, and implementing Progressive Web App (PWA) offline service-worker caching for field volunteers.
Top comments (0)