Unified front-end shell for Houston ARTCC controller utilities.
Current tools are registered in a single data file and rendered as searchable cards:
- TFMS Viewer
- Alias Guide (migrated internal route)
- Split Map
- RVM Reference
Run the development server:
npm run devThen open http://localhost:3000.
data/tools.json: tool registry (add/edit tools here)app/page.js: homepage entrycomponents/toolkit-home.js: searchable tool grid UIapp/tools/[id]/page.js: per-tool detail pagesapp/tools/alias-guide/page.js: migrated Alias Guide toolcomponents/alias-guide-page.js: refactored Alias UI (sidebar nav, search, cards)data/alias-guide.json: normalized Alias data model used by the appdata/alias-guide-markup.html: imported source markup from legacy Alias Guidescripts/convert-alias-markup.mjs: converter from legacy markup to normalized JSONlib/tools.js: helpers for loading tool dataapp/globals.css: shared theme tokens and utility classes
Add a new object to data/tools.json with:
idnamedescriptionurlliveUrlcategorystatusicontags
The homepage and /tools/[id] route will automatically include it.
The Alias Guide now renders from data/alias-guide.json.
If you update legacy source HTML in data/alias-guide-markup.html, regenerate JSON with:
npm run alias:convert- In
data/alias-guide.json, most content fields store both:html: rendered UI content (supports formatting tags)text: plain-text content used for search/filter
- Keep
htmlandtextsemantically aligned when editing content. - Current section layout behavior:
CRC/ZHU Basics: explorer layout (accordion groups + sticky detail panel + share links)Pilot Help Messages: explorer layout (accordion groups + sticky detail panel + share links)Autotrack: informational table layoutStandard Routes: informational table layout
- Explorer permalink links use URL query param:
/tools/alias-guide?alias=<entry-id>#<section-id>- currently enabled for
CRC/ZHU BasicsandPilot Help Messages
npm run lint
npm run buildThe app now supports Light, Dark, and System mode via a global top-right selector.
Preference is saved in localStorage (theme-mode).
This project is configured for static export + GitHub Pages.
Important files:
next.config.mjs(output: "export")public/CNAME(toolkit.houston.center).github/workflows/deploy-pages.yml
Required one-time GitHub settings:
- In your repo, go to
Settings > Pages. - Under
Source, selectGitHub Actions. - In your DNS provider, set
toolkit.houston.centerto GitHub Pages (CNAME target per GitHub docs).
After that, pushes to main will build and deploy automatically.
If your machine blocks npm/npx PowerShell scripts, use:
npm.cmd run devnpm.cmd run lintnpm.cmd run build