Realm Academy Card Generator
An internal tool for Realm Academy for Family Life that turns relationship-registration form submissions into branded, shareable profile cards, with an admin dashboard and a CSV bulk-import fallback for pre-existing registrants.
- PHP
- GD
- MySQL
- PDO

The challenge
Realm Academy's relationship-registration program needed a shareable, on-brand profile card generated for every applicant the moment they submitted a form — plus a way to backfill cards for registrants who signed up before the automation existed.
The approach
A public webhook endpoint accepts JSON, URL-encoded, or multipart submissions from the registration form, normalizing inconsistent field names into a fixed schema before storing each submission in MySQL via PDO. Image rendering is not done via a headless browser or an HTML/CSS engine — a PHP GD-based generator draws each 1080x1920 card entirely with GD primitives: gradients, glow orbs, rounded rects, and manual text-wrapping across four selectable templates. A session-authenticated admin dashboard lists, searches, paginates, and bulk-deletes generated cards, with a per-card view/download/share page. A separate CSV import tool covers submissions that predate the webhook, dynamically mapping columns from a form-export CSV by header name so an admin can select rows and batch-generate cards for them.
What’s live
- Webhook endpoint with field-name normalization for varying form-builder payloads
- Four PHP GD-rendered card templates drawn from scratch, no HTML/CSS rendering engine involved
- Admin dashboard with search, pagination, and single/bulk delete
- CSV import tool for batch-generating cards from a legacy form export



