Tilbage til portfolio
FitRoom Experience — Fitnesswebsite & medlemsplatform

FitRoom Experience — Fitnesswebsite & medlemsplatform

FitRoom Experience havde brug for både et offentligt ansigt og den software, der driver forretningen bagved — så sitet er begge dele. Forsiden er en tosproget onepager: hero, elleve ydelser, det aktuelle ugeskema, en om-sektion og kontakt, plus en medlemsside med tyve pakker og ni tilbud taget fra ejerens trykte prisliste. Bag login registrerer et medlem sig uden at vælge adgangskode, booker fra et skema, der løber et helt kvartal frem, kommer på venteliste når et hold er fyldt, opretter én fast ugentlig booking der fornyer sig selv, ser hvad hun har betalt og hvad hun skylder, og kan eksportere eller slette sine egne data. Ejeren får sytten backoffice-skærme: kunder, pakker, holdtyper, skemaet, lukkedage, tilbud, sideindhold, abonnementer, betalinger, gæld og dens ældning, holdlisten, en check-in-kiosk til en tablet ved døren, en e-mail-log med gensend, og statistik — omsætning, et kapacitets-heatmap, fremmøde pr. holdfamilie, udløbende abonnementer og CSV-eksport. Nitten e-mailskabeloner på begge sprog kører over en medfølgende PHPMailer med retry-backoff. Nedenunder er det ren PHP 8.5 på MySQL fordelt på fireogfyrre tabeller, med græsk som kanonisk sprog: intet framework, ingen Composer, intet build-trin.

Teknologier

PHP 8.5 MySQL 9.5 Vanilla JS GSAP PHPMailer Stripe i18n (EL/EN) SEO

Udfordringer

Et holdskema er ikke en kalender. Et hold har kapacitet, en venteliste, klip der betaler for det, og en lukkedag der kan aflyse det — og ejeren havde brug for det hele på den ene skærm, hun allerede bruger. Centret havde desuden 158 medlemmer på det gamle site, som skulle kunne logge ind fra dag ét.

Løsninger

Klip, bookinger og penge er én model frem for tre, så en aflysning tager sin postering med sig, og en refusion bærer annulleringen med. Vinduet for gentagne bookinger udledes af bookinghorisonten i stedet for at være sin egen indstilling, så de to ikke kan glide fra hinanden. Gamle adgangskoder kom med indpakket frem for gemt råt, så de eksisterende medlemmer kunne logge ind uden nulstilling. Græsk er kanonisk, med accent- og slut-sigma-foldning i hver kundesøgning, så et navn kan findes, uanset hvordan det tastes.