Contest-support backend for the Yingyeothon hackathon: per-channel OAuth login (auth), operations console (console), WebSocket topic broadcast (topic), FIFO matchmaker (match), and versioned per-player documents plus per-project key-value collections (state), deployed with Serverless Framework 4 on AWS ap-northeast-2. Game loops live in the sibling tslib packages; this repo only has to stay compatible with their JWT/WebSocket contracts.
Public repository. Secrets and infrastructure identifiers never enter git. Read
docs/secrets.mdbefore committing — the git hooks and CI enforce it.
packages/*— shared libraries (core,redis,console-db,jwt,http,ws)services/{auth,console,topic,match,state}— one Serverless stack eachapps/console-web— console SPA;cli/— Go CLIyytfor Linux, macOS and Windows (cli/README.md: install scriptsinstall.sh/install.ps1, login, commands, release)docs/— decisions, contracts, secrets policy;rules/— engineering rules for contributors and agentslocal/— machine-local config (gitignored);todo/— machine-local work tracker (gitignored)
pnpm install && pnpm -r build && pnpm test # build + vitest (no Docker)
pnpm lint && pnpm format:check && pnpm typecheck # CI gates
YYT_IT=1 pnpm test # opt-in integration tests against dev MySQL/Redis
scripts/deploy.sh <service> <dev|prod> # deploy one stack
cd cli && go test ./... && go build ./... # CLIdocs/platform-overview.md— what the platform is, its invariants, ceilings and non-goals; the baseline for comparing it with other platformsdocs/decisions.md— settled product/technical decisions (change the doc before the code)docs/secrets.md— secrets, identifiers, hooks, rotationdocs/auth-game-contract.md— JWT contract shared with game stacksdocs/kvstore.md— key-value collections: principals, surfaces, encryption, deploy orderCONTRIBUTING.md— workflow and mandatory checksrules/index.md— detailed engineering rules