Project overview

How Event works

A complete platform for public-voted, AI-assessed event awards — from applications and interviews to LinkedIn-verified voting, judge panels, winner lock and a live ceremony night. This page explains the whole thing in plain language.

70% public votes 30% board / judges Admin veto AI-marked interviews Audited everywhere

In 30 seconds

  1. Organizers create an event with award categories and an interview question bank.
  2. People register — visitors get a free QR ticket, award applicants submit a form + photo, guests of honor get their own track.
  3. Applicants complete a short AI interview — the platform draws random category questions and marks the answers.
  4. Staff approve candidates — approved applicants get public profiles and personal share cards.
  5. The public votes — LinkedIn-verified voters, one reasoned vote each, with a verifiable receipt.
  6. Judges score every candidate against a rubric.
  7. Winners are locked in a single trusted transaction — 70% votes + 30% board, minus any veto.
  8. Ceremony night — stage screen, MC dashboard, award-team shields, self check-in.
  9. Afterwards — winner cards, printable certificates, hall of fame, and a full audit trail of everything that happened.

Who uses it

👑 Admin

Owns the platform: branding, feature toggles, events & categories, approvals, vetoes, winner lock, system health. Full audit access.

🧑‍💼 Staff

Runs the event day-to-day: reviews registrations, manual entry, mass comms, tickets, media, check-in.

🏆 Applicant

Applies for an award, answers the AI interview, tracks status and votes on a personal dashboard, downloads a finalist/winner card.

🗳 Voter

Signs in with LinkedIn, browses candidate profiles, casts one reasoned vote, gets a receipt code anyone can verify.

⚖ Judge

Reviews assigned candidates against a rubric; their scores form the 30% board weight.

🎤 MC

Drives the ceremony from a full-screen live view: slides, winner queue, call-ons — keyboard shortcuts included.

🛡 Award team

Confirms winners are physically present before the MC announces them (the “shield”) so nobody is called in error.

🔍 Auditor

Read-only oversight: sees the same numbers and the complete audit log, can change nothing.

🤖 AI system

Conducts and marks applicant interviews (MiniMax), drafts comms, and powers a context-aware team assistant. Runs in mock mode until keys are configured.

The journey — event setup to hall of fame

  1. Event setup

    Admin creates the event, award categories and the interview question bank. Branding, vote weights, feature toggles and dates all come from the admin panel — nothing is hardcoded.

  2. Registration opens

    Three public tracks: visitor (free QR ticket), award applicant (form + photo upload) and guest of honor. Staff can also enter people manually, and anyone can nominate a candidate for follow-up.

  3. AI interview

    Each applicant gets a short interview: random questions drawn from their category’s bank (so answers can’t be rehearsed from a leaked list). The AI marks every answer; the registration moves to AI-scored.

  4. Approval & screening

    Staff approve or reject, with duplicate-candidate detection (ID + photo similarity) flagging repeat applicants. Waitlists and category capacity are enforced automatically.

  5. Public voting

    Approved candidates get public profiles and personal share cards (/v/<token> links). Voters verify via LinkedIn, must give a one-line reason, and are limited to one vote per candidate (or per event). Every vote returns a receipt code that anyone can verify on a public page — and all votes form a tamper-evident hash chain.

  6. Judge review

    Judges are assigned candidates and score them against a rubric. Board scores are normalized and contribute 30% of the final result.

  7. Veto & integrity checks

    Before results, admin can veto a candidate (BR-005) — a veto is absolute and audited. Vote-chain integrity and duplicate suspects are reviewed from the admin panel.

  8. Winner lock

    One database transaction computes final standings (70% public + 30% board), assigns certificate numbers, promotes approved runner-ups to finalists, and publishes public results. After lock, results can’t drift out of sync — they’re a stored snapshot.

  9. Ceremony day

    A projector-ready stage screen, an MC full-screen control view (slides, queue, keyboard shortcuts), the award-team shield flow (confirm the winner is in the room before the reveal) and self check-in via personal QR links.

  10. After the event

    Winner + finalist share cards, printable certificates, hall of fame, season report, mass comms with scheduling — and the entire journey is queryable in the audit log.

Through their eyes

The same platform, seen from four chairs. Switch roles:

  1. Set up — branding, events, categories, question bank, toggles: all DB-driven, no deploys needed.
  2. Curate — approve registrations, resolve duplicate suspects, manage waitlists and capacity.
  3. Run voting — open/close voting, watch live counts, export CSVs, send scheduled comms.
  4. Lock results — veto check, then one click locks winners + finalists + certificates together.
  5. Show night — stage screen, MC controls, award-team shields, self check-in, live run-sheet.
  6. Verify everything — every action is in the audit log; hash-chain health is visible in system health.

How scoring works

Final score = 70% normalized public votes + 30% normalized board (judge) score. Weights are per-event and configurable — the platform default is 70/30.

Veto is absolute

An admin veto removes a candidate from winners and public results entirely — before or after lock — and is always audited.

One person, one vote

LinkedIn verification + per-candidate/per-event limits + rate limits. Votes carry a receipt and live in a hash chain that can be recomputed and verified.

Results are a snapshot

Winner lock writes final standings, certificate numbers and finalists in a single transaction — public pages can never disagree with the database.

What’s under the hood

Plain PHP 8.3

No framework — small modular core (Router, DB, Auth, Audit…) with self-contained feature modules. Strict types, prepared statements everywhere.

MariaDB

29 idempotent SQL migrations, transactions for every critical write, row locking on votes and winner lock.

AI gateway

MiniMax provider with a built-in mock — interviews, marking, comms drafting and the team assistant all work without any API keys.

Share cards

GD-rendered winner/finalist cards with caching and deterministic regeneration; an AI card driver is reserved for future styles.

Audit log

Every meaningful action (auth, votes, vetoes, locks, comms, ceremony) is recorded with actor, IP and metadata — exportable, read-only for auditors.

Ops surface

Health endpoint, system dashboard, surface QA (34 checks) and a 266-check end-to-end suite that exercises the entire lifecycle.

Curious about the actual specifications? Every document — the full SRS, business rules and step-by-step workflows — is rendered on the Docs page.

See it live

Browse current events and the hall of fame, or jump straight in: