Local-first EVE Online sovereignty intelligence with a terminal-grade map interface.
Map Terminal is a local EVE Online map and sovereignty tool built for fast null-sec reading: who owns what, where campaigns are active, what changed recently, and which frontiers deserve attention.
The project is inspired by the clarity of public sovereignty maps, but the product direction is its own: a dense terminal-style operational view, optimized for local use and real-time map work.
- Full-screen New Eden cluster map with pan, zoom, region labels, hover readout, and focused region detection.
- Sovereignty mode with alliance and coalition grouping, owner highlighting, and player / NPC / all filters.
- Campaign Intel with active and critical alert treatment on the map.
- Recent SOV Changes backed by a rolling local history journal.
- Frontier layer that derives alliance or coalition borders from stargate edges and current sovereignty.
- NAV utility drawer for watchlist, hot intel, frontier quick focus, and tactical system access.
- Tactical System View combining sovereignty, campaigns, recent changes, topology, ESI jumps, and ESI kills.
- Terminal-style HUD with settings for startup mode, theme, and UI scale.
| Area | Stack |
|---|---|
| Frontend | React, Vite, TypeScript, Canvas |
| Backend | Node.js, Express, TypeScript |
| Data | CCP SDE, public ESI endpoints, local generated history |
| Testing | Node test runner, Vitest |
| Quality | ESLint, TypeScript strict mode, workspace quality gate |
- Cluster geometry: official CCP static data export.
- Sovereignty: public ESI sovereignty map.
- Campaigns: public ESI sovereignty campaigns.
- Activity: public ESI system jumps and system kills.
- Tactical system detail: public ESI universe system endpoint.
- Performance probe: public ESI status endpoint.
- Coalition grouping: manual runtime data in coalitions.json.
The app is split into a lightweight backend and a map-first frontend:
- server.ts exposes the local API.
- clusterMap.ts builds the New Eden map from the SDE.
- sovereignty.ts loads live sovereignty data.
- campaigns.ts loads campaign data.
- sovChanges.ts maintains the rolling recent-change journal.
- systemIntel.ts powers the tactical system view.
- ClusterMapFoundation.tsx currently orchestrates map state, canvas rendering, and service state.
More detail lives in ARCHITECTURE.md.
| Endpoint | Purpose |
|---|---|
GET /api/map/cluster |
New Eden graph snapshot |
GET /api/services/sovereignty |
Live sovereignty snapshot |
GET /api/services/coalitions |
Manual coalition runtime data |
GET /api/services/campaigns |
Live campaign snapshot |
GET /api/services/sovereignty/changes |
Rolling local SOV change journal |
GET /api/services/systems/:systemId/tactical |
Tactical system intel |
GET /api/performance |
ESI status and local performance signal |
npm install
npm run devWindows helper commands:
start-local.cmd
status-local.cmd
stop-local.cmdLocal URLs:
- Frontend:
http://localhost:5173 - Backend:
http://localhost:4000
Run the full project gate before feature work, commits, or pushes:
npm run checkThis runs linting, tests, typechecking, and production builds for both workspaces. The full checklist is documented in QUALITY.md.
Generated and local-only files are intentionally ignored:
backend/data/generated/backend/data/sde/backend/data/tokens.json.env- build outputs
- logs
node_modules
Manual coalition data is versioned because it is runtime configuration:
Map Terminal is a local development project. The current baseline is published as a clean foundation for future feature work, with the sovereignty service treated as the primary product surface.
