Workflow — Judge Review
| Module | Judges |
| Actors | Judge, Admin (assignment + final report consumer), System |
| SRS refs | UC-10, FR-0700, BR-004 |
| Status | Planned — ships with v0.7.0 |
Purpose
Give the judges panel a clean review board to inspect contestants (profile, photo, media, AI stats) and record decisions; the aggregated report goes to the main admin who finalizes.
Preconditions
- Judge account exists (admin-created; login via password; LinkedIn optional later).
- Judge assigned to event / category scope (
judge_assignments). - Contestants exist with
ai_scoredorapprovedstatus.
Main flow
- Judge logs in → Review board shows assigned categories with contestant cards (photo, name, category, AI score/sparklines, vote count if admin enabled visibility).
- Judge opens a contestant → full profile: bio, LinkedIn link, uploaded photo, AI interview transcript (questions, answers, per-answer score/feedback), public media.
- Judge picks a decision: Approve / Disapprove / Needs info + writes notes.
- Saved (one decision per judge per contestant — revisable until admin locks the event).
- Progress indicator: "12/30 reviewed".
- Admin report auto-compiles per category: votes, AI total, judges' tallies + notes.
Alternate / error flows
- A1 Conflict of interest → judge may flag "recuse" — decision recorded as recused; admin notified.
- A2 Bias protection → judges don't see other judges' decisions until admin locks (avoids anchoring).
- A3 Needs-info → staff may contact applicant via ticket/WhatsApp and attach outcome.
Rules applied
BR-004 (board score input), BR-005 (admin still holds veto), BR-006 (judges' visibility controlled by admin toggle).
Data touched
| Table | Change |
|---|---|
| judge_assignments | read |
| judge_reviews | INSERT/UPDATE (unique registration+judge) |
| audit_log | judge.review |
| notifications | report-ready → admin |
Sequence
sequenceDiagram
participant J as Judge
participant W as Website
participant DB as MariaDB
participant AD as Admin (main)
J->>W: login → review board
loop each contestant
J->>W: open profile (photo, AI stats, media)
J->>W: decision + notes
W->>DB: upsert judge_reviews
end
W->>DB: compile per-category report
W-->>AD: "Judge report ready"