Liefdevolle Blik Logo

Liefdevolle Blik — Featurelijst

Bijgewerkt: 9 maart 2026

Epic 1: Authenticatie & Gebruikersbeheer

LB-1: Gebruikersregistratie — ✅ Done

  • ✅ Registratieformulier: voornaam, achternaam, e-mail, 06-nummer, wachtwoord
  • ✅ E-mailverificatie via Supabase Auth
  • ✅ Telefoonnummer validatie (alleen 06-nummers)
  • ✅ WhatsApp opt-in checkbox
  • Prioriteit: Must-have | Punten: 5

LB-2: Inloggen — ✅ Done

  • ✅ E-mail + wachtwoord login
  • ✅ Sessie management via Supabase SSR
  • ✅ Magic link alternatief (Supabase OTP)
  • Prioriteit: Must-have | Punten: 3

LB-3: Wachtwoord vergeten / reset — ✅ Done

  • ✅ Supabase Auth heeft reset-flow ingebouwd
  • ✅ Wachtwoord-vergeten pagina en reset-callback ingericht
  • Prioriteit: Must-have | Punten: 2

LB-4: Account beheer — ✅ Done

  • ✅ Profielgegevens wijzigen (/profiel)
  • ✅ WhatsApp/e-mail opt-in in schema en profiel
  • ✅ Account verwijderen (zelfservice) — via /profiel
  • Prioriteit: Should-have | Punten: 3

Epic 2: Cirkels (Groepen)

LB-5: Cirkel aanmaken — ✅ Done

  • ✅ Naam en openingsdatum instellen
  • ✅ AES-256 cirkelsleutel genereren (server-side)
  • ✅ Mentor wordt automatisch eerste lid
  • ✅ Uitnodigingscode genereren
  • ✅ Mentor mag max. 1 cirkel aanmaken
  • ✅ Admin mag meerdere cirkels aanmaken
  • ✅ Admin kan meteen mentor koppelen bij aanmaken
  • Prioriteit: Must-have | Punten: 5

LB-6: Uitnodigingen versturen — ✅ Done

  • ✅ Uitnodigingscode beschikbaar na aanmaken
  • ✅ E-mail uitnodiging via Resend met uniek token
  • ✅ Token validatie flow (verloopt na 7 dagen)
  • Prioriteit: Must-have | Punten: 5

LB-7: Cirkel deelname via uitnodiging — ✅ Done

  • ✅ Groepscode invoer op dashboard
  • ✅ Automatisch lid worden na code-verificatie
  • Prioriteit: Must-have | Punten: 3

LB-8: Groepsoverzicht / Dashboard — ✅ Done

  • ✅ Ledenrooster met avatars en initialen
  • ✅ Countdown naar openingsdatum (live)
  • ✅ Mentor gemarkeerd met gouden ring en ✨
  • ✅ Ingelogde gebruiker uitgegrijsd als "(Jij)"
  • ✅ Rol-badge (Mentor / Lid) op cirkelkaart
  • Prioriteit: Must-have | Punten: 5

Epic 3: Notities Schrijven

LB-9: Notitie schrijven modal — ✅ Done

  • ✅ Lid selecteren uit groepsrooster
  • ✅ Tekstveld met karakterteller (max 500)
  • ✅ Handschrift-lettertype (Caveat) op gelinieerd papier
  • ✅ Anonimiteit toggle (default anoniem; optioneel naam tonen)
  • ✅ Versturen-knop met laad-status
  • Prioriteit: Must-have | Punten: 5

LB-10: Client-side encryptie — ✅ Done

  • ✅ AES-256-GCM versleuteling in browser
  • ✅ Unieke IV per notitie
  • ✅ Cirkelsleutel ophalen en gebruiken
  • ✅ Alleen ciphertext + IV naar server gestuurd
  • Prioriteit: Must-have | Punten: 5

