From 9f9efc2bc07810d2e06b37bad94e5922681eadef Mon Sep 17 00:00:00 2001
From: nsfisis <nsfisis@gmail.com>
Date: Wed, 18 Feb 2026 22:38:15 +0900
Subject: feat: refactor tournament to generic DB-backed N-person bracket

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>
---
 frontend/app/App.tsx | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

(limited to 'frontend/app/App.tsx')

diff --git a/frontend/app/App.tsx b/frontend/app/App.tsx
index fcf6977..651de32 100644
--- a/frontend/app/App.tsx
+++ b/frontend/app/App.tsx
@@ -42,10 +42,12 @@ export default function App() {
 						</ProtectedRoute>
 					)}
 				</Route>
-				<Route path="/tournament">
-					<ProtectedRoute>
-						<TournamentPage />
-					</ProtectedRoute>
+				<Route path="/tournament/:tournamentId">
+					{(params) => (
+						<ProtectedRoute>
+							<TournamentPage tournamentId={params.tournamentId} />
+						</ProtectedRoute>
+					)}
 				</Route>
 				<Route>
 					<div className="min-h-screen bg-gray-100 flex items-center justify-center">
-- 
cgit v1.3.1

