Inspiration

India has 3.3 million NGOs. During the 2023 Odisha floods, 40% of volunteer hours were wasted on duplication. Not because volunteers didn't exist — but because no one knew where to send them.

We are three students in CS from Hyderabad. We watched this problem from close range. Relief coordination in India runs on WhatsApp group chats, phone trees, and gut instinct. A coordinator reads a message in a 200-person group, calls a volunteer manually, gives directions over the phone, and hopes for the best. Meanwhile, 78% of India's disaster-affected population speaks no English — the language every existing coordination tool requires.

The 4-to-6 hour gap between crisis report and volunteer arrival is not a resource problem. Water is available. Volunteers are registered. The gap is pure coordination failure — and it is completely solvable with technology that already exists.

We built PULSE because no one else was building it for the people who actually need it.

What It Does

PULSE eliminates the human bottleneck in disaster relief coordination. A field worker — with no smartphone, no English, no app — reports a crisis once. Everything after that is automated.

The 30-Second Pipeline

Field Worker speaks / texts / calls
↓
Backend receives via any of 5 channels
↓
Groq LLaMA 3.3 70B analyzes in any Indian language
(Gemini 2.5 Flash on standby as auto-fallback)
↓
Haversine clustering groups nearby same-type reports
↓
Urgency ≥ 80 → nearest skilled volunteer auto-assigned
↓
WhatsApp + SMS fired simultaneously
Google Maps navigation link included
↓
Volunteer replies ACCEPT → navigates → replies DONE
↓
Gemini Vision verifies proof photo (3-check fraud detection)
↓
Cluster resolved. Timestamp logged. Volunteer freed.
Total time: under 30 seconds.

5 Intake Channels — Zero Friction

Channel How it works Who it's for
WhatsApp Send any message in any language Urban field workers
SMS Basic text, no data needed Feature phone users
IVR Voice Call Call → select language → press 1/2/3 → speak Zero-literacy users, 2G only
Voice AI Agent (browser) Tap mic on landing page, speak report Web users, live demo
Voice AI Agent (phone line) Call a dedicated number, AI collects the report conversationally Any phone, anywhere — capability built, currently in active testing

Every channel feeds the same AI pipeline. None require a smartphone. None require English. None require knowing what software is.

AI That Understands Indian Languages

Every report — however vague, however colloquial — is analyzed by Groq LLaMA 3.3 70B with Gemini 2.5 Flash as automatic fallback. Output per report:

Field Example output
Crisis type water / food / medical
Urgency score 87 / 100
GPS coordinates 17.3850° N, 78.4867° E
Affected population 120 people
Language detected Telugu
Summary Severe water shortage in Abids for 3 days

Not a translation layer. Native understanding in 7 languages.

Proof Verification That Can't Be Gamed

When a volunteer marks a task complete, Gemini Vision runs 3 simultaneous checks:

Check What it catches
Task relevance Wrong task type — food photo submitted for water crisis
Photo authenticity Stock images, Google Images screenshots, reused photos
India crisis context Staged photos, indoor shots, irrelevant backgrounds

All three must pass. Fail any one — rejected instantly, volunteer asked to resubmit. No human review. No fake completions.

The Dashboard

NGO admins see everything live on Google Maps:

  • 🔴 Critical — urgency 80+ — auto-dispatch already fired
  • 🟠 High — urgency 50–79 — admin assigns from dashboard
  • 🟡 Medium — urgency below 50 — monitoring
  • 🔵 Individual — unclustered single report

One click on any cluster opens the full detail panel — urgency score, affected villages, people count, assigned volunteer, response status, and every action button: Assign, Reassign, Force-Assign, Resolve.

AI-generated impact reports on demand. One-click demo trigger for live presentations.

Live Volunteer Coverage Map

The dashboard page includes a real-time SVG volunteer map across 8 major Indian cities. Active volunteers are shown with animated pulse rings, giving coordinators instant visual awareness of response coverage before even entering the dashboard.

This provides an at-a-glance operational snapshot of volunteer density and active zones.

Who This Is For — and How It Becomes a Business

Target market: 3.3 million registered NGOs in India, starting with disaster-relief and rural-health NGOs in flood-prone and drought-prone states (Telangana, Odisha, Assam, Bihar). These organizations have field workers and volunteers already — they're missing the coordination layer, not the people.