LB-11: Notitie metadata overzicht — ✅ Done

  • ✅ Schrijver ziet voor wie er geschreven is (metadata)
  • ✅ Inhoud verborgen tot opening
  • Prioriteit: Should-have | Punten: 2

Epic 4: Mentorbeheer

LB-12: Mentor dashboard — ✅ Done

  • ✅ Leden-overzicht in eigen cirkel
  • ✅ Mentor ziet notities vóór opening NIET (RLS)
  • ✅ Mentor modereert notities ná opening
  • ✅ Leden verwijderen uit cirkel
  • ✅ Openingsdatum wijzigen door mentor
  • Prioriteit: Must-have | Punten: 5

LB-13: Rapportagekanalen instellen — ✅ Done

  • ✅ E-mail notificaties toggle per cirkel
  • ⏸️ WhatsApp notificaties (Parked)
  • ✅ Test-acties beschikbaar via dashboard
  • Prioriteit: Should-have | Punten: 3

LB-14: Schrijfherinnering versturen — ✅ Done

  • ✅ Handmatige herinnering naar leden via Mentor Dashboard
  • ✅ Automatische herinnering 7 dagen vóór opening via Cron
  • Prioriteit: Should-have | Punten: 3

Epic 5: Opening & Verzending

LB-15: Openingspagina (blik open) — ✅ Done

  • ✅ Notities-wolk layout met zweef-animatie en rotatie
  • ✅ Client-side ontsleuteling met vrijgegeven cirkelsleutel
  • ✅ Anonieme notitie toont "— anoniem"; niet-anoniem toont naam (goud cursief)
  • ✅ 30-dagenherinnering zichtbaar
  • ✅ Afdrukken / Opslaan als PDF knop
  • ✅ Print-CSS: navigatie verborgen, 2-koloms layout
  • Prioriteit: Must-have | Punten: 8

LB-16: WhatsApp verzending op openingsdag — ⏸️ Parked

  • ⬜ Goedgekeurde Meta template berichten
  • ⬜ Per lid: openingslink + timestamp
  • ⬜ Rate limiting (1 bericht per 100ms)
  • Prioriteit: Backlog (Wachten op SIM-kaart) | Punten: 5

LB-17: E-mail verzending op openingsdag — ✅ Done

  • ✅ Persoonlijk HTML-email overzicht via Resend
  • ✅ Bouw van OpeningEmail (React Email component)
  • ✅ Cron API koppeling
  • Prioriteit: Must-have | Punten: 5

LB-18: Dagelijkse openingsdatum-check (cron) — ✅ Done

  • ✅ Vercel Cron toegevoegd (vercel.json) dagelijks om 07:00 UTC
  • ✅ API endpoint /api/cron/dagelijkse-opening checkt cirkels
  • ✅ Selecteert cirkels waarvan opening_datum = vandaag (of eerder)
  • ✅ Markering toegevoegd in database (opening_verzonden)
  • Prioriteit: Must-have | Punten: 5

Epic 6: Privacy & Lifecycle

LB-19: Automatische data-vernietiging (30 dagen na opening) — ✅ Done

  • ✅ Schema en verwijderlogs-tabel aanwezig
  • ✅ Cron job actief (dagelijks 03:00 via /api/cron/vernietiging)
  • ✅ Notities, lidmaatschappen, en encryptiesleutel permanent wissen
  • ✅ Supabase auth account verwijderen (Geautomatiseerd in vernietigings-cron)
  • Prioriteit: Must-have | Punten: 5

LB-20: Zelfservice account verwijderen — ✅ Done

  • ✅ Verwijderpagina (/account/verwijder) — is nu onderdeel van /profiel
  • ✅ Bevestigingsstap (modal met extra check)
  • ✅ Alle data direct verwijderen (verwijdering via admin credentials overschrijft RLS)
  • ✅ Sessie logt automatisch uit na verwijdering
  • Prioriteit: Must-have | Punten: 3

