GDGoC Admin Panel
Certificate design, bulk issuance and delivery for Google Developer Groups on Campus chapters.
- Role
- Sole engineer
- Timeline
- 2026
- Domains
- Web · Backend · Automation
- Capabilities
- System design · API design · UI engineering · Data flow · DevOps
- Stack
- Go · Fiber · GORM · PostgreSQL · Redis · React Router v7 · Konva · TanStack Query · Tailwind CSS · Docker
Problem
Chapters issued event certificates by editing a design file once per recipient and mailing each one by hand. The work scaled linearly with attendance, designs drifted between organisers, and a certificate had no way to be checked as genuine after the fact.
Approach
A Go and Fiber API split into domain packages, paired with a React Router SPA. Templates are drawn in a Konva canvas editor and saved as an immutable versioned SceneDefinition, so a batch snapshots the exact design it was issued under. Text layers hold variable keys rather than literals; issuance resolves them per recipient from a spreadsheet import, alongside auto-injected system variables such as the verification URL. Batches hand a job ID to an in-process queue that a worker pool drains, rendering each certificate through a pure-Go rasteriser that handles text, images, gradients and QR codes without CGo, then sending it via the chapter's own SMTP credentials. Auth delegates to an OIDC provider with whitelist-gated registration and per-chapter roles.
Outcome
One design, one recipient sheet and one run replaces the per-certificate loop, and every certificate carries a QR that resolves to a public verification page. The same renderer backs dynamic images, which take their values from URL parameters so share cards and banners come from the same pipeline without creating a batch. Templates and mail templates can be published for reuse across chapters.