Files
overwatch/simulation/frontend
thebadking b3608ecfd7
Some checks failed
AERIS-10 CI / Python Lint + Tests (push) Has been cancelled
AERIS-10 CI / MCU Firmware Tests (push) Has been cancelled
AERIS-10 CI / FPGA Regression (push) Has been cancelled
AERIS-10 CI / Cross-Layer Contract Tests (push) Has been cancelled
Rename the simulator to Overwatch and organize the repository for presentation.
The operator interface now uses that name. The radar design, parts list, and simulation sit in separate directories, and the earlier simulator and project license are removed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-21 06:04:46 +00:00
..

Vue Template

Opinionated Vue 3 starter based on Vitesse, extended with shadcn-vue components, Supabase auth, and UnoCSS Wind4.

Stack

  • Vue 3 + TypeScript + Vite
  • UnoCSS with presetWind4 (Tailwind v4-compatible utilities)
  • shadcn-vue components powered by reka-ui
  • Supabase for auth and data persistence (PKCE flow)
  • Pinia stores
  • vue-i18n with locale auto-detection
  • ViteSSG static site generation
  • dev-i18n-audit tool at /__dev__/i18n-audit (dev-only)

Setup

cp .env.example .env.local
# Fill in VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY
pnpm install
pnpm dev

Environment Variables

Variable Description
VITE_SUPABASE_URL Your Supabase project URL
VITE_SUPABASE_ANON_KEY Your Supabase anon/public key
VITE_ALLOWED_LOCALES Comma-separated locale list (e.g. en,fr). Empty = all
VITE_BRAND_NAME App name shown in sidebar and page titles

Adding shadcn-vue Components

The full shadcn-vue component set is already installed in src/components/ui/. You can add more via the CLI:

npx shadcn-vue@latest add <component-name>

All components use the @/ alias pointing to src/. The cn() utility lives in src/lib/utils.ts.

Auth

Auth is handled via Supabase PKCE. The useAuth() composable exposes loginWithEmail, loginWithProvider, and signUpWithEmail. Protected routes use meta: { requiresAuth: true } in their route definition.

The useAuthStore (Pinia) holds the current user and session state.

Layouts

Layout Description
default Bare router-view
with-sidebar Sidebar + main content area
login Centered card layout

i18n Audit (dev only)

Navigate to http://localhost:3333/__dev__/i18n-audit to scan your source files for i18n keys, audit locale YAML files, and optionally use LM Studio for AI-assisted translation.

Project Structure

src/
├── components/
│   ├── ui/          # shadcn-vue primitives
│   ├── AppSidebar.vue
│   ├── DarkModeSwitcher.vue
│   └── LanguageSwitcher.vue
├── composables/
│   ├── useAuth.ts
│   └── useLogout.ts
├── devtools/        # i18n-audit (dev only)
├── layouts/
│   ├── default.vue
│   ├── login.vue
│   └── with-sidebar.vue
├── lib/
│   ├── auth/        # auth helpers
│   ├── i18n-audit/  # audit lib
│   ├── supabaseClient.ts
│   └── utils.ts     # cn() utility
├── modules/         # auto-loaded Vite SSG modules
├── pages/
│   ├── index.vue
│   └── login.vue
├── stores/
│   ├── auth.ts
│   └── adminAccess.ts
└── types/
    └── database.ts  # Supabase DB types (replace with your own)