Why this is viable as a business, not just a project: Our entire infrastructure runs on free or near-free tiers — Firebase Spark, Render free tier, Groq's free LLM tier, Gemini's free tier, $200/month Google Maps credit. Total cost to operate for a small NGO today is near $0, scaling only with Twilio messaging volume (~₹2/message). This is deliberate: the NGOs who need PULSE most often have zero technology budget.

Revenue model:

  • Free tier for individual NGOs — covers the core pipeline, capped message volume
  • Paid tier for larger NGOs and state-level coordination bodies — multi-NGO dashboards, dedicated phone numbers, priority support, custom integrations
  • Government/institutional contracts — the multi-NGO data isolation we already built is the foundation for state disaster management agencies coordinating across many NGOs at once

Why now: The cost of multilingual LLM inference dropped enough in the last two years (Groq, Gemini free tiers) that real-time, any-language crisis coordination is now economically possible at near-zero marginal cost — it wasn't 3 years ago. That's the timing unlock.

Go-to-market: We will be in early conversations with Telangana-based NGOs for a pilot deployment, starting with single-NGO onboarding before expanding to the multi-NGO/government model.

How We Built It

Three microservices. Three teammates.

Architecture

┌─────────────────────────────────────────────────┐

│           React + Vite Frontend                 │

│      Firebase Hosting — pulse-11de7.web.app     │

│  Google Maps · Firebase Auth · Vapi Web SDK     │

│  i18next (7 languages) · Firestore onSnapshot   │

└──────────────────┬──────────────────────────────┘

│ REST API

┌──────────────────▼──────────────────────────────┐

│         Node.js + Express Backend               │

│                  Render                         │

│  Twilio · Firebase Admin · Gemini Vision        │

│  Vapi Webhook · node-cron · 22+ routes          │

└──────────┬────────────────────┬─────────────────┘

│ REST API           │ Read/Write

┌──────────▼──────────┐  ┌─────▼───────────────────┐

│  Python Flask AI    │  │   Firebase Firestore     │

│       Render        │  │                         │

│  Groq LLaMA 3.3 70B │  │  /reports  /volunteers  │

│  Gemini 2.5 Flash   │  │  /clusters  /tasks      │

│  Nominatim          │  │  /ngos  /conversations  │

│  Haversine          │  │  /predictive_alerts     │

└─────────────────────┘  └─────────────────────────┘

Full Tech Stack

Frontend

Technology Role
React + Vite UI framework
Tailwind CSS + Framer Motion Styling + animations
Firebase Hosting CDN deployment, automatic SSL
Firebase Auth NGO authentication
Firebase Firestore onSnapshot Real-time sync, <1s latency
Google Maps API Live urgency cluster visualization
Vapi Web SDK Browser voice agent
i18next + react-i18next 7-language support

Backend

Technology Role
Node.js + Express 22+ REST API routes
Twilio WhatsApp + SMS + IVR voice
Gemini Vision API Proof photo fraud detection
Firebase Admin SDK Firestore + Auth operations
Vapi webhook Voice report intake
node-cron Hourly urgency escalation
Render Production deployment

AI Microservice

Technology Role
Python Flask AI API server
Groq LLaMA 3.3 70B Crisis analysis + report generation
Gemini 2.5 Flash Auto-fallback, multilingual analysis
OpenStreetMap Nominatim GPS from text descriptions
Haversine formula 30km radius geographic clustering

Responsibility split:

Teammate Owned
Zunairah Entire Node.js backend, Twilio WhatsApp + SMS + IVR, Firebase Auth + Firestore, volunteer coordination system, WhatsApp conversational bot (7 languages), cluster action API, urgency escalation cron, multi-NGO isolation, voice agent webhook integration, i18n frontend
Umaima Python Flask AI microservice, Groq + Gemini integration, crisis analysis pipeline, Haversine clustering, volunteer matching, AI report generation, Gemini Vision proof verification, predictive alert system
Alizah React + Vite dashboard, Google Maps integration, all 10 pages, UI design system, Firebase Hosting deployment, real-time Firestore integration, volunteer portal, analytics, demo trigger, live volunteer map

Challenges We Ran Into

