--- okf_version: "0.1" --- # HIPCTF Documentation HIPCTF is a single-tenant CTF (Capture-The-Flag) platform built as a Node.js monorepo containing a NestJS REST API and an Angular single-page application. It supports user registration, authentication, challenge management, a live scoreboard, an event window with a public countdown, theming, and admin controls. The docs below are organized by purpose so agents can pull just the slice they need. Last regenerated 2026-07-22T09:22:34Z. # Architecture * [System Overview](/architecture/overview.md) - High-level layout of the backend, frontend, and how they communicate. * [Backend Module Map](/architecture/backend-modules.md) - NestJS modules, controllers, services, and their wiring. * [Frontend Structure](/architecture/frontend-structure.md) - Angular routes, components, services, guards, and stores (including the authenticated shell + signal stores). * [Key Files Index](/architecture/key-files.md) - One-line summary of every important source file in the repository. # Database * [Schema Overview](/database/schema.md) - Tables, relationships, and indexes. * [User Table](/database/users.md) - `user` table schema and seed behavior. * [Challenge Tables](/database/challenges.md) - `category`, `challenge`, `challenge_file`, `solve` tables. * [Auth and Settings Tables](/database/auth-settings.md) - `refresh_token` and `setting` tables. * [Blog Post Table](/database/blog-posts.md) - `blog_post` table. # API * [REST API Overview](/api/rest-overview.md) - Base URL, versioning, auth, CSRF, and error envelope. * [Auth Endpoints](/api/auth.md) - Login, refresh, logout, CSRF, `/me`, `/change-password`, and first-admin registration. * [Setup Endpoint](/api/setup.md) - Dedicated `POST /api/v1/setup/create-admin` used only while no administrator exists. * [Admin Endpoints](/api/admin.md) - User management endpoints (admin role required). * [System Endpoints](/api/system.md) - Bootstrap, event status, public SSE streams, public event-window settings, and the authenticated `/events/status` SSE stream. * [Uploads Endpoints](/api/uploads.md) - Admin-only multipart uploads. # Guides * [First-Run Bootstrap](/guides/bootstrap.md) - How a fresh instance is initialized by the very first admin via the non-dismissible modal. * [Setup Form Field Errors](/guides/setup-field-errors.md) - Pure helpers that translate reactive-form state into the inline validation messages on the first-admin modal. * [Admin Shell & User Management](/guides/admin-shell.md) - How admins navigate the post-login shell and reach the user-management area. * [Authenticated Shell](/guides/authenticated-shell.md) - The header, LED + countdown, quick-jump tabs, user menu, and SSE lifecycle that frame every signed-in page. * [Change Password](/guides/change-password.md) - How a signed-in user changes their own password, including every error branch and the refresh-token revocation behavior. * [Session Restoration on Reload](/guides/session-restoration.md) - How the SPA keeps a user signed in across hard refreshes and how the guards wait for bootstrap + auth hydration before deciding where to route. * [Landing Page](/guides/landing-page.md) - Public landing page (logo, welcome Markdown, blog list) and the login + registration modal rendered at `/login` once the instance is initialized. * [Theming](/guides/theming.md) - How themes are loaded and applied. * [Event Window](/guides/event-window.md) - How the 4-state event window and live countdown work, including the authenticated SSE stream. * [Scoreboard Stream](/guides/scoreboard-stream.md) - How live solves are broadcast to clients.