Badr

Kapsalon Reserveringen

Reserveringssysteem met bevestigingsmails en een beveiligd dashboard voor de barbier.

Homepage van barbershop The Blade met een knop Book your appointment

Probleem

Veel barbiers regelen afspraken handmatig via WhatsApp of telefoon. Dat werkt met een klein aantal klanten, maar wordt lastig zodra het aantal boekingen groeit. Het is ook onhandig voor de klant, die tijdens openingstijden moet bellen en op een bevestiging moet wachten. Een reserveringssysteem lost beide problemen op.

Aanpak

Net als bij mijn vorige project werkte ik documentation-first: ik schreef een projectomschrijving en bepaalde de MVP voordat ik code aanraakte. Deze keer introduceerde ik ook feature-specificaties: documenten die elke feature beschrijven met een user story en acceptatiecriteria. Zo wist ik precies wanneer een feature af was, zonder onnodige extra's toe te voegen.

Als database gebruikte ik Supabase (Postgres), voor de reserveringen en een rate-limit-tabel tegen spam. Voor e-mailnotificaties gebruikte ik Resend, waarmee ik bij elke boeking e-mails op basis van een template naar zowel de klant als de barbier kon sturen.

Uitdaging

Ik ben lang bezig geweest met het debuggen van een probleem met Row-Level Security (RLS) in Supabase. Nadat ik het had aangezet, werkten mijn queries niet meer, maar in plaats van een foutmelding kreeg ik gewoon een lege array terug. De les: plan je RLS-policies altijd voordat je de databaselaag bouwt.

Resultaat

Het eindresultaat is een volledig werkend reserveringssysteem met een intuïtief, beveiligd dashboard. Klanten boeken hun favoriete tijdslot en de barbier krijgt een melding met de details. Vanuit het dashboard kan de barbier alle reserveringen bekijken, filteren op status of datum en boekingen annuleren wanneer dat nodig is.

Reserveringsformulier met velden voor naam, telefoon, e-mail, dienst, datum en tijdslot
Dashboard van de barbier met reserveringen per datum en tijdslot, en filters op status en datum