Skip to content

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.


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.

#RolUser Story
0.1.1developerpnpm monorepo met apps/web, apps/api, apps/docs en packages/shared zodat alle code in een consistente structuur leeft
0.1.2developerTypeScript strict mode in alle apps zodat type-fouten bij compile-time worden gevangen
0.1.3developerESLint flat config met typescript-eslint strict + react-hooks zodat codekwaliteit consistent is
0.1.4developerTailwind CSS + cn() helper (tailwind-merge) geconfigureerd hebben zodat ik utility-first kan stylen
0.1.5developershadcn/ui als component library zodat ik snel formulieren, tabellen en dialogen kan bouwen
0.1.6developerGedeelde types en Zod schemas in packages/shared zodat frontend en API dezelfde validatie gebruiken

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.

#RolUser Story
0.2.1developerSupabase project met de eerste migratie (clients, dogs, vaccinations, users, services tabellen) zodat de kernentiteiten bestaan
0.2.2developerRLS policies op alle tabellen zodat klanten alleen eigen data zien en admins alles kunnen inzien
0.2.3developerservices tabel met seed data (alle diensten + prijzen) zodat het systeem weet welke diensten bestaan

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.

#RolUser StoryAC
0.3.1klantAccount aanmaken met email en wachtwoord zodat ik toegang krijg tot het klantportaalPKCE flow; na registratie redirect naar /onboarding
0.3.2klantWachtwoord resetten via email zodat ik weer toegang krijgReset link verloopt na 1 uur
0.3.3adminInloggen met email + wachtwoord of magic link zodat ik het admin panel kan gebruiken
0.3.4developerAuth middleware op alle API routes (behalve /health en /payments/webhook) met JWT verificatie via getUser()
0.3.5developerRole-based routing (klant vs. admin) zodat gebruikers naar het juiste dashboard gaan

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.

#RolUser Story
0.4.1developerHono API op CF Workers met auth middleware, CORS (beperkt tot APP_ORIGIN) en generieke error handling
0.4.2developerZod input validatie op alle API endpoints
0.4.3developer/health endpoint zonder auth

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.

#RolUser Story
0.5.1klantResponsive layout met navigatie (dashboard, honden, boekingen, facturen, account)
0.5.2adminAparte admin layout met navigatie (dashboard, klanten, honden, boekingen, facturen, instellingen)
0.5.3developeri18n-infrastructuur (react-i18next) met NL, EN, ES en Papiamento zodat alle UI-teksten vertaalbaar zijn

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.

#RolUser Story
0.6.1developerGitHub Actions workflows voor web, API en docs met automatische deploy naar Cloudflare