Spring naar inhoud

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

Publiek

Iedereen, zonder login

Kliniek-medewerker

Ingelogde medewerker (arts/assistent/admin) van een kliniek

Kliniek-admin

Admin-rol binnen een kliniek (volledige beheer-rechten)

Patiënt

Patiënt met magic-link sessie

Super-admin

Platform-beheerder (Olof) — toegang tot alle tenants

Cron-job

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

/Publiek

Marketing landing

Sales-driven hero met €99 vs €1500 vergelijking

/prijzenPubliek

Prijzen

Plan, comparison tabel en FAQ

/demoPubliek

Demo modus

Tour-pagina voor prospects zonder signup

Klantcases

Social proof — klantcases

/helpPubliek

Help center

32 artikelen in 8 categorieën

/help/[slug]Publiek

Help artikel

Individueel article (bv. /help/2fa-instellen)

/api-docsPubliek

API documentatie

REST endpoints met methods + auth-levels

/privacyPubliek

Privacyverklaring

AVG verklaring per tenant

/statusPubliek

Status pagina

Real-time component health

/changelogPubliek

Changelog

Product release notes timeline

/aanmeldenPubliek

Tenant signup

Aanmeldformulier voor nieuwe klinieken

/loginPubliek

Login

Google SSO + 2FA

/2fa/setupKliniek-medewerkerKliniek-admin

2FA setup

QR-code + recovery codes

/2fa/verifyKliniek-medewerkerKliniek-admin

2FA verify

TOTP code of recovery code invoer

Patiënt-facing

Boeking + portaal voor patiënten van een kliniek

/boekenPubliek

Online boeken

Patient kan zelf afspraak plannen

/portaalPubliek

Portaal login

Email-input voor magic-link

Magic-link callback

Token verificatie

Mijn afspraken

Patient ziet eigen afspraken

/vragenlijst/[token]Publiek

Vragenlijst invullen

Token-based, geen login

Kliniek-medewerker (gewone gebruiker)

Dagelijks gebruik door artsen, assistenten en admins

/dashboardKliniek-medewerkerKliniek-admin

Dashboard

Today's appointments, recent patients, quick actions

/dashboard/welkomKliniek-admin

Onboarding wizard

6-stappen setup voor nieuwe tenants

/dashboard/agendaKliniek-medewerkerKliniek-admin

Agenda

Multi-locatie kalender met drag-drop

/dashboard/patientenKliniek-medewerkerKliniek-admin

Patiënten

Lijst met search + filtering

/dashboard/patienten/nieuwKliniek-medewerkerKliniek-admin

Nieuwe patiënt

Form voor patient creation

/dashboard/patienten/[id]Kliniek-medewerkerKliniek-admin

Patient detail

Dossier met tabs (info, afspraken, facturen, verwijzingen)

/dashboard/facturenKliniek-medewerkerKliniek-admin

Facturen

Lijst + filter op status

/dashboard/facturen/[id]Kliniek-medewerkerKliniek-admin

Factuur detail

View + edit + send + Exact sync

/dashboard/verwijzingenKliniek-medewerkerKliniek-admin

Verwijzingen

Lijst van actieve en afgeronde verwijsbrieven

/dashboard/verwijzingen/nieuwKliniek-medewerkerKliniek-admin

Nieuwe verwijzing

Met Vektis AGB lookup

/dashboard/zorgaanbiedersKliniek-medewerkerKliniek-admin

Zorgaanbieders

Lokale cache van Vektis providers

/dashboard/vragenlijstenKliniek-medewerkerKliniek-admin

Vragenlijsten

Templates + responses

/dashboard/exportKliniek-medewerkerKliniek-admin

Export

CSV/Excel export

Audit log (eigen tenant)

Activity log voor eigen kliniek

/dashboard/privacyKliniek-medewerkerKliniek-admin

Privacybeleid

Internal privacy info

Kliniek-admin only

Beheer-functies — alleen voor tenant-admins

/dashboard/locatiesKliniek-admin

