Skip to content

Repository files navigation

vE-IDS

A virtual-aviation Integrated Display System for VATSIM controllers: live ATIS, weather, traffic, and a customizable dashboard.

This repository is the decoupled rewrite of the original Next.js monolith (../ve-ids-old), split into two services:

Service Path Role
API api/ Go backend — the source of truth. Owns Postgres + migrations, VATSIM OAuth → JWT auth, all REST endpoints, and the datafeed/ATIS WebSocket. In production it also serves the built SPA.
Frontend frontend/ React SPA (TanStack Router + Vite). Consumes REST for static data and a WebSocket for live data. Builds to static files.

Deployment model: single origin. The Go binary serves the SPA at /* and the API at /api/* (API routes take precedence). Auth is delivered via Secure, httpOnly cookies so it flows automatically on same-origin REST and the WS upgrade.

Browser ──HTTP /* ─────────────▶ Go binary ── serves embedded SPA (prod)
        ──HTTP /api/* ─────────▶            ── chi router: REST + auth
        ──WS   /api/ws ────────▶            ── datafeed + ATIS pushes
                                             └▶ Postgres (users, dashboards, atis_state)
Go poller ──15s──▶ VATSIM datafeed / aviationweather METAR / AviationAPI charts

Quick start (Docker)

cp .env.example .env          # then fill in VATSIM_CLIENT_ID / _SECRET / JWT_SIGNING_KEY
docker compose up --build

Migrations run automatically on API boot. The Vite dev server proxies /api and /api/ws to the API container.

Quick start (local, no Docker)

Prereqs: Go 1.26, Node 22 + pnpm, a local Postgres.

# API
cd api
cp ../.env.example ../.env     # edit values; DATABASE_URL -> your local Postgres
go run ./cmd/veids             # migrates + listens on :8080

# Frontend (separate terminal)
cd frontend
pnpm install
pnpm dev                       # http://localhost:3000, proxies /api -> :8080

Common tasks

make help lists everything. Highlights: make dev, make build (prod image), make test, make sqlc, make migrate.

Documentation

Agents working in this repo: read .claude/skills/veids-repo/SKILL.md.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages