Development Setup
Step 0 — Check prerequisites
Section titled “Step 0 — Check prerequisites”Run this first after cloning the repo:
npm run setupThis checks Node version, Docker status, and port availability. Fix anything marked ❌ before continuing.
Step 1 — Install Node 24 LTS (recommended)
Section titled “Step 1 — Install Node 24 LTS (recommended)”# Install and switch to Node 24 (using nvm) — recommended; >=22 also worksnvm install 24nvm use 24
# Verifynode --version # v24.x.x (or v22.x.x / v26.x.x — any >=22 is fine)Optional: auto-switch when entering the project directory
Section titled “Optional: auto-switch when entering the project directory”Add these 4 lines to your ~/.zshrc (or ~/.bashrc) to have nvm automatically use the right
version whenever you cd into the project (uses the .nvmrc file at the repo root):
# Auto-switch Node version on cd (reads .nvmrc)autoload -U add-zsh-hookload-nvmrc() { [[ -f .nvmrc ]] && nvm use --silent; }add-zsh-hook chpwd load-nvmrc && load-nvmrcAfter adding this, open a new terminal and cd into the repo — nvm will automatically switch to Node 24.
Step 2 — Backend
Section titled “Step 2 — Backend”cd backendnvm use 24 # Recommended; any Node >=22 worksnpm installnpx prisma db seed # Load demo data (first run only)npm run start:dev # Starts on http://localhost:3000- API:
http://localhost:3000/api/v1 - Swagger UI:
http://localhost:3000/swagger(always available)
Step 3 — Frontend
Section titled “Step 3 — Frontend”cd frontnpm installnpm run dev # Starts on http://localhost:4321The frontend expects the backend at http://localhost:3000/api/v1 by default.
Step 4 — Docs Site (optional)
Section titled “Step 4 — Docs Site (optional)”cd docsnpm installnpm run dev # Starts on http://localhost:8001The docs dev server runs at port 8001 — consistent with Docker.
Step 5 — Tauri Desktop App (optional)
Section titled “Step 5 — Tauri Desktop App (optional)”The desktop app wraps both the backend and frontend in a native macOS window using Tauri v2 (Rust).
Prerequisites:
- Rust — install via rustup:
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shsource ~/.cargo/env # or restart your terminal - Node 24+ — already required for backend/frontend
Run in dev mode:
npm run tauri:devThis script automatically:
- Installs root/front/backend dependencies
- Builds the frontend with the Tauri API URL (
http://localhost:3456/api/v1) - Generates the Prisma client and builds the backend
- Launches
tauri dev
Running All Three Together
Section titled “Running All Three Together”Open three terminal tabs:
# Tab 1 — Backendcd backend && npm run start:dev
# Tab 2 — Frontendcd front && npm run dev # http://localhost:4321
# Tab 3 — Docs (optional, for authoring)cd docs && npm run dev # http://localhost:8001# Backend (run from backend/)cd backendnpm test # Unit testsnpm run test:e2e # E2E tests
# Frontend (run from front/)cd frontnpm test # Unit tests (Vitest)npm run test:e2e # E2E tests (Playwright)