## What it is
DiresQ is a disaster-response app with an unusual premise: every other tool maps where the disaster is — DiresQ tracks the people going into it. Built at Katy Youth Hacks 2026 (theme: Tech for Humanity). I did the backend; my teammate built the frontend.
## The idea
When a civilian volunteer self-deploys into a flood or storm, nobody logs that they went, nobody knows where they are, and nobody knows when to start worrying. And because everyone converges on whatever address is loudest online, six responders pile onto one street while the next one over has nobody. DiresQ fixes both: you join a report, check in on a timer, and check out — and every report shows how many people are already on it, so help spreads out instead of piling up.
## The accountability board
The core is the board — everyone who's out, what they're doing, and how long since anyone heard from them. Miss a check-in and your row turns red on its own. There's no background job to forget to start and no timer process that can silently die: "overdue" is computed the moment the board is read. Nobody has to notice you went dark — the board does, and now someone knows where to start looking.
## How it's built
- Flask backend, server-rendered Jinja pages, a JSON API under
/api, and SQLite — with 159 tests across every route, permission rule, and the overdue math. - Free-text ETAs like "30 min" are parsed through timefuzz behind a confidence floor — a safety timer set from a bad guess is worse than no timer at all.
- Severity can be set by running START triage through vitalscore instead of a guess.
- Staffing is derived from responder votes, with the most cautious signal winning — an optimistic report can never suppress a call for help.
Two of the pieces it leans on — timefuzz and vitalscore — are my own libraries, which is half the reason it came together in a weekend.