A lightweight cockpit helper for checking A220 engine-start tailwind exposure across headings from live METAR or manual wind inputs.
This is not an official Airbus or airline application. Always verify all wind/performance information against approved operational sources (ATIS/AWOS, METAR, and company procedures).
- Fetches live METAR by ICAO and parses wind conditions.
- Retrieves airport magnetic declination and converts TRUE winds to MAGNETIC.
- Computes safe/unsafe heading sectors against the A220 engine-start tailwind limit.
- Supports manual entry modes for ATIS (MAG) and METAR/AeroData (TRUE).
- Shows assumptions and source transparency so pilots can cross-check quickly.
- Supports PWA install flow with an in-app install prompt and basic offline app-shell availability.
- Nuxt 3 (Vue 3 + TypeScript, SSR enabled)
- Vitest + Vue Test Utils
- Playwright
npm install
npm run devOpen the local URL shown by Nuxt (normally http://localhost:3000).
This repo includes a root .mcp.json configured for Nuxt MCP using nuxi mcp:
{
"mcpServers": {
"nuxt": {
"command": "npx",
"args": ["nuxi", "mcp"]
}
}
}This lets MCP-compatible clients attach to Nuxt project context and tools from this workspace.
npm run dev: Start the Nuxt development server.npm run build: Build the SSR app with Nitro output.npm run preview: Serve the production Nuxt build locally.npm run type-check: Run Nuxt type-checking.npm run test:unit: Run Vitest unit tests.npm run test:e2e: Run Playwright end-to-end tests.npm run lint: Run lint auto-fixes (oxlint+eslint).
Install Playwright browsers once before first e2e run:
npx playwright installUseful e2e variants:
npm run test:e2e -- --project=chromium
npm run test:e2e -- e2e/vue.spec.ts
npm run test:e2e -- --debugcomponents/: UI components (main app, input panels, readouts, tables).composables/: Data fetch and wind calculation logic.constants/: Operational limits and constants.types/: Shared TypeScript models.__tests__/: Unit tests.e2e/: Playwright specs.
This project is configured for Nuxt SSR deployment to Railway using configuration-as-code. Railway uses railway.toml for deploy orchestration, .nvmrc to declare the Node version, and package.json's packageManager field to pin npm.
- Build command:
npm run build - Runtime command:
node .output/server/index.mjs - Health check path:
/
- Create a new Railway project and link this repository.
- Ensure Railway is set to use the repo-root
railway.tomland the service builder is not overridden in the UI. - Deploy from
master(or your selected release branch). - For custom domains, set
NUXT_PUBLIC_APP_BASE_URLas needed.
Nuxt/Nitro generates the production server bundle in .output/ during npm run build, which Railway starts via the configured start command.
dev: default integration branch for day-to-day work.master: release branch; merges here trigger deployment.- Feature branches: branch from
dev, then merge back intodev. - Promote to production by merging
devintomasteronly when ready to deploy. - Do not merge
masterback intodev; keep merges one-way (dev->master) to avoid bi-directional history.