Skip to main content
PU MyeikCampus event

PU Selection

King, Queen, Prince & Princess—fair ballots, judge weighting, and a floor that stays on schedule.

A web platform that streamlines standout student selection across majors: transparent voting, judge workflows, reusable event rooms, and archives that stay reserved for institutional memory—all tuned for high-traffic open nights.

2,500+

Peak visitors

Engineered for burst traffic during live voting—static-friendly delivery, disciplined client cache, and operator tooling that does not fight the clock.

PU Selection digitizes a longstanding campus tradition: elevating students across majors into ceremonial roles. The product has to feel festive for attendees while remaining strict for auditors—every vote and judge score needs a paper trail without slowing the show.

Next.js anchors the experience; Clerk gates privileged routes; Prisma speaks MongoDB with type-safe models; Zod guards every mutation; TanStack Query keeps the UI responsive as rounds advance; UploadThing covers rich media; Vercel hosts the whole stack at the edge.

Fair, fast, repeatable

  • Role-based voting

    Separate flows for public ballots and judge scoring so weighting stays explicit and auditable.

  • Media pipeline

    UploadThing-backed storage for candidate imagery—fast uploads, predictable URLs, and admin-friendly handling.

  • Rounds & control

    Admin tooling to open and close rounds, align the event schedule, and keep the floor on-script.

  • Rooms & archive

    Reusable room templates for recurring events plus archive reservation so history stays organized.

Screens & flows

Tools & services

TypeScriptNext.jsZodPrismaMongoDBClerkUploadThingTanStack Queryshadcn/uiVercel

What had to land for opening night

  • Built for peak traffic—2,500+ concurrent visitors during voting windows without turning the UI into a bottleneck.
  • Clerk-authenticated surfaces with clear separation between voters, judges, and operators.
  • Zod-validated inputs end to end; Prisma + MongoDB for resilient document-style workloads.
  • TanStack Query for snappy client cache behavior where every round change must feel instant.
  • UploadThing integration for candidate media—predictable delivery on Vercel’s edge footprint.

Check it out!