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/domainwith 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
*Pathstructs); 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 ofconfirm(), toasts for feedback, dialogs and sheets for create and edit. - Every change gets an entry under
[Unreleased]inCHANGELOG.md.