Back to projects
Next.jsReactTypeScriptPostgreSQL

Malta Red Cross Training & Course Booking Platform

Built a dual-surface web platform for Malta Red Cross — a public course catalog and booking site plus an internal admin portal — replacing manual training coordination with end-to-end scheduling, payments, attendance, and certification.

Key Deliverables

  • Engineered the full platform with Next.js 16 App Router, React 19 Server Components, TypeScript 5, Prisma 7, and PostgreSQL — using dual root layouts so the public Red Cross brand site and shadcn admin portal share one codebase without style collisions.
  • Delivered a passkey-first admin portal with Better Auth RBAC across 5 roles (developer, admin, manager, accounts, instructor), invite onboarding, audited user management, Redis-backed rate limiting, and permission-gated server actions.
  • Architected a run-based course domain model (CourseRun → CourseSession) with blended theory/practical pathways, instructor availability, co-instructor assignment, claimable open runs, and session recurrence — backed by 130+ modules across 10 domain subfolders.
  • Built the full individual booking lifecycle: catalog browsing, guest and authenticated checkout, coupon discounts, Stripe Checkout with webhook fulfillment and payment event ledger, waitlist promotion, and stub provider for sandbox E2E.
  • Developed group training workflow with public request forms, training-coordinator review, alternate-date proposals, instructor assignment, and acknowledgement emails — plus admin booking management with refunds.
  • Shipped instructor operations: my-sessions acceptance, in-session timeclock for payroll, attendance recording with certification gating, on-demand PDF certificate generation, and post-course outcome emails.
  • Integrated Stripe payments, Resend transactional email with React Email templates, Cloudflare R2 course image uploads, WCAG 2.2 AA client UI via react-aria-components, Playwright axe automation, and Docker-based CI/CD deploy to VPS.