aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend
AgeCommit message (Collapse)Author
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-17test(frontend): add comprehensive tests for components, hooks, and statensfisis
Add 84 new tests covering Jotai atoms (play/watch state transitions, game timing, score management), utility functions (calcCodeSize, checkGameResultKind), UI components (SubmitStatusLabel, LeftTime, SubmitButton, InputText, BorderedContainerWithCaption, FoldableBorderedContainerWithCaption, UserIcon, PlayerNameAndIcon), and the usePageTitle hook. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16test(frontend): add Vitest test infrastructure and sample testsnsfisis
Set up Vitest with @testing-library/react and jsdom for frontend unit testing. Add sample tests for config.ts and BorderedContainer. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14build: introduce npm workspaces for unified dependency managementnsfisis
Consolidate frontend, typespec, and worker/php into a single npm workspaces setup with one root lockfile. Update Dockerfiles to use repository root as build context, and adjust justfile, CI workflow, and compose files accordingly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14ci: add GitHub Actions CI workflow with justnsfisis
Add CI workflow running build/lint checks for all components: - backend: Go build + golangci-lint - worker/swift: Go build + golangci-lint - frontend: Biome + TypeScript + ESLint - worker/php: Biome Add `ci` recipes to each justfile so GHA uses `just ci` uniformly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14feat(openapi): generate OpenAPI specs from TypeSpec sourcesnsfisis
Migrate hand-written OpenAPI YAML to TypeSpec (.tsp) source files. TypeSpec compiles to OpenAPI 3.0 YAML, enabling type-safe API definitions. - Add typespec/ directory with api-server and fortee definitions - Integrate TypeSpec build into `just gen` and `just build` pipelines - Update backend handler code to match new generated type names (inlined error responses, separate GameType/ProblemLanguage enums) - Regenerate frontend TypeScript types from new OpenAPI output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14feat(frontend): add rollup-plugin-visualizernsfisis
2026-02-14feat(frontend): update dependenciesnsfisis
2026-02-13feat(auth): store JWT in HTTP-only cookie instead of JS-accessible cookiensfisis
Prevent XSS-based token theft by making the JWT inaccessible to JavaScript. The backend now sets/clears the cookie via Set-Cookie headers, and the frontend retrieves user info from /api/me instead of decoding the JWT directly. - Add JWTCookieMiddleware to parse cookie and inject claims into context - Add /me and /logout endpoints to OpenAPI spec and handlers - Update PostLogin to return user object + Set-Cookie header - Replace Authorization header auth with cookie-based auth throughout - Rewrite frontend auth to use /api/me instead of jwt-decode - Remove jwt-decode dependency - Configure CORS with credentials for local dev Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): remove React Router remnants from config filesnsfisis
Clean up old React Router references after migration to Vite + Wouter: - Replace build/ and .react-router/ with dist/ in ESLint globalIgnores - Replace ./build with ./dist in Biome ignore list - Remove formComponents and NavLink from ESLint settings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): replace Node.js runtime with nginx in Dockerfilensfisis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): remove React Router and BFF-related dependenciesnsfisis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): replace React Router CLI with Vite in build scriptsnsfisis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): replace process.env with import.meta.env in API clientnsfisis
BFF前提のURL分岐をVite SPA向けに調整。本番URLのハードコードを VITE_API_BASE_URL環境変数に外出し。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): replace React Router BFF with Wouter SPAnsfisis
Remove React Router 7 SSR/BFF architecture (server-side loaders, actions, sessions, remix-auth) and replace with a client-side SPA using Wouter for routing and cookie-based JWT auth. - Replace reactRouter() Vite plugin with @vitejs/plugin-react - Add index.html + app/main.tsx as SPA entry points - Add Wouter routing with auth guards (ProtectedRoute/PublicOnlyRoute) - Add client-side auth (app/auth.ts) and useAuth hook - Migrate all route files to app/pages/ with client-side data fetching - Update NavigateLink and GolfPlayAppGaming to use Wouter Link - Remove .server/, routes/, root.tsx, react-router.config.ts - Clean up tsconfig.json (remove .react-router references) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor: rename module/package namensfisis
2026-02-13chore: replace Makefile with justfilensfisis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13refactor(frontend): extract APP_NAME constant for page titlesnsfisis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2025-09-19feat(frontend): update tournament stylensfisis
2025-09-17feat(backend,frontend): implement tournament pagensfisis
2025-09-17feat(frontend): apply effect for high scorensfisis
2025-09-17feat(frontend): do not show copy button if code is emptynsfisis
2025-09-16feat(frontend): add copy button to code blocknsfisis
2025-09-16feat(frontend): re-enable swift highlightnsfisis
2025-09-16feat(frontend): update shikinsfisis
2025-09-06fix(frontend): environment notice for swiftnsfisis
2025-09-06fix(frontend): disable highlight for swift temporarilynsfisis
2025-09-06fix(*): support compile_error as worker resultnsfisis
2025-09-06refactor(frontend): remove unused filensfisis
2025-09-05feat(frontend): support swift languagensfisis
2025-08-18feat(frontend): bundle swift highlightnsfisis
2025-08-18fix(frontend): argument definition in Dockerfilensfisis
2025-08-18feat(frontend): apply iOSDC Japan 2025 colornsfisis
2025-08-18fix(frontend): favicon pathnsfisis
2025-08-18fix(frontend): wrong base path config againnsfisis
2025-08-18fix(frontend): wrong base path confignsfisis
2025-08-17fix(frontend): wrong env var namensfisis
2025-08-17feat: update "PHPerKaigi" to "iOSDC Japan"nsfisis
2025-08-14feat(backend,frontend): Replace hard-coded base path with environment variablensfisis
2025-04-06feat(frontend): update index pagensfisis
2025-03-31fix(frontend): make ranking table scrollablensfisis
2025-03-29feat: show code in ranking pagensfisis
2025-03-21fixnsfisis
2025-03-21wipnsfisis
2025-03-21fix(frontend): refresh jwt if expirednsfisis
2025-03-21feat(frontend): do not transit to finished pagensfisis
2025-03-21fix(frontend): fix submission status flickeringnsfisis
2025-03-21feat(frontend): hide announcement text of online qualifying after code ↵nsfisis
battle starts
2025-03-21feat(frontend): support mobile layoutnsfisis