Πίσω στο Portfolio
Η αρχική σελίδα του FitRoom Experience: σκούρα κεφαλίδα με το λευκό λογότυπο FitRoom, τους συνδέσμους Home, Services, Schedule, Memberships, About us και Contact, τον σύνδεσμο γλώσσας «Ελληνικά» και ένα πορτοκαλί κουμπί «Sign in»· από κάτω, μια σκοτεινή φωτογραφία του χώρου, ένα μαύρο rack με μπάρα κάτω από μονόζυγα οροφής, σε τοίχους από μοριοσανίδα φωτισμένους με μπλε, με τον τίτλο «Training becomes experience», τη φράση «Functional training, Clinical Pilates and holistic wellbeing in Serres.» και δύο κουμπιά, ένα πορτοκαλί «Start here» και ένα περιγραμμένο «See the schedule».
Άνοιγμα του fitroomgymexp.gr σε νέα καρτέλα

FitRoom Experience — Ιστοσελίδα Γυμναστηρίου & Πλατφόρμα Συνδρομών

Επισκόπηση

Το FitRoom Experience χρειαζόταν δημόσιο πρόσωπο και το λογισμικό που τρέχει την επιχείρηση από πίσω, οπότε η ιστοσελίδα είναι και τα δύο. Το μπροστινό μέρος είναι μια δίγλωσση σελίδα — hero, έντεκα υπηρεσίες, το ζωντανό εβδομαδιαίο πρόγραμμα, ενότητα about και επικοινωνία — μαζί με σελίδα συνδρομών που φέρει είκοσι πακέτα και εννέα προσφορές από τον έντυπο τιμοκατάλογο της ιδιοκτήτριας. Πίσω από τη σύνδεση, η συνδρομήτρια εγγράφεται χωρίς να επιλέξει κωδικό, κλείνει από πρόγραμμα που προχωρά ένα ολόκληρο τρίμηνο, μπαίνει σε λίστα αναμονής όταν το μάθημα γεμίσει, ορίζει μία σταθερή εβδομαδιαία κράτηση που ανανεώνεται μόνη της, βλέπει τι έχει πληρώσει και τι οφείλει, και μπορεί να εξάγει ή να διαγράψει τα δεδομένα της. Η ιδιοκτήτρια έχει δεκαεπτά οθόνες back office: πελάτες, πακέτα, τύπους μαθημάτων, το πρόγραμμα, αργίες, προσφορές, περιεχόμενο σελίδων, συνδρομές, πληρωμές, οφειλές και την παλαίωσή τους, το παρουσιολόγιο, kiosk check-in για tablet στην πόρτα, αρχείο email με επαναποστολή, και στατιστικά — έσοδα, heatmap πληρότητας, προσέλευση ανά οικογένεια μαθημάτων, συνδρομές που λήγουν και εξαγωγή CSV. Δεκαεννέα πρότυπα email και στις δύο γλώσσες τρέχουν πάνω σε ενσωματωμένο PHPMailer με επαναλήψεις. Από κάτω είναι καθαρή PHP 8.5 σε MySQL με σαράντα τέσσερις πίνακες, με τα Ελληνικά ως κανονική γλώσσα: χωρίς framework, χωρίς Composer, χωρίς build step.

Προκλήσεις

Το πρόγραμμα ενός γυμναστηρίου δεν είναι ημερολόγιο. Ένα μάθημα έχει χωρητικότητα, λίστα αναμονής, credits που το πληρώνουν και μια αργία που μπορεί να το ακυρώσει, και η ιδιοκτήτρια τα χρειαζόταν όλα αυτά στη μία οθόνη που ήδη χρησιμοποιεί. Το γυμναστήριο είχε επίσης 158 μέλη στην προηγούμενη ιστοσελίδα που έπρεπε να μπορούν να συνδεθούν από την πρώτη μέρα.

Λύσεις

Τα credits, οι κρατήσεις και τα χρήματα είναι ένα μοντέλο αντί για τρία, οπότε η ακύρωση μαθήματος παίρνει μαζί της τη χρέωση και η επιστροφή χρημάτων σέρνει μαζί της την ακύρωση. Το παράθυρο των επαναλαμβανόμενων κρατήσεων παράγεται από τον ορίζοντα κρατήσεων αντί να είναι δική του ρύθμιση, ώστε τα δύο να μην ξεφύγουν. Οι παλιοί κωδικοί μεταφέρθηκαν τυλιγμένοι αντί να αποθηκευτούν ακατέργαστοι, οπότε τα υπάρχοντα μέλη συνδέθηκαν χωρίς επαναφορά. Τα Ελληνικά είναι η κανονική γλώσσα, με εξομάλυνση τόνων και τελικού σίγμα σε κάθε αναζήτηση πελάτη, ώστε ένα όνομα να βρίσκεται όπως κι αν γραφτεί.