Repository Guidelines
Project Structure & Module Organization
backend/contains the Go API server, WebSocket hub, migrations, and Swagger docs.frontend/contains the React + TypeScript web app (Vite).docs/holds planning and architecture notes.mobile/is referenced in docs but not present yet; iOS work is planned for later phases.
Build, Test, and Development Commands
Backend (run from backend/):
make runto start the API server.make testorgo test ./...to run all backend tests.make test-coverto generatecoverage.html.make swaggerto regenerate OpenAPI docs inbackend/docs/.make migrate-up/make migrate-downfor database migrations (needsDATABASE_URL).
Frontend (run from frontend/):
npm run devfor local development athttp://localhost:5173.npm run buildto build production assets infrontend/dist/.npm run lintandnpm run formatfor code quality and formatting.npm run type-checkfor TypeScript checks.
Coding Style & Naming Conventions
- Go: standard
gofmtformatting,golangci-lintif available. - TypeScript: ESLint + Prettier, strict TS config.
- Branch names:
feature/,bugfix/, orhotfix/prefixes. - Commit messages: clear, descriptive, imperative mood (e.g., "Add user auth endpoints").
Testing Guidelines
- Backend: Go
testingpackage; unit and integration tests required for API endpoints. - Frontend: tests planned (Vitest + React Testing Library per project guidelines).
- Coverage target: aim for 80%+ when tests exist; update as the test suite grows.
Commit & Pull Request Guidelines
- Link PRs to GitHub issues; describe scope and testing performed.
- Include screenshots or GIFs for UI changes.
- PRs require review and passing tests before merge.
GitHub Interaction Preferences
- When creating issues, always add them to Project 3:
https://github.com/users/matdemers1/projects/3. - Default new issue metadata (unless specified otherwise): milestone
MVP - Phase 1, labelsbackend,enhancement,priority:medium,MVP. - Always update Swagger (
make swaggerinbackend/) after backend changes. - Commit message format: multi-section, bullet-heavy template like the provided example; omit any
Co-Authored-Byfooter. - Workflow for issues: set to In Progress → implement changes → run lint → fix lint issues → run tests → fix test failures → provide testing steps → wait for user verification → then commit/push and close issue.
- After committing, push to
origin mainand close the related issue with a brief summary comment.
Security & Configuration Tips
- Use
.envfiles inbackend/andfrontend/for local configuration. - Never commit secrets; keep JWT secrets and database credentials local.