Jan Novak f253e3fcb1
All checks were successful
Deploy to K8s / deploy (push) Successful in 7s
feat(go): M5.1 — hand-author /api/* wire types + JSON Schemas
Add internal/web/api package with Go structs for every /api/X route:
AdultsResponse, JuniorsResponse, PaymentsResponse, VersionResponse.
All fields carry explicit json: tags matching the Python view-model keys.

Key design choices:
- member_data / month_labels / raw_payments are nested objects (not
  the pre-serialised JSON strings used in Jinja templates)
- Expected{Value int; Unknown bool} with custom MarshalJSON emits int
  or the string "?" for junior single-attendance months
- RawTransaction covers the full 11-column payments sheet row

schemagen_test.go reflects all four response types via
github.com/invopop/jsonschema and golden-compares against committed
schemas in tests/fixtures/api-schema/. The JSONSchema() method on
Expected lives in the test file so the prod binary has no jsonschema
dependency.

Closes M5.1 in docs/plans/2026-05-03-2349-go-backend-rewrite-progress.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 17:36:46 +02:00
2026-05-07 14:01:46 +02:00

FUJ Management Documentation

Welcome to the documentation for the FUJ Management application.

This project automates financial and operational management for the FUJ (Frisbee Ultimate Jablonec) club.

Navigation

Use the sidebar to explore the documentation:

For more technical details, check out the guides by Claude and Gemini in the sidebar.

Description
Brainstorming and possibly automatization of internal processes in FUJ frisbee team - mainly finances
Readme 2.3 MiB
Languages
Go 48.8%
Python 30%
HTML 15.1%
JavaScript 2.9%
CSS 1.5%
Other 1.7%