尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Hurricane PWA that keeps working when the power and signal don't: food & insulin countdowns from FDA/USDA data, evac zones, king tides. Hack for Humanity Miami 2026.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
The hurricane app that keeps working when the power and the signal don't.
Built at Hack for Humanity: Miami (The AI Collective × MLH Hacktoberfest), Saturday October 10, 2026.查看完整 README ↗The hurricane app that keeps working when the power and the signal don't.
Built at Hack for Humanity: Miami (The AI Collective × MLH Hacktoberfest), Saturday October 10, 2026.
skills/blackout-box/.web/dist as static assets plus the server/ Express API under nodejs_compat; Claude through the Workers AI binding and AI Gateway). Deploy steps: worker/README.md.After a hurricane, Miami can lose power for days in 90°F heat. The people hit hardest are seniors on insulin, families with baby formula, and Spanish and Haitian Creole speakers who get the least official information in their language. Nobody can tell them whether the food in the fridge or the insulin pen in the drawer is still safe, and the apps that could tell them stop working when the internet does.
Offline: it's a PWA. After one visit, the app, your saved box and every countdown keep working with no network. The countdown engine runs on the device with no model. Only reading a new photo and free-form questions need a connection.
| Step | What does the work | How to verify |
|---|---|---|
| Read a fridge / freezer / medicine photo | Gemini 3.5 Flash (google/gemini-3.5-flash, minimal reasoning, ~3 s) via Cloudflare AI Gateway, strict JSON item list | The sample-photo sheet scans real photos on stage; items appear as chips |
| Decide how long each item has | Open rules engine, no model: modules/four-hour-rule (63 tests) | Each card quotes its rule and links the source (FoodSafety.gov chart row, FoodKeeper ID, or openFDA set ID) |
| Answer questions | Claude Fable 5.1 (anthropic/claude-fable-5.1), falls back to Sonnet 5.5 | Answers list their sources; a server-side filter blocks dosing advice and "safe to use" claims about medicine |
| Translate to Spanish and Haitian Creole | Gemma 4 (@cf/google/gemma-4-26b-a4b-it, open weights, Workers AI through Cloudflare AI Gateway), falls back to Claude | POST /api/translate returns _model |
The model never invents a number. It turns a photo into item names; the engine turns names and labels into clocks.
| Source | Used for | License / terms |
|---|---|---|
| FoodSafety.gov: Food safety during a power outage | 4-hour fridge rule, 48 h / 24 h freezer rule, keep/discard chart | US government work |
| USDA FSIS FoodKeeper data (v128) | Food storage times for 661 products, bundled in data/foodkeeper.json | CC0 |
| openFDA drug label API | Storage temperature and in-use days from each drug's label | CC0 (terms) |
| FDA: Insulin storage and switching in an emergency | Emergency insulin guidance | US government work |
| Florida Statutes 252.358 | Emergency prescription refills | Public law |
| National Weather Service API | Current temperature, heat index, hourly forecast (KMIA) | Public domain |
| Miami-Dade County Open Data Hub | Hurricane evacuation zones, libraries, fire stations, 311 service requests 2023 | Miami-Dade open data terms |
| OpenFEMA Disaster Declarations Summaries v2 | Miami-Dade disaster declarations |
Requires Node 20+.
# 1. API server (port 3001)
cd server && npm install
cp ../.env.example .env # fill in CF_ACCOUNT_ID, CF_API_TOKEN, DATA_GOV_API_KEY
npm start
# No keys? Every route works from recorded real responses:
DEMO_MODE=1 npm start
# 2. Web app (port 5173, proxies /api to 3001)
cd web && npm install
npm run dev # or: npm run build && npx vite preview --port 5173
# 3. Engine tests
cd modules/four-hour-rule && npm install && npm test
blackout-box Agent Skillskills/blackout-box/ follows the Agent Skills open standard. Any agent (Claude Code, Codex, others) can use it to answer "is this food or medicine still safe after the outage, and for how long?" It runs offline with no model and no key:
node skills/blackout-box/scripts/assess.mjs skills/blackout-box/assets/example-input.json
Blackout Box gives information from FDA, USDA, NWS, FEMA and Miami-Dade sources. It is not medical advice. It never tells anyone to change a dose, and when a medicine passes its label limit it says to keep it cool, get a replacement and call a pharmacist; for insulin it follows FDA's emergency guidance to keep using it only until a new supply is available. In an emergency, call 911.
Spanish and Haitian Creole strings marked // MT in web/src/i18n.ts are machine translations and need review by a native speaker.
idb), MapLibre GL, Express.| Public domain |
| NOAA CO-OPS station 8723214 Virginia Key | Tide predictions, observed water level, flood thresholds | Public domain |
| FEMA ESF#6 Shelter System (NSS) | Nearest hurricane shelters, open status | Public domain |
| National Hurricane Center CurrentStorms.json | Active storms, distance and movement | Public domain |
| Open-Meteo | UV, wind, rain chance, air quality, sunrise/sunset | CC BY 4.0 |
| AWS Terrain Tiles | Ground elevation for the flood map | Public / open data |
| NREL / NLR Alternative Fuel Stations API | EV chargers as places likely to have power | Public domain |
| OpenFreeMap / OpenMapTiles / OpenStreetMap | Basemap and building footprints | ODbL / OpenMapTiles license |