Case / publik webb + adminpanel
Lördagsgolf
React / JWT-säkrad API / adminpanel
Lördagsgolf är en publik säsongswebb med en adminpanel bakom JWT-inloggning, där arrangörerna registrerar spelare, rundor och banor mot en egen backend-API.
ProblemBesökare ska snabbt förstå bana, upplägg och resultat, samtidigt som arrangörerna behöver ett sätt att mata in rundor, spelare och banor utan att röra databasen direkt eller riskera att obehöriga kan skriva data.
LösningJag byggde en React/Vite-frontend som pratar med en egen ASP.NET Core-backend: publika sidor för säsongsresultat och spelarprofiler, en adminpanel bakom JWT-inloggning för att hantera spelare, rundor och banor, ett adapterlager som normaliserar API-svarens skiftande form, och en API-klient med timeout och retry.
Tekniska beslutAdapterlager (src/services/adapters) som normaliserar API-kontraktet — t.ex. $values-wrappers och skiftande casing — så UI-komponenterna aldrig behöver känna till backendens råa form.Central API-konfiguration via miljövariabler, med fallback-URL:er om env saknas.Auth-token med utgångstid lagrat i sessionStorage, rensas automatiskt vid 401 från backend.Backend (ASP.NET Core) kräver JWT för alla skrivande anrop (POST/PUT/DELETE) på spelare, rundor och banor, med IP-baserad rate limiting på inloggning.GitHub Actions kör lint, test och bygge på varje push/PR mot main.
Vad det visarProjektet visar att jag kan bygga och koppla ihop en frontend mot en egen autentiserad backend över två repon, med adapters och en robust API-klient som håller UI:t oberoende av backendens exakta svarsform.
TeknikReact 19Vite 6React Router 7Tailwind CSS 4VitestASP.NET CoreJWTRender