Inspiration
Emergencies don't wait for someone to find the right number, explain calmly, and give a clear address. In the middle of a crisis, people are panicked, disoriented, or physically unable to make a phone call — and every minute lost to confusion is a minute a responder isn't moving. We wanted a way for anyone to report what's happening in seconds, without needing to explain it perfectly, and have the system do the hard part: figure out what's actually happening and get it to the right people fast.
What it does
QuickAlert lets anyone report an emergency in whatever form is fastest for them — text, photo, video, or just their GPS location — no account or phone call required, including anonymously. Gemini reads the report and classifies the emergency type (accident, fire, medical, flood, security), estimates severity, and generates a clear summary for responders, cutting through panic or unclear descriptions. The system pinpoints the nearest hospital and shares live location with responders in real time. On the other side, a dedicated hospital/responder dashboard shows incoming reports as they're classified, so responders are triaging real information within seconds of a report coming in, not waiting on a phone call to unpack what happened.
How we built it
QuickAlert is built on Next.js and TypeScript with Tailwind CSS for the interface, so the same responsive codebase serves both the citizen-facing reporting flow and the responder dashboard. Firebase handles authentication, the Firestore database, and file storage for report data, while Cloudinary manages the media pipeline for photo and video uploads attached to reports. GPS location is captured directly from the reporter's device to pinpoint the emergency and the nearest hospital in real time. Gemini sits at the core of the pipeline — reading each report's text, image, or video content, classifying the emergency type, estimating severity, and producing a structured summary that populates the responder dashboard the moment a report comes in.
Challenges we ran into
The hardest problem wasn't classification — Gemini handles that reliably — it was designing the escalation logic so the agent could make a good autonomous decision about when to stop waiting and re-route, without either escalating too aggressively on ambiguous reports or sitting silent on a genuine emergency. We settled on a severity-weighted timer: high-severity classifications get a short acknowledgment window and escalate to multiple responders in parallel, while lower-severity reports get a longer single-responder window before widening. Keeping that state correctly synced through Firestore across an asynchronous, potentially multi-hour escalation chain — rather than a single request/response cycle — was the other real engineering problem, since the agent has to resume its plan correctly even if no one is watching.
Accomplishments that we're proud of
Getting a genuinely autonomous, multi-step escalation loop running end-to-end on Cloud Run — not a chatbot that describes what it would do, but an agent that classifies, contacts, waits, and re-routes on its own — is the piece we're most proud of. We can point directly to the Cloud Run execution logs showing the agent picking up a report, dispatching an alert, timing out, and escalating without any manual intervention, which is the proof this is acting autonomously rather than simulating it in a demo script.
What we learned
Most AI emergency tools are designed to make a human dispatcher faster — better transcripts, better summaries, better triage suggestions for a person who still holds the final decision. Removing that human from the loop changes the core design problem entirely: instead of "summarize this well for a person," it becomes "decide confidently enough to act, and know when your own decision needs to be revisited." Building the escalation logic taught us that autonomous emergency response isn't really an AI-classification problem, it's a state-management and timing problem wrapped around a classification.
What's next for QuickAlert — Every Second Counts
More response types and escalation paths as we cover more emergency categories, deeper integration with real hospital/dispatch systems so classified reports can route directly into existing responder workflows, and expanding beyond GPS-only location to work reliably in low-connectivity conditions where emergencies often happen.
Built With
- ai
- cloudinary
- firebase
- gemini
- gps
- nextjs
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.