Fase 0: Fundament
Doel: het absolute minimum om te kunnen starten — inloggen, basis UI, database, beveiliging.
Na deze fase: je kunt inloggen als klant en als admin.
0.1 Monorepo & Tooling
Section titled “0.1 Monorepo & Tooling”6 stories
De technische basis van het project. Alle apps en packages leven in één repository met gedeelde configuratie. Dit zorgt voor consistentie in code style, types en tooling vanaf dag 1.
| # | Rol | User Story |
|---|---|---|
| 0.1.1 | developer | pnpm monorepo met apps/web, apps/api, apps/docs en packages/shared zodat alle code in een consistente structuur leeft |
| 0.1.2 | developer | TypeScript strict mode in alle apps zodat type-fouten bij compile-time worden gevangen |
| 0.1.3 | developer | ESLint flat config met typescript-eslint strict + react-hooks zodat codekwaliteit consistent is |
| 0.1.4 | developer | Tailwind CSS + cn() helper (tailwind-merge) geconfigureerd hebben zodat ik utility-first kan stylen |
| 0.1.5 | developer | shadcn/ui als component library zodat ik snel formulieren, tabellen en dialogen kan bouwen |
| 0.1.6 | developer | Gedeelde types en Zod schemas in packages/shared zodat frontend en API dezelfde validatie gebruiken |
0.2 Database & Migraties
Section titled “0.2 Database & Migraties”3 stories
Het Supabase project met de eerste tabellen, Row Level Security en seed data. Hiermee bestaan alle kernentiteiten (klanten, honden, vaccinaties, gebruikers, diensten) en is de beveiliging op databaseniveau ingeregeld.
| # | Rol | User Story |
|---|---|---|
| 0.2.1 | developer | Supabase project met de eerste migratie (clients, dogs, vaccinations, users, services tabellen) zodat de kernentiteiten bestaan |
| 0.2.2 | developer | RLS policies op alle tabellen zodat klanten alleen eigen data zien en admins alles kunnen inzien |
| 0.2.3 | developer | services tabel met seed data (alle diensten + prijzen) zodat het systeem weet welke diensten bestaan |
0.3 Authenticatie
Section titled “0.3 Authenticatie”5 stories
Registratie en login voor klanten en admins via Supabase Auth met PKCE flow. Inclusief wachtwoord-reset, JWT-verificatie op de API en role-based routing zodat klanten en admins elk hun eigen omgeving zien.
| # | Rol | User Story | AC |
|---|---|---|---|
| 0.3.1 | klant | Account aanmaken met email en wachtwoord zodat ik toegang krijg tot het klantportaal | PKCE flow; na registratie redirect naar /onboarding |
| 0.3.2 | klant | Wachtwoord resetten via email zodat ik weer toegang krijg | Reset link verloopt na 1 uur |
| 0.3.3 | admin | Inloggen met email + wachtwoord of magic link zodat ik het admin panel kan gebruiken | — |
| 0.3.4 | developer | Auth middleware op alle API routes (behalve /health en /payments/webhook) met JWT verificatie via getUser() | — |
| 0.3.5 | developer | Role-based routing (klant vs. admin) zodat gebruikers naar het juiste dashboard gaan | — |
0.4 API Basis
Section titled “0.4 API Basis”3 stories
De Hono API op Cloudflare Workers met auth middleware, CORS-beveiliging en Zod-validatie. Alle API-routes zijn beveiligd, behalve /health en de webhook. Foutmeldingen zijn generiek — geen interne details naar de client.
| # | Rol | User Story |
|---|---|---|
| 0.4.1 | developer | Hono API op CF Workers met auth middleware, CORS (beperkt tot APP_ORIGIN) en generieke error handling |
| 0.4.2 | developer | Zod input validatie op alle API endpoints |
| 0.4.3 | developer | /health endpoint zonder auth |
0.5 Basis UI
Section titled “0.5 Basis UI”3 stories
De shell van de applicatie: responsive layouts voor klant en admin met navigatie, en i18n-infrastructuur (NL, EN, ES, Papiamento) zodat alle UI-teksten vertaalbaar zijn. Nog geen functionele pagina’s — alleen de structuur.
| # | Rol | User Story |
|---|---|---|
| 0.5.1 | klant | Responsive layout met navigatie (dashboard, honden, boekingen, facturen, account) |
| 0.5.2 | admin | Aparte admin layout met navigatie (dashboard, klanten, honden, boekingen, facturen, instellingen) |
| 0.5.3 | developer | i18n-infrastructuur (react-i18next) met NL, EN, ES en Papiamento zodat alle UI-teksten vertaalbaar zijn |
0.6 CI/CD
Section titled “0.6 CI/CD”1 story
GitHub Actions workflows die bij elke push automatisch web, API en docs builden en deployen naar Cloudflare. Vanaf dit punt is elke merge naar main direct live.
| # | Rol | User Story |
|---|---|---|
| 0.6.1 | developer | GitHub Actions workflows voor web, API en docs met automatische deploy naar Cloudflare |