
Immersia AI & XR Summer Bootcamp
Registration, payment, and admin platform for Immersia's 2026 tech bootcamp
Role
Full Stack Developer
Year
2026
Tech Stack
9 Technologies
Status
Completed
Overview
Immersia needed a complete end-to-end platform to register, pay, and manage up to 150 campers across 3 cohorts of their 2026 AI & XR Summer Tech Bootcamp for ages 10–17. I built the entire system: a GSAP-animated public landing page, a 4-step registration form, Paystack payment processing with dual-layer idempotent confirmation, PDF receipt generation, a JWT-protected admin dashboard with real-time stats and CSV export, and a waitlist flow for when cohorts sell out. Built with Next.js 14, MongoDB, and PDFKit.
The Problem
Immersia needed a complete platform to handle registrations and payments for their 2026 AI & XR Summer Tech Bootcamp — 150 spots across 3 cohorts, ages 10–17, with early-bird pricing, laptop rental add-ons, and a robotics elective. There was no off-the-shelf tool that handled Paystack payments, PDF receipt emails, an admin dashboard for admission decisions, and a waitlist for sold-out cohorts — all in one place.
Screenshots

Challenges
Ensuring payment is confirmed even when Paystack webhooks are delayed, duplicated, or arrive out of order — a race condition in a live payment system means lost revenue or double-confirmation bugs.
Generating PDF receipts on the fly and attaching them to confirmation emails without spinning up a separate document service.
Securing the admin dashboard with no third-party auth provider — complete control over the session model and no external dependency.
Handling early-bird vs regular pricing tiers, variable add-ons (laptop rental, robotics elective), and sold-out waitlist states — all configurable live by the admin without redeployment.
Solutions
Built dual-layer idempotent payment confirmation: webhook (HMAC-SHA512 verified) and success-page redirect both call a shared `reconcileAndConfirm()` that always re-queries Paystack's `/transaction/verify` as the source of truth — whichever fires first wins, the other is a no-op.
Used PDFKit for server-side PDF generation, piped as a buffer directly into Nodemailer as an email attachment — no temp files, no external service.
Built custom JWT auth (HS256 via `jose`) with audience-scoped tokens stored in httpOnly, secure, sameSite=strict cookies. Middleware gates every `/admin` and `/api/admin` route.
All pricing, capacity, cutoff dates, and add-on fees live in a MongoDB Settings collection — the admin updates them from the dashboard and they take effect instantly.
Key Highlights
Idempotent Paystack Flow: Webhook + redirect both confirm via a shared `reconcileAndConfirm()` that re-queries Paystack — no double-processing, no missed payments even if the webhook is delayed.
PDF Receipts on Confirmation: PDFKit generates itemised receipts (registration ID, parent/participant info, course selections, pricing in Naira) attached to every confirmation email.
Admin Dashboard: Real-time stats, registration list with filtering, admit/reject workflow, settings panel, CSV export, and waitlist viewer — all JWT-protected.
Kobo-Precise Financials: All amounts stored as kobo (₦1 = 100 kobo) matching Paystack's native unit — zero floating-point errors in any financial calculation.
Scale & Scope
150
Camper Capacity
3
Cohorts
6
Courses
10–17
Age Range
Technology Stack
Outcome
Launched at aixrbootcamp.com handling the full camper journey — animated landing, multi-step registration, Paystack payment, PDF receipts via email, and a live admin dashboard for the Immersia team.

