72 lines
3.1 KiB
Markdown
72 lines
3.1 KiB
Markdown
---
|
|
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-21T18:28:00Z.
|
|
|
|
# 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, and guards.
|
|
* [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, 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, and SSE
|
|
streams.
|
|
* [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.
|
|
* [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 event window and live
|
|
countdown work.
|
|
* [Scoreboard Stream](/guides/scoreboard-stream.md) - How live solves are
|
|
broadcast to clients.
|