aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/admin
AgeCommit message (Collapse)Author
2026-02-20style(backend): modernize Go syntax with range-over-int and type inferencensfisis
Use Go 1.22+ range-over-integer syntax, replace interface{} with any, and remove redundant type parameters. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20feat(admin): integrate asynqmon web UI for task queue monitoringnsfisis
Mount asynqmon HTTP handler under admin/queue with existing session cookie and admin middleware authentication. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20feat(admin): add bulk rejudge for game submissionsnsfisis
Extract common rejudge logic into a helper method and add two new endpoints: rejudge-latest (per-user latest only) and rejudge-all. This allows re-running submissions in bulk after testcase changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20feat(admin): add rejudge functionality for submissionsnsfisis
Allow administrators to re-execute test cases for a specific submission from the submission detail page. This is useful after testcase fixes or worker issues. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18feat: refactor tournament to generic DB-backed N-person bracketnsfisis
Replace hardcoded 6-person tournament with a generic single-elimination bracket system backed by new DB tables (tournaments, tournament_entries, tournament_matches). Includes admin CRUD, standard seeding algorithm, bye handling, and a CSS Grid bracket renderer on the frontend. Add comprehensive tests for backend API/admin handlers, seeding logic, and frontend bracket component. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17feat: rename iOSDC Japan 2025 references to PHPerKaigi 2026nsfisis
Replace all remaining references to the forked event name: - Base path: /iosdc-japan/2025/code-battle/ → /phperkaigi/2026/code-battle/ - Display text and HTML titles - CSS utility class: bg-iosdc-japan → bg-phperkaigi - GitHub Actions submodule path: albatross-swift-2025 → albatross-php-2026 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16test(backend): add unit tests for admin handlers and taskqueuensfisis
Add comprehensive tests for previously untested packages: - admin: middleware auth checks, CRUD handlers for users/games/problems/testcases - taskqueue: task creation, payload serialization, code hash calculation - api: expose SetUserInContext helper for cross-package test support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15refactor(backend): introduce DI interfaces for testabilitynsfisis
Replace concrete *db.Queries and *pgxpool.Pool dependencies with db.Querier and db.TxManager interfaces across all handlers, game hub, and auth. This enables unit testing with mocks. - Enable sqlc emit_interface to generate Querier interface - Add TxManager abstraction to encapsulate transactions - Convert auth package-level functions to Authenticator struct - Add TaskQueueInterface/TaskWorkerInterface for game.Hub - Add initial unit tests for game logic and API handlers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15fix(backend): resolve TODO items for transactions, validation, and error ↵nsfisis
handling - Wrap multi-step DB operations in transactions (signup, submit, game edit, task result processing) - Add game running checks to PostGamePlayCode and PostGamePlaySubmit - Hide ranking code when game is not yet finished - Replace silenced errors in processTaskResults with slog.Error logging - Add pgxpool.Pool to Handler/Hub structs for transaction support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15refactor(log): migrate from log to log/slog for structured loggingnsfisis
Replace all usages of the standard log package with log/slog across backend and swift worker. Configure Echo's request logger to emit structured log attributes via slog instead of the default format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15refactor(auth): replace JWT authentication with server-side sessionsnsfisis
Migrate from stateless JWT tokens to server-side session management backed by PostgreSQL. Sessions are hashed with SHA-256 before storage, cleaned up periodically, and invalidated on logout. This removes the need for JWT_SECRET/COOKIE_SECRET environment variables and the golang-jwt dependency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor: rename module/package namensfisis
2025-09-17feat(backend): add admin pages for submissionsnsfisis
2025-09-16feat(backend): prevent game from starting without testcasesnsfisis
2025-09-06fix(backend): qualifying ranking tablensfisis
2025-09-06fix(backend): duplicate slashes in some URLsnsfisis
2025-09-06feat(backend): update qualifying ranking pagensfisis
2025-09-06feat(backend): restore /admin/fixnsfisis
2025-09-06feat(backend): add admin pages for testcasesnsfisis
2025-09-06feat(backend): add admin page for game creationnsfisis
2025-09-06feat(backend): add admin page for problemsnsfisis
2025-08-17feat: update "PHPerKaigi" to "iOSDC Japan"nsfisis
2025-08-14feat(backend,frontend): Replace hard-coded base path with environment variablensfisis
2025-04-02fix(backend): fix pathsnsfisis
2025-04-02feat(backend): add admin tool to fix submission statusnsfisis
2025-03-21fix(backend): fix various admin featuresnsfisis
2025-03-20fix(backend): fix online qualifying rankingnsfisis
2025-03-20feat(backend): allow admin to edit game started_atnsfisis
2025-03-20feat(backend): add /admin/online-qualifying-rankingnsfisis
2025-03-17refactor(backend): remove unused fieldnsfisis
2025-03-15feat(backen): allow admin to edit main playersnsfisis
2025-03-12feat(backend): implement user edit pagensfisis
2025-03-12feat(backend): change is_public input to checkbox in game edit pagensfisis
2025-03-12fix(backend): treat started_at of game edit page as time in JSTnsfisis
2025-03-11feat: show user labelnsfisis
2025-03-08game start buttonnsfisis
2025-03-08websocket to pollingnsfisis
2025-03-04update site namensfisis
2025-03-04rm audio featurensfisis
2025-03-04change base pathnsfisis
2025-03-04update go package namesnsfisis
2024-08-21feat(backend): add /admin/audio pagensfisis
2024-08-19refactor(backend): do not hard-code base pathnsfisis
2024-08-18feat(backend): add the link to game watch page to admin game list pagensfisis
2024-08-17feat(backend): fetch user icon from forteensfisis
2024-08-12feat: show left time in play pagensfisis
2024-08-11feat: simplify starting procedurensfisis
2024-08-11feat(backend): make `games.problem_id` non-nullnsfisis
2024-08-10feat: prepend base pathnsfisis
2024-08-08fix(backend): fix admin game edit pagensfisis