Home page redesign + role redirect + fix Sign In button (Phase 10f-1, 10f-2, 10f-3) #28
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/westside-landing#28
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Lineage
plan-2026-03-08-tryout-prep→ Phase 10f → Phase 10f-1 (Home page redesign) + 10f-2 (Post-login redirect) + 10f-3 (Fix Sign In button)Repo
forgejo_admin/westside-appUser Story
As a parent visiting the Westside Kings & Queens website on my phone
I want to see a professional club landing page with program info and a clear Sign In button
So that I feel confident this is a legitimate basketball program, not a developer admin tool
As a logged-in member (admin/coach/player)
I want to land directly on my dashboard after sign-in
So that I don't see a stats page meant for nobody
Context
Session 2026-03-15 UX review revealed the home page (
/) shows raw backend stats (Total Players: 54, Checked In: 0, Tryout Numbers: 52) to everyone — including unauthenticated visitors. No user story asks for this. It's developer placeholder content from Phase 6 that was never replaced.The landing page at
~/west-side-basketball/index.htmlalready has professional design: hero section, about the program, tryout details, how-it-works steps, FAQ. That content should BE the home page.The Sign In button has a white oval artifact because
@auth/sveltekit's<SignIn>component renders<button>wrapping a slotted<button>— invalid HTML.Design reference:
~/west-side-basketball/index.html+~/west-side-basketball/css/style.css. Design tokens already aligned insrc/app.css(PR #27). The landing page CSS uses the same color palette.File Targets
Files to modify:
src/routes/+page.svelte— FULL REWRITE. Replace stats dashboard with landing page content: hero, about (3 cards), tryout details, how-it-works (3 steps), FAQ. Port HTML structure from~/west-side-basketball/index.htmlsections: hero, #about, #tryouts, how-it-works, #faq. Adapt CSS from~/west-side-basketball/css/style.cssinto scoped styles using design tokens fromapp.css. Sign In CTA button (direct form POST, no<SignIn>component).src/routes/+page.server.js— REWRITE. If authenticated, redirect by role: admin→/admin, coach→/coach, player→/player. If unauthenticated, return minimal data (or nothing — the landing page is static content).src/routes/+layout.svelte— May need adjustment so AuthStatus nav doesn't render on the landing page (unauthenticated visitors should see clean landing page nav, not the empty member nav)src/app.css— Add landing page styles (hero gradient, section alternating backgrounds, card grid, step circles, FAQ accordion, quote block). Prefix with/* Landing Page */comment section. Use existing design tokens.Files to read for reference (DO NOT modify these — they're in a different repo):
~/west-side-basketball/index.html— HTML content to port (hero through FAQ sections)~/west-side-basketball/css/style.css— CSS to adapt (use as reference, translate to design tokens)~/west-side-basketball/assets/images/logo.jpeg— copy tostatic/if neededFiles NOT to touch:
src/routes/admin/**— admin dashboards work finesrc/routes/coach/**— coach view works finesrc/routes/player/**— player view works finesrc/routes/teams/**— team list works finesrc/routes/signin/**— auth routessrc/routes/signout/**— auth routessrc/hooks.server.js— auth middlewaresrc/auth.js— auth configAcceptance Criteria
/shows branded landing page with hero, about, tryouts, FAQ — NOT raw stats/signinwithproviderId=keycloak(replacing the broken<SignIn>component)/admin, coach on/coach, player on/playerwest-side-basketball— same brand voice, same section structure, same color palettenpm run buildpassesTest Expectations
/gets 303 to/admin/gets 303 to/coach/gets 303 to/playernpm run buildpassesnpm run build && npm run previewConstraints
src/app.css— do NOT add hardcoded hex values<SignIn>component from@auth/sveltekitis broken (double-button). Use a direct<form method="POST" action="/signin">with hidden inputname="providerId" value="keycloak"instead~/west-side-basketball/assets/images/logo.jpegtostatic/logo.jpegfor use in the landing pageChecklist
npm run build)Related
westside-basketball— projectplan-2026-03-08-tryout-prep— parent plan, Phase 10f~/west-side-basketball/— design reference repo (GitHub: ldraney/west-side-basketball)