feat(client): parametrize WS/API via VITE_WS_URL and VITE_API_URL; add .env.example and README env section
2.2 KiB
2.2 KiB
Repository Guidelines
Project Structure & Module Organization
server/: Colyseus + Express TypeScript backend (src/index.ts, rooms, schemas, utils,adminApi.ts).client/: Vue 3 + Vite TypeScript app (src/views,services/colyseus.ts,router,main.ts).shared/: Cross-cutting TypeScript types (shared/types.ts).
Build, Test, and Development Commands
- From repo root:
npm run install:all: Install client and server dependencies.npm run dev: Run server and client in watch mode.npm run build: Type-check and build server and client.
- Per package:
- Server:
cd server && npm run dev | build | start. - Client:
cd client && npm run dev | build | preview.
- Server:
Coding Style & Naming Conventions
- Language: TypeScript (server/client). Indentation: 2 spaces.
- Quotes/Semicolons: double quotes and trailing semicolons (match existing code).
- Naming:
PascalCasefor classes and Vue SFC files (e.g.,Game.vue),camelCasefor variables/functions,kebab-casefor non-component file names when appropriate. - Keep server state changes server-authoritative; avoid mutating Colyseus state on client.
- No linter is configured; keep changes consistent with surrounding files.
Testing Guidelines
- No tests yet. Prefer adding:
- Client: Vitest + Vue Test Utils for views/services.
- Server: Jest for room logic and schema helpers.
- Conventions: mirror source path and name tests
*.spec.ts(e.g.,server/src/rooms/GameRoom.spec.ts). - CI-friendly: tests must run headless and not require a live server.
Commit & Pull Request Guidelines
- Commits: follow Conventional Commits (
feat:,fix:,docs:) as in history. - PRs include:
- Clear description and rationale; link issues (e.g.,
Fixes #123). - Screenshots/GIFs for UI changes (
client/src/views/*). - Steps to reproduce and test notes.
- Scope limited to one logical change; update README/QUICKSTART if behavior changes.
- Clear description and rationale; link issues (e.g.,
Security & Configuration Tips
- Server port via
PORT(default 3000). Monitor at/colyseus, REST at/api. - Client WebSocket URL is set in
client/src/services/colyseus.ts; consider env (VITE_WS_URL) for deployments. - CORS is enabled; restrict origins in production.