// readme

ictsc-regalia

A monorepo that bundles the ICTSC contestant dashboard, operations console, and score server. The API is managed contract-first with OpenAPI.

Directory layout

.
โ”œโ”€โ”€ backend/                 Go API, DB schema, external service adapters
โ”‚   โ””โ”€โ”€ openapi.json         The single source of truth for the API
โ”œโ”€โ”€ frontend/packages/
โ”‚   โ”œโ”€โ”€ api/                 OpenAPI-generated types and shared REST client
โ”‚   โ”œโ”€โ”€ ui/                  Shared Vue UI, design, Storybook
โ”‚   โ”œโ”€โ”€ contestant/          Contestant Nuxt SPA
โ”‚   โ”œโ”€โ”€ admin/               Operations Nuxt SPA (/admin/)
โ”‚   โ””โ”€โ”€ config/              Shared lint/format config
โ”œโ”€โ”€ docs/                    Design and external integration contracts
โ””โ”€โ”€ Taskfile.yaml            Development tasks

Generation

After changing the OpenAPI spec, update the generated artifacts for both languages from the repository root.

task generate

If differences remain after generation, commit those differences as part of the API contract change.

Development

Start the dependent services and the API with Docker.

task dev-backend

For details, seeโ€ฆ