Projectoverzicht
Als onderdeel van het Skills Integration Lab (SKIL) bij Thomas More heeft ons team een uitgebreid B&B-beheerplatform ontwikkeld voor Chez Natalie. Binnen een Agile/Scrum-structuur heb ik diverse rollen op mij genomen: van het opzetten van de backend-architectuur en de Docker DevOps-omgeving tot het bouwen van geavanceerde interactieve features zoals visuele editors en planningsmotoren.
1. Database-architectuur & Schema-ontwerp
Ik heb de volledige databaselaag vanaf nul ontworpen en geïmplementeerd met behulp van Laravel Eloquent ORM. De architectuur is volledig gevalideerd tegen de behoeften van de klant en genormaliseerd om robuuste relationele workflows te garanderen.
Database Highlights:
- Gebruikers & Toegang: De standaard Laravel users-tabel uitgebreid om gekoppelde rollen en gender-relaties te ondersteunen.
- Boekingsmotor: Ontwerp van kamercategorieën, seizoensgebonden prijsperiodes, boekingsrestricties en seeders om dubbele boekingen te voorkomen.
- Recreatiesystemen: Aparte entiteiten en relatietabellen opgezet voor fietsverhuur, yoga-lesschema’s en yoga-abonnementen.
Ons database-ontwerp ontving een uitstekende 9.5 / 10 evaluatie van de examinatoren:
“Groep 601 heeft een zeer professionele en uitgebreide database-architectuur opgeleverd. Het project omvat een complexe scope, waaronder kamerboekingen, fietsverhuur, yogalessen en een mailtemplatesysteem. De codekwaliteit is uitstekend, met een sterke naleving van de Laravel-standaarden en duidelijke architecturale keuzes.”
2. Core Feature Engineering
Dynamische Mailing Template Maker & Queue Backend
Om toekomstige API-depreciatie te voorkomen, heb ik zelf een geavanceerde visuele WYSIWYG-maileditor en een veerkrachtig backend-mailwachtrijsysteem gebouwd:
- Placeholder-editor: Hiermde kunnen beheerders dynamische variabelen (zoals
{{client_name}},{{booking_date}}) in de mailinhoud en de onderwerpregel plaatsen. - Slimme Variabele-filtering: Beschikbare placeholders worden contextueel gefilterd op basis van de gebeurtenis (bijv. kamergegevens worden verborgen bij annulering van een yogales om validatiefouten te voorkomen).
- Flexibele Delay Engine: Een intuïtieve UI-selector voor het instellen van verzendvertragingen (direct verzenden, of X uur/dagen voor of na een evenement).
- Resiliente Wachtrij: Aangedreven door Laravel Queues om een gegarandeerde bezorging, persistentie bij serverrestarts en automatische placeholder-vervanging bij verzending te waarborgen.
Yogadocenten Lesbeheer & Dashboard
Ontwikkeling van een uitgebreide administratieve werkomgeving en dashboard voor yoga-instructeurs:
- Intelligent Herstel (Reinstating): Een herstelknop voor geannuleerde lessen die automatisch controleert of de betreffende zaal op dat moment nog wel beschikbaar is.
- Dynamische Zaalbezetting: Live bezettingsoverzichten die asynchroon updaten zodra de datum- of tijdvelden worden gewijzigd.
- Openingsuren-validatie: Regels die starttijden en lesduur automatisch valideren en beperken op basis van de operationele openingsuren.
Klant Review Module
Een premium feedbackmodule waarmee klanten na hun boeking beoordelingen en tekstuele feedback kunnen achterlaten:
- Beveiliging & Anti-Spam: Unieke ULIDs voor review-koppelingen om te garanderen dat alleen geverifieerde gasten exact één review per boeking kunnen indienen.
- Databeheer: Ontwikkeling van de database-modellen en seeders, inclusief foutafhandeling (zoals het correct tonen van een
0.0score in plaats van lege waarden als er nog geen reviews zijn).
3. UI/UX & Interactieve Kalender-upgrades
Om beheerders en docenten een naadloze ervaring te bieden, heb ik dynamic dashboards ontwikkeld met Tailwind CSS en FluxUI:
Dashboards & Kalendersystemen
- Gepersonaliseerde Statistieken: Dashboards met snelle statistieken, planningen en actieve boekingen.
- Abstracte Kalender-integratie: Integratie van een op maat gemaakte, responsieve dagschema-kalender op het dashboard.
- Realtime Tijdlijn & Auto-scroll: Een dynamische rode tijdsindicator die de huidige tijd toont, inclusief automatische scrolling naar het actuele tijdstip bij het laden.
- Statusindicatoren: Duidelijke badging en visuele arcering in de kalender die in één oogopslag tonen of een yogales geannuleerd is.
UI Kwaliteitsverbeteringen
- Floating Action Button (FAB): Een zwevende sneltoets op het boekingsoverzicht waarmee gebruikers direct een nieuwe boeking kunnen starten.
- Sticky Layouts: Een modern, zwevend navigatie-paneel voor instellingen en een zwevende actiebalk, waardoor grote formulieren makkelijk op te slaan zijn zonder te scrollen.
- Custom Errorpagina’s: Op maat gemaakte pagina’s voor 403-, 404- en 500-fouten met slimme redirects (bijv. niet-ingelogde gebruikers automatisch omleiden naar
/loginbij een 403-fout).
4. DevOps, QA & Kwaliteitsgarantie
Om de productiviteit van het team te verhogen en de codebase stabiel te houden, heb ik de leiding genomen over onze ontwikkelomgeving en geautomatiseerde quality gates:
Lokale Ontwikkelomgeving
- Laravel Sail: Volledige Docker-ondersteuning geoptimaliseerd voor Linux-ontwikkelaars, wat zorgt voor een snelle en stabiele workflow.
- Vite Hot-Reloading: Vite-configuratie binnen Docker om frontend-updates direct en naadloos te renderen tijdens het ontwikkelen.
CI/CD Pipeline & Quality Gates
- Static Code Analysis: Automatische codestijlanalyse via Laravel Pint om code-stijlregels en Laravel best practices af te dwingen op elke commit.
- Uitgebreide Testsuite: Feature-tests (bijvoorbeeld voor asynchrone wachtrijen zonder manuele e-mailtriggers) met in totaal meer dan 300+ assertions die automatisch draaien bij elke Pull Request.
- Pull Request DoD: Het opstellen van een “Definition of Done”-template in GitHub om kwaliteitsnormen vóór het mergen te garanderen.
- Security Audits & Hardening: Implementatie van Content Security Policy (CSP) headers tegen XSS, standaardisatie van databasetabellen en het verhogen van rate limits op Mollie-endpoints om API-blokkades te voorkomen.