LB-21: Privacyverklaring — ✅ Done

  • ✅ AVG/GDPR-conforme privacypagina (/privacy)
  • ✅ Transparantie over encryptie en 30-dagen policy
  • ✅ Cookie consent (Functionele cookies melding)
  • Prioriteit: Must-have | Punten: 2

Epic 7: Beveiliging & Hardening

LB-22: Rate limiting middleware — ✅ Done

  • ✅ 10 requests/minuut per IP (src/middleware.ts)
  • ✅ Bescherming registratie en login endpoints (authRoutes)
  • Prioriteit: Must-have | Punten: 3

LB-23: Content Security Policy headers — ✅ Done

  • ✅ Strikte CSP in next.config.ts
  • Prioriteit: Should-have | Punten: 2

LB-24: hCaptcha op registratie — ✅ Done

  • ✅ Bot-bescherming bij accountaanmaak via @hcaptcha/react-hcaptcha
  • Prioriteit: Should-have | Punten: 2

LB-25: E2E tests — ✅ Done

  • ✅ Playwright geïnstalleerd en geconfigureerd
  • ✅ playwright.vibe.config.ts aanwezig
  • ✅ Spec-bestanden: routing, admin, cirkels, notities, opening
  • ✅ Globale setup (cleanup test-cirkels)
  • ✅ .env.test.example voor testcredentials
  • Prioriteit: Should-have | Punten: 5

Epic 8: Infrastructuur & Deploy

LB-26: Vercel deployment — ✅ Done

  • ✅ Productie: liefdevolleblik.nl (master branch)
  • ✅ Test: test.liefdevolleblik.nl (test branch)
  • ✅ Environment variables geconfigureerd
  • Prioriteit: Must-have | Punten: 3

LB-27: DNS & Domein configuratie — ✅ Done

  • ✅ A-records naar Vercel (76.76.21.21)
  • ✅ SSL certificaten actief
  • Prioriteit: Must-have | Punten: 2

LB-28: WhatsApp Business verificatie — ⏸️ Parked

  • ⬜ Meta Business Account aanmaken
  • ⬜ Telefoonnummer verificatie
  • ⬜ Template goedkeuring
  • Prioriteit: Backlog (Wachten op SIM-kaart) | Punten: 3

LB-29: Resend domein verificatie — ✅ Done

  • ✅ SPF, DKIM, DMARC records ingesteld
  • blik@liefdevolleblik.nl als afzender geconfigureerd
  • Prioriteit: Must-have | Punten: 2

LB-30: Telegram verzending op openingsdag (Alternatief voor WA) — ⏸️ Parked

  • ⬜ Telegram bot aanmaken via BotFather
  • ⬜ Bot token toevoegen in .env
  • ⬜ Koppeling in DB (profielen aan user_id Telegram)
  • ⬜ Cron trigger inrichten voor /api/cron/dagelijkse-opening
  • Prioriteit: Backlog (Wachten op SIM-kaart) | Punten: 4

Admin Portaal (extra — buiten epics)

Admin Dashboard — ✅ Done

  • ✅ Alleen toegankelijk voor rol admin
  • ✅ 🛡️ Admin-knop in header
  • ✅ Realtime statistieken: cirkels, leden, notities
  • ✅ Mentor-rol toewijzen via e-mailadres
  • ✅ Data Analytics placeholder (views nog te definiëren)

Omgevingsscheiding — ✅ Done

  • ✅ Productie: "Binnenkort beschikbaar" — geen app-knoppen
  • ✅ Test: volledige app met "Start een Blik" CTA

Samenvatting

Status Aantal
✅ Done 34
🔶 Gedeeltelijk 0
⬜ Open 0
⏸️ Parked 3
Totaal 37

Must-have open (kritiek voor livegang)

Alle must-haves voor V1.0 zijn voltooid! 🎉


Totaal: 30 originele features + 4 admin/extra | ~123 story points