Zurück zum Portfolio
FitRoom Experience — Fitnessstudio-Website & Mitgliederplattform

FitRoom Experience — Fitnessstudio-Website & Mitgliederplattform

FitRoom Experience brauchte ein öffentliches Gesicht und die Software, die den Betrieb dahinter führt — die Seite ist beides. Vorn steht ein zweisprachiger Onepager: Hero, elf Leistungen, der aktuelle Wochenplan, ein Über-uns-Abschnitt und Kontakt, dazu eine Mitgliedschaftsseite mit zwanzig Paketen und neun Angeboten von der gedruckten Preisliste der Inhaberin. Hinter der Anmeldung registriert sich ein Mitglied ohne Passwortwahl, bucht aus einem Plan, der ein ganzes Quartal vorausläuft, kommt bei vollem Kurs auf die Warteliste, legt eine feste wöchentliche Buchung an, die sich selbst erneuert, sieht Gezahltes und Offenes und kann die eigenen Daten exportieren oder löschen. Die Inhaberin erhält siebzehn Backoffice-Bildschirme: Kundinnen, Pakete, Kursarten, Zeitplan, Schließtage, Angebote, Seiteninhalte, Abos, Zahlungen, Schulden samt Alterung, die Anwesenheitsliste, einen Check-in-Kiosk für ein Tablet an der Tür, ein E-Mail-Protokoll mit erneutem Versand sowie Statistiken — Umsatz, Auslastungs-Heatmap, Teilnahme nach Kursfamilie, auslaufende Abos und CSV-Export. Neunzehn E-Mail-Vorlagen in beiden Sprachen laufen über einen mitgelieferten PHPMailer mit Wiederholungs-Backoff. Darunter liegt reines PHP 8.5 auf MySQL über vierundvierzig Tabellen, mit Griechisch als kanonischer Sprache: kein Framework, kein Composer, kein Build-Schritt.

Technologien

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

Herausforderungen

Ein Kursplan ist kein Kalender. Ein Kurs hat Kapazität, eine Warteliste, Guthaben, das ihn bezahlt, und einen Schließtag, der ihn absagen kann — und die Inhaberin brauchte all das auf dem einen Bildschirm, den sie ohnehin nutzt. Das Studio hatte zudem 158 Mitglieder auf der alten Website, die sich vom ersten Tag an anmelden können mussten.

Lösungen

Guthaben, Buchungen und Geld sind ein Modell statt dreier: Eine Kursabsage nimmt ihre Belastung mit, und eine Rückerstattung trägt die Stornierung gleich mit. Das Fenster für wiederkehrende Buchungen leitet sich aus dem Buchungshorizont ab, statt eine eigene Einstellung zu sein — so können beide nicht auseinanderlaufen. Alte Passwörter wurden umhüllt übernommen statt roh gespeichert, sodass die bestehende Mitgliedschaft sich ohne Zurücksetzen anmelden konnte. Griechisch ist kanonisch, mit Akzent- und Schluss-Sigma-Faltung in jeder Kundensuche, damit ein Name findbar bleibt, wie immer er getippt wird.