2.8 KiB
Repository Guidelines
Project Structure & Module Organization
This is a Vue 3 and TypeScript single-page application built with Vite. Application code lives in src/: route-level screens are in src/views/, reusable Vue components in src/components/, Pinia stores in src/stores/, composables in src/composables/, shared logic in src/lib/, and static domain content in src/data/ and src/content/. Global styling is in src/styles.css; theme-specific CSS is under src/lib/. Public files belong in public/. Tests live in test/, while generated output in dist/ must not be edited or committed.
Build, Test, and Development Commands
Use Node.js 20 or newer and install the locked dependency set with npm ci.
npm run devstarts Vite athttp://localhost:5173.npm run type-checkrunsvue-tscwithout emitting files.npm run buildtype-checks and creates the production bundle indist/.npm run build:fastbuilds without the TypeScript gate; reserve it for quick local checks.npm run previewserves the built bundle locally.node --experimental-strip-types --test test/*.test.tsruns the current Node test suite (there is nonpm testscript yet).
Coding Style & Naming Conventions
Follow the existing style: two-space indentation, semicolons, single-quoted TypeScript strings, and Vue Single-File Components using <script setup lang="ts">. Name components and views in PascalCase (CareerPathGraph.vue), composables with a use prefix (useLoginGate.ts), and functions or stores in camelCase. Prefer the @/ alias for imports from src/. Reuse Tailwind tokens defined in tailwind.config.js; keep component-only CSS scoped. No formatter or linter is configured, so preserve nearby formatting and rely on type-checking.
Testing Guidelines
Tests use node:test and node:assert/strict. Add focused files named *.test.ts under test/, mirror the domain module being tested, and isolate browser APIs with small in-memory stubs. Run tests and npm run type-check before opening a pull request. No coverage threshold is currently configured.
Commit & Pull Request Guidelines
Git history is absent from this checkout, so no project-specific message convention can be inferred. Use short, imperative subjects, optionally with a conventional prefix such as feat:, fix:, or test:. Pull requests should explain user-visible impact, list verification commands, link the relevant issue, and include before/after screenshots for UI changes. Keep generated files and unrelated refactors out of the change.
Configuration & Security
Copy .env.example to .env and set VITE_API_BASE_URL for the backend. Never commit .env, credentials, tokens, or production API endpoints; remember that all VITE_ values are exposed to browser code.