Frontend
Backend
Infra
Tooling
PrinceHoops — Basketball Event Manager
Full-stack platform for organizing basketball runs and tournaments, running live at princehoops.ca. RSVPs are capacity-checked in a database transaction, overflow auto-queues to a waitlist and promotes the next player by position when a confirmed spot opens up. QR check-in tokens rotate per session; the live event dashboard streams check-ins over SSE. Reliability scores are computed from attendance history, team captains send tokenized invite links, and admins get CSV export, image uploads, and soft-delete-with-restore for events. Built feature-by-feature with a spec-then-plan-then-implement workflow.
IDSL — Indigenous Donors Save Lives
Health equity campaign site for Indigenous stem cell donor registration in Northern BC, built for UNBC's Office of Indigenous Initiatives and Stem Cell Club. 9-page vanilla JS/Express site backed by a JSON-driven admin panel (auth, CRUD, image uploads) so non-technical staff can edit ambassador profiles, events, and partners without touching code. Deployed via Docker Compose + Nginx.

R4L — Relay for Life Photo Gallery
Photo and video sharing gallery for Relay for Life charity event. Swipe-based admin moderation queue, EXIF metadata stripping, Cloudflare R2 storage tiering, rate-limiting, sponsor banner, and full participant privacy controls.

Trivia — Live Bar Trivia Game
Real-time trivia platform for bar events. Host generates QR codes table-by-table after collecting payment; players scan to join their team. Multiple devices per team vote by majority with coin-flip tiebreaking. Socket.IO drives the live game loop — question broadcast, answer collection, scoreboard. Admin dashboard with QR management, payment tracking (amount/method/notes), and game lifecycle control. Deployed via Docker + Nginx on a VPS.

> send_message --to gd@gsd.sh