Fase 2: Testdag + Daycare
24 user stories, 12 scenario’s + 2 edge cases.
S-2.1 Klant boekt een testdag
Section titled “S-2.1 Klant boekt een testdag”Nieuwe hond doorloopt de verplichte testdag voordat andere diensten beschikbaar zijn.
Dekt: 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.6
Voorwaarden: Klant heeft hond zonder testdag (trial_day_passed = false)
- Ga naar
/bookings/new. Check dat bij honden zonder testdag alleen de optie “Testdag” zichtbaar is. Andere diensten zijn geblokkeerd met melding. - Kies “Testdag”
- Selecteer hond. Check dat alleen honden zonder goedgekeurde testdag getoond worden.
- Ga naar datum kiezen. Check dat alleen ma, di, do, vr selecteerbaar zijn.
- Check dat woensdag, zaterdag en zondag grijs/niet kiesbaar zijn.
- Selecteer een datum. Check dat het systeem capaciteit controleert (daycare geboekt + testdagen <= limiet).
- Bekijk overzicht. Check prijs: 35 AWG voor de eerste hond.
- Voeg een tweede hond toe (ook zonder testdag). Check prijs: 17,50 AWG voor de 2e hond (50% korting).
- Voeg een derde hond toe. Check prijs: 17,50 AWG voor de 3e hond. Totaal: 35 + 17,50 + 17,50 = 70 AWG exclusief belasting.
- Check dat BBO (6%) en BAZV (1,5%) apart getoond worden in het overzicht.
- Klik “Bevestigen en betalen”. Factuur + Sentoo betaallink.
- Betaal. Boeking status wordt
pending(wacht op bevestiging hotel). - Controleer dat de testdag meetelt in de daycare capaciteit. Ga naar
/adminen check dat de teller klopt (bijv. “29/40 honden” ipv “28/40”). - Check de daycare limiet: maximaal 40 honden per dag (inclusief testdagen).
Resultaat: Testdag alleen op juiste dagen, correcte prijsberekening met drie honden, belastingen apart getoond, telt mee in capaciteit (max 40).
S-2.2 Admin keurt testdag goed/af
Section titled “S-2.2 Admin keurt testdag goed/af”Na de testdag keurt de admin de hond goed of af.
Dekt: 2.1.5
Voorwaarden: Testdag is afgerond
- Admin opent
/admin/bookings/[id]van de testdag-boeking - Klik “Testdag beoordelen”
- Goedkeuren: stel
trial_day_passed = trueen kiesgroup_play_approved(ja of nee) - Check dat klant notificatie ontvangt dat hond is goedgekeurd
- Check dat klant nu daycare en boarding kan boeken op
/bookings/new - Afkeuren (andere hond): markeer als afgekeurd met reden
- Check dat klant notificatie ontvangt met reden
- Check dat klant geen daycare, boarding of training kan boeken voor die hond
Resultaat: Goedkeuring opent diensten, afkeuring blokkeert ze, klant wordt geinformeerd.
S-2.3 Klant boekt daycare drop-in
Section titled “S-2.3 Klant boekt daycare drop-in”Klant boekt een daycare dag met capaciteitscheck.
Dekt: 2.2.1, 2.2.2, 2.2.3, 2.2.4
Voorwaarden: Hond met goedgekeurde testdag en geldige vaccinaties
- Ga naar
/bookings/new, kies “Daycare Drop-in” - Check dat alleen honden met
trial_day_passed = truegetoond worden - Selecteer hond. Systeem checkt vaccinaties (geldig).
- Selecteer datum. Systeem checkt capaciteit (daycare geboekt + testdagen <= 40).
- Als vol: controleer dat alternatieve data in dezelfde week worden getoond
- Selecteer een beschikbare datum
- Check stap “Bijzondere instructies”: er verschijnt een vrij tekstveld per hond
- Vul bijzondere instructies in, bijv. “Buddy mag geen rawhide treats”
- Ga naar overzicht. Check prijs: 35 AWG per hond per dag (geen korting bij meerdere honden), BBO en BAZV apart.
- Bevestig en betaal
- Probeer te boeken met een hond met verlopen vaccinatie. Geblokkeerd.
- Check dat de ingevoerde bijzondere instructies zichtbaar zijn bij de admin check-in (zie S-2.5)
Resultaat: Capaciteitscheck werkt, vaccinatiecheck blokkeert verlopen vaccins, bijzondere instructies opgeslagen en zichtbaar bij check-in, alternatieven getoond bij vol.
S-2.4 Openingstijden validatie
Section titled “S-2.4 Openingstijden validatie”Systeem valideert boekingen tegen het vaste weekrooster.
Dekt: 2.3.1, 2.3.2
Voorwaarden: Hardcoded openingstijden actief
- Probeer een boeking te maken buiten openingstijden. Geblokkeerd.
- Check maandag t/m vrijdag (behalve woensdag): brengen 7:00-10:00, ophalen 16:00-18:30.
- Check woensdag specifiek: alleen brengen 8:00-10:00, geen ophalen (brengen-only voor boarding honden).
- Check zaterdag specifiek: alleen brengen 8:00-10:00, geen ophalen (brengen-only voor boarding honden).
- Check zondag: volledig gesloten. Geen brengen, geen ophalen. Boeking op zondag is onmogelijk.
- Probeer op een sluitingsdag te boeken (zondag). Geblokkeerd.
Resultaat: Boekingen buiten openingstijden onmogelijk, woensdag en zaterdag correct als brengen-only, zondag volledig gesloten.
S-2.5 Check-in en check-out flow
Section titled “S-2.5 Check-in en check-out flow”Admin registreert check-in met checklist en check-out.
Dekt: 2.4.1, 2.4.2, 2.4.3, 2.4.4
Voorwaarden: Bevestigde daycare boeking voor vandaag
- Admin opent
/admin. Check “Vandaag” sectie: verwachte check-ins met naam hond en eigenaar. - Klik op de boeking, ga naar
/admin/bookings/[id] - Klik “Check-in”. Het systeem toont de 9-punten checklist als visuele checkboxes:
- Vaccinaties up-to-date (min. 7 dagen voor check-in, max 12 maanden oud)
- Vlooien/wormbehandeling binnen 30 dagen
- Hond is schoon, geen teken/vlooien zichtbaar
- Niet zwanger of loops
- Geen tekenen van ziekte of agressie
- Hond aan vaste riem (geen flexilijn)
- Medicatie in originele verpakking met etiket (indien van toepassing)
- Voedsel in ziploc zakjes gelabeld AM/PM met naam hond
- Vaccinatieboekje aanwezig
- Check dat de “Check-in” knop inactief blijft zolang niet alle 9 punten zijn afgevinkt
- Check dat onder de checklist de bijzonderheden (
special_notes) en gedragsnotities van de hond zichtbaar zijn - Check dat bijzondere instructies die de klant bij de boeking heeft ingevuld (zie S-2.3) hier zichtbaar zijn
- Vink alle 9 punten af en klik “Bevestigen”. Melding verschijnt: “Check-in voltooid”
- Check dat check-in tijdstip wordt vastgelegd
- Status wijzigt naar
checked_in - Klant ontvangt notificatie van check-in
- Later: admin klikt “Check-out” bij dezelfde boeking
- Check dat check-out tijdstip wordt vastgelegd
- Status wijzigt naar
checked_out - Klant ontvangt notificatie van check-out
Resultaat: Check-in met 9-punten visuele checklist voltooid, alle punten verplicht, bijzonderheden en instructies zichtbaar, tijdstippen vastgelegd, klant geinformeerd met bevestigingsmelding.
S-2.6 Boeking annuleren
Section titled “S-2.6 Boeking annuleren”Klant en admin annuleren boekingen onder verschillende omstandigheden.
Dekt: 2.5.1, 2.5.2, 2.5.3, 2.5.4
Voorwaarden: Bevestigde boekingen, een betaald en een onbetaald
- Klant gaat naar
/bookings/[id]van een onbetaalde boeking (statuspending). Klik “Annuleren”. Bevestigingsdialoog verschijnt. Bevestig. Boeking geannuleerd. Geen financiele gevolgen. - Klant annuleert betaalde boeking (status
confirmed). Deposit is niet-restitueerbaar. Deposit definitie: 100% bij daycare en training, 50% bij boarding. - Check dat factuurstatus wordt
cancelled - Check dat capaciteit vrijkomt na annulering
- Probeer een boeking met status
checked_inte annuleren. Annuleerknop is niet zichtbaar. - Admin annuleert namens hotel via
/admin/bookings/[id]: verplichte reden invullen. Volledige terugbetaling ongeacht deposit. - Controleer dat klant en admin notificaties ontvangen bij elke annulering
Resultaat: Annuleringsregels correct per status, deposit-logica correct (100% daycare/training, 50% boarding), admin-annulering altijd volledige terugbetaling, notificaties verstuurd.
S-2.7 Vaccinatie reminders
Section titled “S-2.7 Vaccinatie reminders”Systeem stuurt automatische vaccinatieherinneringen.
Dekt: 2.6.1, 2.6.2
Voorwaarden: Hond met vaccinatie die over 25 dagen verloopt
- Stel vaccinatie vervaldatum in op 30 dagen vanaf nu
- Wacht tot systeem check draait (of forceer handmatig)
- Check dat klant een reminder-email ontvangt
- Check dat de reminder niet dubbel wordt verstuurd (bijv. bij opnieuw draaien van de check). Systeem moet bijhouden dat er al een reminder gestuurd is.
- Admin opent
/admin/dogs, filter op “bijna verlopen”. Hond verschijnt in de lijst. - Filter op “verlopen”. Hond verschijnt na vervaldatum.
Resultaat: Reminder 30 dagen voor verval, geen dubbele reminders, admin filters werken correct.
S-2.8 Admin dagelijkse operatie dashboard
Section titled “S-2.8 Admin dagelijkse operatie dashboard”Admin bekijkt de dagelijkse operatie in het dashboard.
Dekt: 2.7.1, 2.7.2
Voorwaarden: Boekingen voor vandaag en komende dagen
- Open
/admin - Check “Vandaag” sectie met vier blokken:
- Check-ins verwacht: lijst met naam hond + naam eigenaar
- Check-outs verwacht: lijst met naam hond + naam eigenaar
- Aanwezige honden: alle honden met status
checked_in - Daycare capaciteit: indicator bijv. “28/40 honden”
- Ga naar
/admin/bookings, kalenderweergave (standaard) - Check kleurcodering per dienst (testdag, daycare, boarding, training)
- Schakel naar lijstweergave
- Filter op status (pending, confirmed, checked_in, checked_out, cancelled)
- Filter op datum (van/tot)
- Filter op dienst (testdag, daycare, boarding, training)
- Check dat per boeking zichtbaar is: hond, eigenaar, dienst, datum, status, bedrag
Resultaat: Dashboard toont dagelijkse operatie met vier blokken, kalender en lijst beschikbaar met kleurcodering, filters werken.
S-2.9 Gedragskenmerken en extra info
Section titled “S-2.9 Gedragskenmerken en extra info”Klant voegt gedetailleerde gedragsinformatie en extra gegevens toe.
Dekt: 2.8.1, 2.8.2, 2.8.3, 2.8.4
Voorwaarden: Klant met hond, onboarding voltooid
- Open
/dogs/[id]/edit, ga naar gedragssectie - Check dat alle 18 persoonlijkheidskenmerken als checkboxes beschikbaar zijn:
- Speels
- Kalm
- Energiek
- Verlegen
- Dominant
- Onderdanig
- Vriendelijk met honden
- Vriendelijk met mensen
- Angstig
- Beschermend
- Onafhankelijk
- Aanhankelijk
- Vocaal (blaft veel)
- Rustig
- Graver
- Springer
- Ontsnapper
- Voedselagressief
- Check dat naast de checkboxes een vrij tekstveld voor gedragsnotities beschikbaar is
- Vink een paar kenmerken aan, vul tekstveld in, opslaan
- Ga naar medische sectie. Geef toestemming voor dierenarts inschakelen (ja/nee toggle)
- Vul maximaal bedrag in. Check dat het veld AWG format accepteert (bijv. “AWG 500,00”).
- Vul datum laatste vlooien/wormbehandeling in
- Opslaan en check dat alles bewaard is
- Ga naar bezoekhistorie op
/dogs/[id]. Controleer eerdere bezoeken: datum, dienst, status per boeking.
Resultaat: Alle 18 kenmerken beschikbaar als checkboxes, dierenarts toestemming vastgelegd met max bedrag in AWG, vlooienbehandeling datum opgeslagen, bezoekhistorie zichtbaar.
S-2.10 Automatische betaalherinneringen
Section titled “S-2.10 Automatische betaalherinneringen”Systeem stuurt automatische herinneringen bij onbetaalde facturen.
Dekt: 2.8.5, 2.8.6
Voorwaarden: Onbetaalde factuur, 3+ dagen oud
- Maak factuur die 3 dagen onbetaald is. Check dat eerste herinnering-email verstuurd wordt.
- Na 7 dagen: check dat tweede herinnering-email verstuurd wordt.
- Na 14 dagen: check dat admin notificatie ontvangt. Deze verschijnt op het admin dashboard (
/admin) onder “Meldingen”. - Check dat de dag-14 notificatie niet alleen per email gaat maar ook in het dashboard zichtbaar is voor handmatige opvolging.
Resultaat: Herinneringen op dag 3 en 7 per email, admin alert op dag 14 in dashboard meldingen.
S-2.11 Admin maakt klant/boeking aan namens klant
Section titled “S-2.11 Admin maakt klant/boeking aan namens klant”Admin registreert een telefonische klant en maakt boeking.
Dekt: 2.8.7, 2.8.8, 2.8.10
Voorwaarden: Admin ingelogd, klant belt op
- Ga naar
/admin/clients/new - Vul klantgegevens in: naam, telefoon, WhatsApp, adres, noodcontact
- Optie om direct een hond toe te voegen
- Opslaan. Klantaccount bestaat nu.
- Ga naar
/admin/clients/[id]. Voeg interne notitie toe: “Klant belde, spreekt alleen Papiamento” - Check dat de interne notitie zichtbaar is voor admin en medewerker
- Check dat de interne notitie niet zichtbaar is voor de klant in het eigen portaal
- Vraag: is de notitie ook zichtbaar voor trainers? Verduidelijk rol-gebaseerde zichtbaarheid.
- Ga naar
/admin/bookings/new - Selecteer de klant (zoeken op naam/email)
- Kies dienst, selecteer hond, datum. Systeem voert dezelfde validaties uit.
- Vul bijzondere instructies in
- Factuur wordt aangemaakt. Sentoo betaallink wordt verstuurd naar klant.
Resultaat: Klant aangemaakt door admin, interne notitie zichtbaar voor admin+medewerker maar niet voor klant, boeking met factuur aangemaakt.
S-2.12 CSV export
Section titled “S-2.12 CSV export”Admin exporteert facturen en klantgegevens.
Dekt: 2.8.9
Voorwaarden: Data in het systeem, inclusief klanten met speciale tekens in naam
- Ga naar
/admin/invoices, klik “Export CSV” - Download CSV, open in Excel. Check dat de volgende kolommen aanwezig zijn:
- Factuurnummer
- Factuurdatum
- Klant naam
- Dienst
- Bedrag exclusief belasting
- BBO (6%)
- BAZV (1,5%)
- Totaal inclusief belasting
- Betaalstatus
- Betaaldatum
- Check dat unicode en speciale tekens correct worden geexporteerd (bijv. accenten, n-tilde in Spaanse namen, Papiamento namen)
- Ga naar klantenlijst, klik “Export CSV”
- Download en controleer klantgegevens
- Check dat het CSV-bestand geschikt is voor import in boekhoudprogramma
Resultaat: CSV bestanden met correcte kolommen, unicode/speciale tekens intact, geschikt voor boekhouder.
Edge cases
Section titled “Edge cases”EC-8 Testdag edge cases
Section titled “EC-8 Testdag edge cases”Grensgevallen bij de testdag als gateway.
Versterkt: S-2.1, S-2.2
- Hond met
trial_day_passed = trueprobeert opnieuw testdag te boeken. Testdag-optie wordt niet getoond (“al goedgekeurd”). - Testdag boeken op woensdag via API (omzeilt frontend). API blokkeert ook.
- Testdag boeken wanneer daycare capaciteit precies 40/40 is. Geblokkeerd (telt mee in capaciteit).
- Admin keurt af. Klant probeert nieuwe testdag. Wel toegestaan (tweede kans).
- Hond met goedgekeurde testdag maar verlopen vaccinatie. Testdag passed, maar daycare geblokkeerd door vaccin.
Resultaat: Testdag gateway werkt zowel in frontend als API, capaciteitslimiet 40 gerespecteerd, grensgevallen correct.
EC-17 Admin maakt klant aan, edge cases
Section titled “EC-17 Admin maakt klant aan, edge cases”Grensgevallen bij het aanmaken van klanten door admin.
Versterkt: S-2.11
- Admin maakt klant aan met emailadres dat al bestaat. Foutmelding.
- Admin maakt klant aan zonder email (alleen telefoon). Kan dat? Of is email verplicht voor auth?
- Admin maakt boeking namens klant die onboarding niet afgerond heeft. Geblokkeerd of toegestaan?
- Admin interne notitie. Check dat klant deze niet kan zien in eigen portaal (ook niet via API).
Resultaat: Duidelijke validatie, interne notities echt intern (ook via API gecontroleerd).