From 3873ddfe8fb702a873ff8b80b9748e033e58024b Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Sat, 20 Dec 2025 00:39:53 -0800 Subject: [PATCH] feat: add auth pages, update navbar, fix leaderboards venue display, and fix api-config --- backend/routers/leaderboards.py | 7 +- frontend/app/layout.tsx | 15 +-- frontend/app/leaderboards/page.tsx | 23 +++-- frontend/app/login/page.tsx | 105 +++++++++++++++++++++ frontend/app/register/page.tsx | 130 ++++++++++++++++++++++++++ frontend/components/layout/navbar.tsx | 66 ++++++++++--- frontend/components/ui/card.tsx | 26 +++++- frontend/contexts/auth-context.tsx | 79 ++++++++++++++++ frontend/lib/api-config.ts | 3 + 9 files changed, 425 insertions(+), 29 deletions(-) create mode 100644 frontend/app/login/page.tsx create mode 100644 frontend/app/register/page.tsx create mode 100644 frontend/contexts/auth-context.tsx diff --git a/backend/routers/leaderboards.py b/backend/routers/leaderboards.py index 8bd2e43..91f8477 100644 --- a/backend/routers/leaderboards.py +++ b/backend/routers/leaderboards.py @@ -21,11 +21,13 @@ def get_top_shows(limit: int = 10, session: Session = Depends(get_session)): query = ( select( Show, + Venue, func.avg(Review.score).label("avg_score"), func.count(Review.id).label("review_count") ) .join(Review, Review.show_id == Show.id) - .group_by(Show.id) + .join(Venue, Show.venue_id == Venue.id) + .group_by(Show.id, Venue.id) .having(func.count(Review.id) >= 1) .order_by(desc("avg_score"), desc("review_count")) .limit(limit) @@ -36,10 +38,11 @@ def get_top_shows(limit: int = 10, session: Session = Depends(get_session)): return [ { "show": show, + "venue": venue, "avg_score": round(score, 2), "review_count": count } - for show, score, count in results + for show, venue, score, count in results ] @router.get("/venues/top") diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 7e1b571..ec3c3e3 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -4,6 +4,7 @@ import "./globals.css"; import { Navbar } from "@/components/layout/navbar"; import { cn } from "@/lib/utils"; import { PreferencesProvider } from "@/contexts/preferences-context"; +import { AuthProvider } from "@/contexts/auth-context"; const inter = Inter({ subsets: ["latin"] }); @@ -20,12 +21,14 @@ export default function RootLayout({ return (
-