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.
In 30 seconds
- Organizers create an event with award categories and an interview question bank.
- People register — visitors get a free QR ticket, award applicants submit a form + photo, guests of honor get their own track.
- Applicants complete a short AI interview — the platform draws random category questions and marks the answers.
- Staff approve candidates — approved applicants get public profiles and personal share cards.
- The public votes — LinkedIn-verified voters, one reasoned vote each, with a verifiable receipt.
- Judges score every candidate against a rubric.
- Winners are locked in a single trusted transaction — 70% votes + 30% board, minus any veto.
- Ceremony night — stage screen, MC dashboard, award-team shields, self check-in.
- 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
-
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.
-
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.
-
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.
-
Approval & screening
Staff approve or reject, with duplicate-candidate detection (ID + photo similarity) flagging repeat applicants. Waitlists and category capacity are enforced automatically.
-
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. -
Judge review
Judges are assigned candidates and score them against a rubric. Board scores are normalized and contribute 30% of the final result.
-
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.
-
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.
-
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.
-
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:
- Apply — pick a category, fill the form, upload a photo. A sign-in link lands in your inbox (no password to remember).
- Interview — answer a few randomized questions; the AI marks each answer instantly.
- Track — your dashboard shows status (submitted → AI-scored → approved → finalist/winner), your votes as they arrive, and your ticket QR.
- Share — a personal share card and link let you campaign for votes.
- Results — finalists and winners get downloadable cards and printable certificates.
- Verify — sign in with LinkedIn (mock mode works without keys), so every vote is tied to a real profile.
- Choose — browse candidates by event and category, open their profile, story and share card.
- Reason — one line on what this person is good at; votes without a reason are refused.
- Cast — one vote per candidate (or per event, per the event’s rule). Duplicate votes are blocked.
- Receipt — get a receipt code; check it any time on the public verify vote page.
- Sign in — judges get credentials from the admin (forced password change on first login).
- Review — your assigned queue shows each candidate’s profile, AI marks and public votes.
- Score — fill the rubric per candidate and submit; comments are audited.
- Impact — your scores are normalized into the 30% board weight of the final standing.
- Set up — branding, events, categories, question bank, toggles: all DB-driven, no deploys needed.
- Curate — approve registrations, resolve duplicate suspects, manage waitlists and capacity.
- Run voting — open/close voting, watch live counts, export CSVs, send scheduled comms.
- Lock results — veto check, then one click locks winners + finalists + certificates together.
- Show night — stage screen, MC controls, award-team shields, self check-in, live run-sheet.
- 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.
An admin veto removes a candidate from winners and public results entirely — before or after lock — and is always audited.
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.
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: