DormSafe
Taiwan's disaster app routes people to shelters. DormSafe works inside the dorm: it tracks who's missing, shows which exits are blocked, and tells staff who to rescue first.
Inspiration
Taiwan has a strong nationwide disaster response system. It routes people to shelters and helps rescuers plan their routes. But in an earthquake, typhoon, fire or gas leak, the first critical minutes happen inside the building. Taiwan's university dorm staff train for these emergencies, but they have no tool to coordinate during one. Who is still missing? Which staircase is blocked? Who is trapped and can't get out? We built DormSafe to answer those questions quickly.
What it does
DormSafe has two sides: a resident app for students and a command dashboard for dorm staff.
For residents (phone):
- One-tap check-in: Safe, Still inside, or Need help.
- SOS: puts the resident at the top of the staff's priority list.
- Confirm a roommate is safe, marked as a peer confirmation rather than a self check-in.
- Hazard reports with a photo, floor and location: fire, smoke, gas, blocked stairs and more.
- Emergency hotlines (119, 110, 112, 1955 and others) and nearby official shelters.
- Offline queue: check-ins are saved on the phone and sent when the connection returns.
- Four languages: Traditional Chinese, English, Filipino and Indonesian.
For dorm staff (command dashboard):
- Accountability: tracks who has checked in safe and flags who is still missing, floor by floor.
- Roll call: starts an emergency headcount and resets everyone to "unknown" until they report.
- Route status: marks stairwells and exits as open or blocked, and shows whether a resident reported it or staff verified it.
- Priority list: tells staff who to rescue first: SOS calls, then help requests, then residents who need mobility assistance and aren't confirmed safe.
- 3D building view: shows the dorm floor by floor, with markers for hazards and people who need help. It switches between exterior, x-ray, exploded and floor-plan views.
- Responder handoff: a one-click summary for firefighters (119) of who is missing, who needs help and which routes are blocked, ready to copy or print.
- Real Taiwan data: official NCDR emergency alerts (CAP), CWA earthquake reports and NFA shelter locations, so the dorm's response connects to the national system.
How we built it
- Frontend: React 19 with TanStack Start and Vite, in TypeScript, styled with Tailwind CSS. It runs in the browser on phones, tablets and the command-desk laptop.
- 3D: three.js through React Three Fiber, drei and react-three-postprocessing.
- State: a React context store for residents, reports and routes, with a local queue so check-ins survive a dropped connection.
- Backend: a Python FastAPI service with Pydantic models for the dorm, residents, statuses, incidents, building access points and roll calls, plus a headcount summary for each floor.
- Open data: adapters for NCDR CAP alerts, the CWA earthquake reports inside them, NFA shelter locations (dataset 73242) and NFA shelter opening status (dataset 12849). Each one can use live data, cached data or a stored snapshot of real data, so the demo works without internet.
- Shelter search: finds the nearest official shelters, filtered by disaster type.
- Tests: pytest for the backend and Vitest for the frontend.
Challenges we ran into
- Parsing government feeds: CAP alerts are XML with dates in a zh-TW 12-hour format, the shelter list is a CSV with Chinese column names, and earthquake details hide in free-text CAP parameters. Each needed careful parsing into clean data.
- Joining two shelter datasets: the NFA shelter locations and the NFA opening-status feed share no ID. We match them by normalized name and distance, and leave a shelter unmatched rather than attach the wrong status.
- Respecting rate limits: the NCDR platform rejects requests less than 3 seconds apart, so the backend throttles, caches, and falls back to a stored snapshot.
- Keeping it readable under stress: the dashboard has to answer "who's missing and where do I go" at a glance.
Accomplishments that we're proud of
- A working 3D model of the dorm that responders can read at a glance.
- Real Taiwan emergency alerts, earthquake reports and shelter data running in the app.
- A complete flow from a resident's check-in or SOS to a handoff summary for firefighters.
- One web app for phone, tablet and the command-desk browser.
What we learned
- In the first minutes of an emergency, the gap is coordination, not training.
- Taiwan's open data is a strong base to build on. Local tools can connect to it instead of replacing it.
- Plan for the network to fail, and design for people who are stressed, from the start.
What's next for DormSafe
- Live sync between devices, with logins and access rules for students, RAs and staff.
- Push alerts when NCDR issues an alert, and an automatic roll call when an earthquake is reported.
- Automatic rerouting when a stairwell is reported blocked.
- A PDF export of the responder handoff.
- Native iOS and Android apps.
- Expanding beyond dorms to schools, apartment buildings and small communities.
Log in or sign up for Devpost to join the conversation.