Platform overzicht
Alle pagina's op een rij
Sitemap met alle URL's, hun functie en wie waar toegang toe heeft. Handig voor demo's, ontwikkeling en als overzicht van wat het platform doet.
Toegangs-niveaus
Iedereen, zonder login
Ingelogde medewerker (arts/assistent/admin) van een kliniek
Admin-rol binnen een kliniek (volledige beheer-rechten)
Patiënt met magic-link sessie
Platform-beheerder (Olof) — toegang tot alle tenants
Server-to-server, beveiligd met CRON_SECRET
Hoe het in elkaar zit
Patiënt Kliniek-medewerker Olof (Super Admin)
| | |
v v v
┌───────────────┐ ┌────────────────────┐ ┌─────────────────┐
│ /boeken │ │ /dashboard/* │ │ /superadmin/* │
│ /portaal │ │ /2fa/* │ │ (alle tenants) │
│ /vragenlijst │ │ (eigen tenant) │ └────────┬────────┘
└───────┬───────┘ └─────────┬──────────┘ │
│ │ │
└──────────┬───────────────┴──────────────────────────────┘
v
┌────────────────────┐
│ Tenant Resolver │ ← subdomain (kliniek.epd.app) of custom domain
│ (proxy.ts) │ bepaalt welke tenant je ziet
└─────────┬──────────┘
v
┌────────────────────┐
│ NextAuth + 2FA │ ← login flow voor medewerkers en superadmin
└─────────┬──────────┘
v
┌────────────────────────┐
│ Tenant-scoped Prisma │ ← injecteert tenantId op elke query
│ (tenant-prisma.ts) │ impossible to leak across tenants
└─────────┬──────────────┘
v
┌────────────────────┐
│ PostgreSQL (EU) │ ← één database, tenants gescheiden via tenant_id
└────────────────────┘
Externe integraties: Stripe (billing) · Vektis (AGB) · MessageBird (SMS)
Exact Online (facturen) · Google Calendar (sync)
Vercel Blob (logo opslag)Publieke pagina's
Geen login nodig — marketing, signup, help, status
/help/[slug]PubliekHelp artikel
Individueel article (bv. /help/2fa-instellen)
Patiënt-facing
Boeking + portaal voor patiënten van een kliniek
/vragenlijst/[token]PubliekVragenlijst invullen
Token-based, geen login
Kliniek-medewerker (gewone gebruiker)
Dagelijks gebruik door artsen, assistenten en admins
Dashboard
Today's appointments, recent patients, quick actions
/dashboard/patienten/[id]Kliniek-medewerkerKliniek-adminPatient detail
Dossier met tabs (info, afspraken, facturen, verwijzingen)
/dashboard/facturen/[id]Kliniek-medewerkerKliniek-adminFactuur detail
View + edit + send + Exact sync
Verwijzingen
Lijst van actieve en afgeronde verwijsbrieven
Zorgaanbieders
Lokale cache van Vektis providers
Kliniek-admin only
Beheer-functies — alleen voor tenant-admins
Super-admin (platform-beheer)
Alleen jij — beheer over alle tenants en het platform zelf
/superadmin/tenants/[id]Super-adminTenant detail
Edit + view-as + demo data
/superadmin/signups/[id]Super-adminAanvraag review
Detail + actions
REST APIs
Alle endpoints respecteren tenant-isolatie via de tenant-scoped Prisma layer
Public APIs
/api/statusHealth checkPubliek/api/booking/configTenant + locaties (host-resolved)Publiek/api/booking/availabilityBeschikbare slotsPubliek/api/booking/createBoeking aanmaken (rate-limited)Publiek/api/signupTenant aanvraag (rate-limited)Publiek/api/portaal/request-linkPatient magic-linkPubliek/api/portaal/verifyPatient login verifyPubliekTenant data APIs
/api/patientenPatiënt CRUD (tenant-scoped)Kliniek-medewerker/api/patienten/[id]/dossier-pdfPDF export, audit-loggedKliniek-medewerker/api/afsprakenAfspraken CRUD + Google syncKliniek-medewerker/api/facturenFacturenKliniek-medewerker/api/verwijzingenVerwijzingenKliniek-medewerker/api/notificationsIn-app notificationsKliniek-medewerker/api/tenant-exportVolledige data download (AVG)Kliniek-admin/api/branding/uploadLogo upload via Vercel BlobKliniek-admin/api/workflowsWorkflow definitiesKliniek-admin/api/onboarding/statusWizard progressKliniek-adminBilling & integraties
/api/billing/checkoutStripe Checkout startenKliniek-admin/api/billing/portalStripe Customer PortalKliniek-admin/api/billing/webhookStripe events handlerPubliek/api/google-calendar/connectOAuth flow startKliniek-medewerker/api/google-calendar/callbackOAuth callbackKliniek-medewerker/api/vektis/agb/[code]AGB lookup via VektisKliniek-medewerker/api/exact-online/syncSync facturen naar ExactKliniek-adminSuperadmin APIs
/api/superadmin/dashboardPlatform metricsSuper-admin/api/superadmin/tenantsTenant beheerSuper-admin/api/superadmin/billingMRR + ARR + invoicesSuper-admin/api/superadmin/impersonateView-as cookie setSuper-admin/api/superadmin/audit-logCross-tenant logSuper-admin/api/superadmin/demo-dataSeed/remove demo dataSuper-admin/api/superadmin/signups/[id]/approve|rejectGoedkeuren/afwijzenSuper-adminCron jobs (GitHub Actions)
/api/workflows/executeWorkflow + onboarding emails (5 min)Cron-job/api/cron/daily-schedule-emailDagelijkse schedule mail (06:00)Cron-jobSnelle directe links
Tech-stack samenvatting
Frontend
- Next.js 16
- React 19
- TailwindCSS
- TipTap
Backend
- Next.js API routes
- Prisma 7
- PostgreSQL
Hosting
- Vercel (auto-scaling)
- Supabase (DB)
- GitHub Actions cron
Auth
- NextAuth v5
- Google SSO
- TOTP 2FA
Integraties
- Stripe
- MessageBird SMS
- Vektis AGB
- Exact Online
Storage
- Vercel Blob
- AES-256-GCM BSN encryptie
- SMTP (transactioneel)
- iCalendar invites
Compliance
- AVG
- WGBO 20j
- NEN 7510 principes
Laatste update: 8 juni 2026 · Volg alle wijzigingen in de changelog