maatwerk-crm.md

Aanleiding
De opdrachtgever is al ruim twintig jaar gespecialiseerd in professionele visagie, hairstyling en special effects: van bruidsmake-up tot fotoshoots en producties. Het werk speelt zich af in midden-Nederland, waar een klein kernteam een groep vaste en freelance visagisten en stylisten aanstuurt, vaak op meerdere locaties tegelijk.
Die coordinatie liep via losse agenda's, mail en spreadsheets: foutgevoelig en niet schaalbaar zodra het aantal boekingen groeit. De vraag was een eigen, intern platform als single source of truth voor klantgegevens, afspraken en planning. Bewust gefaseerd opgebouwd in plaats van in een big bang: van een afsprakenmodule naar een volwaardig CRM.
Oplossing
Een interne back-office op Laravel met een Filament-adminpaneel, opgezet rond de dagelijkse praktijk van het team:
- Klantdossiers met kern- en contactgegevens van de klanten van het bedrijf, als centrale bron voor de rest van het systeem.
- Afsprakenbeheer: afspraken plannen, verzetten en annuleren, met overzichtsschermen voor het team en een audittrail van elke wijziging.
- Publieke boekingsflow waar klanten zelf een afspraak boeken: direct boekbare diensten naast slots die eerst langs de planner gaan, rekening houdend met gesloten locaties en feestdagen.
- Beschikbaarheid per medewerker: de vaste en freelance visagisten en stylisten geven hun beschikbaarheid en locatievoorkeuren door; een boeking op aanvraag stuurt de planner meteen een melding, zodat hij de juiste persoon kan koppelen.
- Rolgebaseerde toegang en een adminpaneel in de huisstijl van het bedrijf.
Onder de motorkap
PHP 8.4, Laravel 13 en Filament 5 op MySQL/MariaDB, met Livewire, Alpine.js en Tailwind in de frontend en SCSS waar maatwerk nodig is. Strikt TDD met Pest, SOLID en PSR-12, docblocks op elke klasse en methode, en een CI-pijplijn met tests, statische analyse en Pint.
Agenda-synchronisatie loopt via de Google API; back-ups draaien via spatie/laravel-backup en kunnen off-site weg naar S3, SFTP of Google Drive, met logging en error tracking eronder. De architectuur is gelaagd met duidelijke modulegrenzen, bewust dicht bij de Filament-defaults: een intern gereedschap waar stabiliteit voor gaat op visuele franje.
Status
In actieve ontwikkeling. De fundering staat: adminpaneel, authenticatie, rolgebaseerde toegang, CI en back-ups. De afsprakenmodule is in aanbouw; klantbeheer en GDPR-gereedschap (export, anonimisering, bewaartermijnen) staan op de rol.
legal.json
"bedrijfsnaam": "Bas de Kort",
"rechtsvorm": "eenmanszaak",
"handelsnamen": ["Bas de Kort", "LengthOfRope"],
"vestigingsadres": "Kerkeakker 3, 6674 EM Herveld, NL",
"kvk": "42038027",
"btw_id": "NL004476145B32",
"contact": { "form": "basdekort.nl/contact", "telephone": "+31628456862" },
"documenten": [ "privacy", "algemene voorwaarden", "verwerkersovereenkomst" ]
}