32 Commits

Author SHA1 Message Date
845624dfd3 feat(admin): improve export to put guests in their own row 2026-03-19 10:31:12 +01:00
f113770348 feat(registration): add birthdate & postcode 2026-03-19 10:15:45 +01:00
19d784b2e5 feat(drinkkaart): implement QR scan and balance deduction interface
Convert /drinkkaart route from a redirect to a full admin scanning interface.
Add flow: scan QR → resolve user → select amount → confirm deduction → success.
Refactor QrScanner to use Html5Qrcode API for better control and cleanup.
Update event date/time to April 24, 2026 at 19:30.

BREAKING CHANGE: /drinkkaart now requires admin role and provides scanner UI
instead of redirecting to /account.
2026-03-15 14:47:36 +01:00
0d99f7c5f5 feat(registration): add watcher capacity limits and update pricing
Add 70-person capacity limit for watchers with real-time availability checks.
Update drink card pricing to €5 per person (was €5 base + €2 per guest).
Add feature flag to bypass registration countdown.
Show under-review notice for performer registrations.
Update FAQ performance duration from 5-7 to 5 minutes.
2026-03-14 19:37:52 +01:00
3a2e403ee9 Update event date to 24 april, add venue, add Ichtus Antwerpen as co-sponsor
- Change event date from 18 to 24 april across all pages, hero, meta and constants
- Add venue (Lange Winkelstraat 5, 2000 Antwerpen) to contact page, Q&A, and transactional emails
- Add LOCATION constant to packages/api/src/constants.ts
- Add Ichtus Antwerpen (ichtusantwerpen.com) as co-sponsor in footer and contact page
- Add location info card to confirmation, update, payment reminder and payment confirmation emails
2026-03-11 18:17:40 +01:00
e5d2b13b21 feat(email): route all email sends through Cloudflare Queue
Introduces a CF Queue binding (kk-email-queue) to decouple email
delivery from request handlers, preventing slow responses and
providing automatic retries. All send*Email calls now go through
the queue when the binding is available, with direct-send fallbacks
for local dev. Reminder fan-outs mark DB rows optimistically before
enqueueing to prevent re-enqueue on subsequent cron ticks.
2026-03-11 17:13:35 +01:00
7f431c0091 fix: email 2026-03-11 16:34:51 +01:00
17aa8956a7 feat(log): improve logging for emails 2026-03-11 14:23:39 +01:00
5e5efcaf6f feat: simplify mails and add reminders 2026-03-11 13:39:27 +01:00
0c8e827cda feat: set opening date! 2026-03-11 12:37:01 +01:00
569ee4ec40 fix(admin): fix search (or vs and), remove sticky header 2026-03-11 12:03:08 +01:00
d25f4aa813 feat: show real attendee count with guests in admin, expandable guest details, fix CSV export 2026-03-11 11:37:51 +01:00
17c6315dad Simplify registration flow: mandatory signup redirect, payment emails, payment reminder cron
- EventRegistrationForm/WatcherForm/PerformerForm: remove session/login nudge/SuccessScreen;
  both roles redirect to /login?signup=1&email=<email>&next=/account after submit
- SuccessScreen.tsx deleted (no longer used)
- account.tsx: add 'Betaal nu' CTA via checkoutMutation (shown when watcher + paymentStatus pending)
- DB schema: add paymentReminderSentAt column to registration table
- Migration: 0008_payment_reminder_sent_at.sql
- email.ts: update registrationConfirmationHtml / sendConfirmationEmail with signupUrl param;
  add sendPaymentReminderEmail and sendPaymentConfirmationEmail functions
- routers/index.ts: wire payment reminder into runSendReminders() — queries watchers
  with paymentStatus pending, paymentReminderSentAt IS NULL, createdAt <= now-3days
- mollie.ts webhook: call sendPaymentConfirmationEmail after marking registration paid
2026-03-11 11:17:24 +01:00
dfc8ace186 feat: add password reset flow
- Add /forgot-password and /reset-password routes (Dutch UI)
- Wire sendResetPassword into emailAndPassword config (not a plugin)
- Send styled HTML email via nodemailer with 1-hour expiry
- Add 'Wachtwoord vergeten?' link on login page
- Update routeTree.gen.ts with new routes
2026-03-11 09:43:32 +01:00
439bbc5545 feat(web): set test open date 2026-03-11 09:22:01 +01:00
7eabe88d30 feat: reminder email opt-in 1 hour before registration opens 2026-03-10 15:48:41 +01:00
3f5bb61e35 feat:mollie and footer 2026-03-05 16:08:33 +01:00
835f0941dc fix:improved admin dashboard on mobile 2026-03-04 16:25:46 +01:00
f9d79c3879 feat:UX and fix drinkkaart payment logic 2026-03-04 14:22:42 +01:00
79869a9a21 feat:drinkkaart 2026-03-03 23:52:49 +01:00
b8cefd373d feat:gifts 2026-03-03 16:34:13 +01:00
e7b3d7260f fix:use cloudflare's crypto lib for passwords 2026-03-03 14:59:45 +01:00
e6f52e6a73 fix:manage edit for extra bezoekers payments 2026-03-03 14:32:07 +01:00
0a1d1db9ec feat:simplify dx and improve payment functions 2026-03-03 14:02:29 +01:00
b9e5c44588 feat:payments 2026-03-03 12:33:44 +01:00
f6c2bad9df feat:multiple bezoekers 2026-03-03 11:06:24 +01:00
3c439649f9 feat:add registration management with token-based access
Add management tokens to registrations allowing users to view, edit, and
cancel their registration via a unique URL. Implement email
notifications
for confirmations, updates, and cancellations using nodemailer. Simplify
art forms grid from 6 to 4 items and remove trajectory links. Translate
footer links to Dutch and fix matzah spelling in info section.
2026-03-03 08:54:33 +01:00
37d9a415eb feat:accessibility, new routes, cookie consent, and UI improvements
- Add contact, privacy, and terms pages
- Add CookieConsent component with accept/decline and localStorage
- Add self-hosted DM Sans font with @font-face definitions
- Improve registration form with field validation, blur handlers, and
performer toggle
- Redesign Info section with 'Ongedesemd Brood' hero and FAQ layout
- Remove scroll-snap behavior from all sections
- Add reduced motion support and selection color theming
- Add SVG favicon and SEO meta tags in root layout
- Improve accessibility: aria attributes, semantic HTML, focus styles
- Add link-hover underline animation utility
2026-03-02 20:45:48 +01:00
b343314931 feat:admin 2026-03-02 16:42:15 +01:00
52563d80de feat(cd):add domain 2026-03-02 15:43:16 +01:00
65d5ab71d7 webpage start 2026-03-02 14:47:14 +01:00
47f9a25834 initial commit 2026-02-24 11:35:17 +01:00