Skip to content

Development

Requirements: Go, Node and Docker.

make dev     # PostgreSQL, backend and Vite in the foreground, app on http://localhost:5173; Ctrl-C stops everything
make test    # Go unit and integration tests against the compose PostgreSQL
make api     # after changing API operations: regenerate web/openapi.json and web/src/lib/api.gen.ts
make i18n    # extract new UI and document strings into the PO catalogs
make e2e     # Cypress in Docker against an empty instance on :3002
make run     # production-like build with the embedded SPA on http://localhost:8080
make build   # SPA and server binary into bin/
make agent   # print agent for linux amd64 and arm64
make docker  # local image, version from git describe

make dev seeds the login dev / devpassword with a club, a range and an event. The admin panel is at /admin with the token from .env (created from .env.example on the first start).

Conventions

  • Everything in the repository is English; translations live in the PO catalogs only.
  • No code comments unless really necessary, but a godoc comment on every exported identifier and package.
  • Rules belong in internal/domain with table tests, not in handlers or the frontend.
  • huma path parameters must be at most one embedding level deep in input structs (use the flat *Path structs); arrays are non-nullable, so store list methods never return nil slices.
  • UI components come from shadcn-svelte (web/src/lib/components/ui), no other UI kits. ask() instead of confirm(), toasts for feedback, dialogs and sheets for create and edit.
  • Every change gets an entry under [Unreleased] in CHANGELOG.md.