Locaties

Beheer kliniek-locaties

Medewerkers

User management binnen tenant

Producten

Behandelingen + prijzen

Instellingen overzicht

Hub naar alle settings

Branding

Logo, kleuren, email templates

Abonnement

Stripe checkout + portal

Workflows

Auto email/SMS workflows

Exact Online

Boekhouding koppeling

Super-admin (platform-beheer)

Alleen jij — beheer over alle tenants en het platform zelf

/superadminSuper-admin

Platform overzicht

MRR, tenants, signups, recente activiteit

Tenants beheer

Lijst + create + impersonate

/superadmin/tenants/[id]Super-admin

Tenant detail

Edit + view-as + demo data

Billing dashboard

MRR, ARR, Stripe invoices

Aanvragen

Approve/reject tenant signups

/superadmin/signups/[id]Super-admin

Aanvraag review

Detail + actions

System status

Failed workflows + stuck items

Cross-tenant audit

Platform-wide activity

REST APIs

Alle endpoints respecteren tenant-isolatie via de tenant-scoped Prisma layer

Public APIs

GET/api/statusHealth checkPubliek
GET/api/booking/configTenant + locaties (host-resolved)Publiek
GET/api/booking/availabilityBeschikbare slotsPubliek
POST/api/booking/createBoeking aanmaken (rate-limited)Publiek
POST/api/signupTenant aanvraag (rate-limited)Publiek
POST/api/portaal/request-linkPatient magic-linkPubliek
POST/api/portaal/verifyPatient login verifyPubliek

Tenant data APIs

GET/POST/api/patientenPatiënt CRUD (tenant-scoped)Kliniek-medewerker
GET/api/patienten/[id]/dossier-pdfPDF export, audit-loggedKliniek-medewerker
GET/POST/api/afsprakenAfspraken CRUD + Google syncKliniek-medewerker
GET/POST/api/facturenFacturenKliniek-medewerker
GET/POST/api/verwijzingenVerwijzingenKliniek-medewerker
GET/api/notificationsIn-app notificationsKliniek-medewerker
GET/api/tenant-exportVolledige data download (AVG)Kliniek-admin
POST/api/branding/uploadLogo upload via Vercel BlobKliniek-admin
GET/POST/api/workflowsWorkflow definitiesKliniek-admin
GET/api/onboarding/statusWizard progressKliniek-admin

Billing & integraties

POST/api/billing/checkoutStripe Checkout startenKliniek-admin
POST/api/billing/portalStripe Customer PortalKliniek-admin
POST/api/billing/webhookStripe events handlerPubliek
GET/api/google-calendar/connectOAuth flow startKliniek-medewerker
GET/api/google-calendar/callbackOAuth callbackKliniek-medewerker
GET/api/vektis/agb/[code]AGB lookup via VektisKliniek-medewerker
POST/api/exact-online/syncSync facturen naar ExactKliniek-admin

Superadmin APIs

GET/api/superadmin/dashboardPlatform metricsSuper-admin
GET/POST/api/superadmin/tenantsTenant beheerSuper-admin
GET/api/superadmin/billingMRR + ARR + invoicesSuper-admin
POST/api/superadmin/impersonateView-as cookie setSuper-admin
GET/api/superadmin/audit-logCross-tenant logSuper-admin
POST/api/superadmin/demo-dataSeed/remove demo dataSuper-admin
POST/DELETE/api/superadmin/signups/[id]/approve|rejectGoedkeuren/afwijzenSuper-admin

Cron jobs (GitHub Actions)

POST/api/workflows/executeWorkflow + onboarding emails (5 min)Cron-job
GET/api/cron/daily-schedule-emailDagelijkse schedule mail (06:00)Cron-job

Snelle 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

Email

  • SMTP (transactioneel)
  • iCalendar invites

Compliance

  • AVG
  • WGBO 20j
  • NEN 7510 principes

Laatste update: 8 juni 2026 · Volg alle wijzigingen in de changelog