Web-based version of the HighTowers iPadOS app for Civil Air Patrol Air Force Route Survey missions.
- Node.js 18+ (Vite and modern tooling require Node 18 or newer)
- Mapbox access token (see Setup below)
-
Install dependencies
cd HighTowers-Web && npm install
-
Mapbox token
A.envfile with your Mapbox token is already configured (from project setup).
To change it or set up on a new machine, copy.env.exampleto.envand add your token:cp .env.example .env # Edit .env and set VITE_MAPBOX_ACCESS_TOKEN=your_token -
Run the dev server
npm run dev
Opens at http://localhost:5173
-
Optional: FAA MTR route lookup (flight plans)
Starts the small Node backend and Vite together (proxies/apito the server):npm run dev:all
Same app URL (typically http://localhost:5173). Requires network for FAA downloads and map tiles.
-
Optional: “Recent imagery overlay” (Survey Location)
Add Copernicus Data Space OAuth credentials to.envasCDSE_OAUTH_CLIENT_IDandCDSE_OAUTH_CLIENT_SECRET(create an OAuth client in the CDSE dashboard). Requiresnpm run dev:all. Seeserver/README.mdanddocs/IMAGERY_OVERLAY_IMPLEMENTATION.md.
URL: https://gvdurfee.github.io/HighTowers-Web/
Deployed from main via GitHub Actions.
Smoke tests: Run Pages first, then local production-style preview — see docs/SMOKE_TEST.md.
Use this to run the app on a Mac or Windows PC for localhost training before formal deployment. Commands are the same on both; only paths and how you open a terminal differ.
- Put a copy of the
HighTowers-Webproject folder on a USB drive (or share via zip/cloud). Includepackage.jsonandpackage-lock.json; do not rely on copyingnode_modulesfrom another computer—reinstall on each machine/OS. - Ensure trainers have a Mapbox access token (or distribute
.envinstructions only—never commit real tokens to git). - Confirm training room has Wi‑Fi if you need maps, FAA MTR downloads, or a first-time
npm install.
-
Install Node.js 18+ from https://nodejs.org (LTS). Verify in a terminal:
node -v
Should show v18 or newer.
-
Copy
HighTowers-Webfrom USB (or unzip) to a folder you can find, e.g.- Mac:
~/Projects/HighTowers-Web - Windows:
C:\Projects\HighTowers-Web
- Mac:
-
Open a terminal in that folder:
- Mac: Terminal →
cdto the folder. - Windows: PowerShell or Command Prompt →
cdto the folder.
- Mac: Terminal →
-
Install dependencies (needs internet the first time on this machine):
npm install
-
Configure Mapbox: copy the example env file and add your token.
cp .env.example .env
On Windows without
cp, copy.env.exampleto.envin File Explorer, then edit.envand set:VITE_MAPBOX_ACCESS_TOKEN=your_token_here -
Start the app—choose one:
- Frontend only (simplest):
npm run dev→ open http://localhost:5173 - Frontend + MTR server (flight plan FAA routes):
npm run dev:all→ same URL
- Frontend only (simplest):
-
Browser: use Chrome, Edge, or Safari. Data is stored in the browser (IndexedDB) on that computer only.
- First-time setup on a PC almost always needs
npm installonline unless you’ve prepared an offline npm mirror (advanced). - Do not copy
node_modulesfrom a Mac to Windows (or ARM to Intel) and expect it to work—runnpm installon each OS. - Maps and FAA features need network while training unless you accept limited/offline behavior.
npm run build
npm run previewServes the built dist/ at localhost (still requires Node for vite preview).
public/– Static assets (e.g.Blank Route Survey Form 2.pdftemplate)src/– React app source.env– Local secrets (gitignored, never commit)
Full feature parity with the HighTowers-2025 iPadOS app:
- Flight plan creation, waypoints, G1000 export
- Mission setup and Air Force Report Form
- Tower data analysis (photo selection, height measurement)
- Mission map view (route + towers)
- PDF report generation and export
Local persistence (IndexedDB) for V1; backend scaling planned for later.