Gemini Vision rejecting real field photos as stock images. Our initial verification prompt weighted image sharpness and composition. Real field photos in disaster zones are blurry, poorly lit, and chaotically framed — exactly what stock photo detection flags. We rebuilt the prompt to weight scene context and environmental authenticity instead of visual quality. Three days of iteration. Worth it.

Voice AI webhooks silently failing. Calls were completing but transcripts weren't reaching our backend. The webhook needed to be configured on the voice assistant itself, not just the phone number — a setting that wasn't obvious in the provider's dashboard. Found it by reading API docs directly. Two hours of log-reading for a one-line fix.

Language-aware bot routing across 7 languages. Building a WhatsApp bot that correctly detects when a message is detailed enough to skip the guided flow — in languages with no shared grammar patterns — required a regex + word count + keyword detection hybrid rather than an AI call on every incoming message. Keeping it fast and accurate simultaneously.

Render cold starts on a crisis platform. Free tier instances sleep after inactivity. A 30-second cold start is unacceptable mid-crisis. We implemented a keep-alive ping from the frontend hitting the backend health check every 10 minutes.

Geocoding colloquial Indian location descriptions. "Near the big temple in Warangal" needs to become coordinates. Nominatim handles formal addresses but struggles with colloquial descriptions. We built a fallback where the AI extracts the most recognizable location substring before passing it to the geocoder.

Accomplishments That We're Proud Of

We built a system where a 60-year-old farmer in a flood zone with a basic phone and one bar of 2G signal can trigger an automated relief response in under 30 seconds — without speaking English, without owning a smartphone, and without knowing what software is.

That is the accomplishment. Everything else — the 22 API routes, the 7-language support, the Gemini Vision fraud detection, the real-time Firestore dashboard — exists in service of that one outcome.

The browser voice agent works end to end right now: open the live site, tap the mic, describe a crisis in Hindi or Telugu, and watch a report appear on the dashboard within 30 seconds. That pipeline — voice to Firestore to Google Maps — is real and demoable.

Gemini Vision proof verification catches fraud patterns that human coordinators miss. Stock images, reused photos, and screenshots from Google Images all fail verification. Real field photos — even blurry ones taken at night — pass.

We reached the GDG Solution Challenge Top 106 out of thousands of global submissions with this project.

What We Learned

We learned that building for users who have never used software forces you to make better software. When your user might be illiterate, might have a 2G connection, might be in a flood right now — every design decision sharpens. You stop asking "what can we add" and start asking "what can we remove."

We learned that real-world deployment surfaces bugs local development never will. Issues that only appeared once we deployed taught us more in a week than a month of local testing would have. Shipping early is not optional — it's the only way to build something real.

We learned to scope ruthlessly. We had features planned for offline sync, reputation scoring, and government API integration. None of them shipped yet. What shipped was a complete, working, end-to-end crisis coordination system. A complete simple thing beats an incomplete complex one every time.

And we learned what it feels like to build something that matters — not a portfolio piece, but something that, if it reaches the right NGO at the right time, means fewer people waiting four hours for water that's already two kilometers away.

What's Next for PULSE

0–3 months: Offline-first mobile app so reports queue locally and sync when connectivity returns — the last barrier to true zero-connectivity reporting. Volunteer reputation scoring based on response time, acceptance rate, and proof quality. Continued pilot conversations with Telangana NGOs.

3–12 months: Upgrade clustering from static-radius Haversine to Vertex AI geospatial ML. Move the escalation scheduler to Google Cloud Functions for serverless reliability. Add Looker Studio dashboards for NGO and donor impact reporting. Begin integration with India's national disaster database for cross-agency coordination.

Long term: Open-source the core platform — the same way UPI became invisible payment infrastructure for India, PULSE should become invisible crisis coordination infrastructure: free to self-host, free to extend, maintained by the NGO community it serves. Expand to Bangladesh, Kenya, and Nigeria, where the same coordination failure exists at the same scale — our multilingual architecture makes geographic expansion a configuration change, not a rebuild.

The vision: What UPI did for payments in 2016 — removing friction so completely that coordination became invisible — PULSE does for crisis response.

The technology exists. The problem is real. The gap is closeable. We intend to close it.

Built With

Share this project:

Updates