Inspiration
In acute emergencies, communication friction costs lives[cite: 1]. When people are panicked or disoriented, extracting crucial details over traditional phone calls is slow, error-prone, and chaotic[cite: 1]. For individuals who are non-verbal, hearing-impaired, or in active danger where making sound is unsafe, standard voice-based emergency calls are nearly impossible[cite: 1].
We set out to bridge the critical gap between panicked callers and emergency dispatchers in real time[cite: 1]. Our goal was to create an intelligent, rapid triage and relay tool that eliminates communication bottlenecks, provides clear operational telemetry, and reduces response times during life-threatening crises[cite: 1].
What it does
PulseRelay acts as a comprehensive, end-to-end crisis intake, triage, and dispatch command platform[cite: 1]:
- Real-Time Voice Triage & 4 Ws Extraction: Ingests live caller speech, transcribes the audio, and extracts the core "4 Ws" (What happened, Where it is, Who is involved, and Consciousness level) into structured triage reports[cite: 1].
- Silent Pictogram Mode: Features a silent emergency reporting drawer with pictogram tiles, allowing users to report crises without uttering a word[cite: 1].
- Dispatcher Command Console: Provides dispatchers with a real-time emergency queue sorted newest-first, detailed triage cards, and filter tabs (Active, Cleared, All, Critical, Unclear, Stable)[cite: 1].
- Hospital Capacity Matrix: Embeds live ER, ICU, and Trauma bed availability across regional hospitals with color-coded capacity indicators (green/amber/red), allowing dispatchers to lock in target receiving facilities[cite: 1].
- Live "Uber-Style" Vehicle Tracking: Offers callers a dedicated tracking link (
/track/:incidentId) featuring an animated live map, real-time ETA countdown, and hospital destination overview[cite: 1]. - SMS Fallback: Provides an SMS fallback modal with tracking links for low-bandwidth scenarios[cite: 1].
How we built it
PulseRelay was built using a high-performance, real-time stack[cite: 1]:
- Frontend: Built with React and Vite, styled with a custom glassmorphism design system utilizing radial gradient meshes, glass cards, and inline SVG iconography[cite: 1].
- Backend & APIs: Developed using FastAPI (Python) to power rapid API endpoints, triage processing, and data serialization[cite: 1].
- Real-time Sync: Powered by WebSockets and Supabase for bidirectional, low-latency state synchronization between caller terminals and dispatcher consoles[cite: 1].
- Mapping & Fleet Simulation: Integrated Leaflet.js and OpenStreetMap with Turf.js for geodesic waypoint interpolation and smooth marker animations[cite: 1].
- State Persistence: Leveraged browser
localStorage(pulserelay_cleared_incidents) to ensure state re-hydration for cleared cases across views[cite: 1].
Challenges we ran into
- Geodesic Path Interpolation for Live Tracking: Smoothly animating emergency vehicle markers along realistic routes required calculating intermediate geodesic points dynamically using Turf.js[cite: 1].
- State Re-hydration on Caller Navigation: When navigating back from the caller interface, only cleared numbers were showing rather than cleared cases[cite: 1]. We solved this by persisting full cleared incident objects to local storage rather than just raw ID counts[cite: 1].
- Queue Inversion & Chronological Sorting: Managing queue ordering so that incoming incidents are indexed logically while sorting chronologically (newest-first) across diverse incident severity filters required custom sorting algorithms[cite: 1]: $$\text{Index}(i) = \text{Count}_{\text{filtered}} - i$$ $$\Delta t = \text{Timestamp}(b) - \text{Timestamp}(a)$$
- PostCSS Compilation & Styling Iterations: Balancing tactical utility and UI aesthetics caused PostCSS
@applyparse failures with non-standard Tailwind values[cite: 1]. We resolved this by refactoring into clean standard CSS declarations[cite: 1].
Accomplishments that we're proud of
- End-to-End Relay Pipeline: Building a functional pipeline that captures speech or silent taps, streams structured data to dispatchers, and provides the caller with a live vehicle tracking URL[cite: 1].
- Hospital Bed & ICU Integration: Successfully embedding a multi-facility capacity matrix to direct ambulances only to facilities with open beds[cite: 1].
- Silent Inclusivity: Developing zero-speech pictogram workflows to ensure accessible emergency communication for all users[cite: 1].
- Full Multi-Route Platform: Delivering a polished marketing landing page (
/), caller terminal (/caller), dispatcher console (/dispatcher), and tracking interface (/track/:incidentId)[cite: 1].
What we learned
- Simplicity Under Pressure: Emergency interfaces cannot be cluttered; visual hierarchy, readable timestamps, and single-click authorizations are vital for dispatcher efficiency[cite: 1].
- Persistence & Resilience: Emergency systems must remain resilient to page reloads and network drops through local caching and SMS fallback mechanisms[cite: 1].
What's next for PulseRelay
- Voice Stress & Sentiment Analysis: Incorporating acoustic panic-level detection to automatically prioritize high-distress calls in the queue[cite: 1].
- Multilingual Speech-to-Text: Expanding speech-to-text models to support regional languages such as Tamil and Hindi[cite: 1].
- Predictive Fleet Positioning: Integrating historical incident heatmaps to pre-position emergency fleets near high-risk zones[cite: 1].
- Automated Family & Contact Alerts: Automatically notifying pre-configured emergency contacts with live tracking links when an incident is dispatched[cite: 1].
- Automated Post-Incident PDF Reporting: Generating standardized incident run-sheets for hospital handovers and official records[cite: 1].
Built With
- css.
- fastapi
- leaflet.js
- openstreetmap
- python
- react
- supabase
- tailwind
- turf.js
- vite
- websocket
Log in or sign up for Devpost to join the conversation.