// Gig DossierMONOMax EPL Licensing Portal
// Brief
A full-stack SaaS platform that issues and verifies English Premier League commercial-broadcast licenses for Thai venues — restaurants, hotels, and pubs. Business owners sign in with email OTP, register their company and each physical venue with its screen count, and the system provisions the required MONOMax Sports Premium accounts while guaranteeing — enforced at the database level — that every account is bound to a single active venue. Admins review submissions in a dedicated console with its own auth realm and issue a verifiable digital certificate, complete with an in-house-generated QR code, for each approved venue. Built with Next.js 16 (App Router) and React 19 in strict TypeScript: two isolated better-auth realms for users and admins, MongoDB/Mongoose, zod schemas validated identically on client and server with react-hook-form, an interactive Leaflet venue-map picker, presigned document uploads to S3-compatible object storage, transactional email, and Tailwind v4 with shadcn/ui. Containerized with Docker and shipped through a GitHub Actions → GHCR → cloud-VM (Caddy) CI/CD pipeline, with PDPA-conscious data residency. Delivered as a focused 3-day sprint.
// Timeline
Admin Export Wizard — Filters + Column Picker
NowJul 2026
Shipped an admin export wizard with custom filters and a column picker for tailored data exports.
Integration — Partner Account-Verification API
Jul 2026
Integrated the partner's commercial account-verification API with admin-side sync and reconciliation.
Data Migration — Historical Import Pipeline
Jun 2026
Built a historical data-migration pipeline — an offline transform step feeding a gated, previewed web import with change diffs.
Admin Command Center — Company-First Console + Excel Export
Jun 2026
Built a company-first admin command center with dashboards, paginated data tables, and styled Excel export.
Geospatial Data Model — GeoJSON Places + 2dsphere
Jun 2026
Modeled venues as GeoJSON points with a 2dsphere index and a database-enforced constraint binding each provisioned account to a single active venue.
In-House QR Verification
Jun 2026
Replaced an external QR web service with in-house QR generation for tamper-checkable certificate verification.
Certificate Engine — Per-Venue Approval + Branded E-Cert Email
Jun 2026
Built the licensing-certificate engine — per-venue admin approval that issues a verifiable digital certificate, delivered by branded transactional email.
Auth — Two Isolated Realms, Email-OTP + 2FA
Jun 2026
Built two isolated authentication realms (customer and admin) with email-OTP sign-in and 2FA, moving off the initial NextAuth scaffold to better-auth.
CI/CD — GitHub Actions → GHCR → Dockerized Cloud VM
Jun 2026
Wired a config-as-code pipeline — GitHub Actions builds and pushes a Docker image to GHCR, then deploys to a cloud VM behind Caddy auto-HTTPS.
Replatform — Firebase SPA → Next.js 16 Full-Stack
Jun 2026
Re-architected a client-built Firebase single-page prototype into a Next.js 16 App Router full-stack application in strict TypeScript.