Product architecture
How Judgified turns videos into reports.
A streamlined pipeline that takes a YouTube link, assigns certified reviewers based on workload and certification rules, captures structured scores, and exports a polished report — every step traceable.
End-to-end flow
From intake to delivered report
1. Intake
Admin records team, video URL, package
2. Assign
Rules engine matches reviewers
3. Score
Reviewers complete dynamic scoresheets
4. Compile
Scores merged, comments summarized
5. Deliver
Report exported as PDF & web view
Assignment rules engine
Decision tree the system runs on every new submission
submission.created ├─ certification.active = true │ ├─ workload.current < workload.limit │ │ ├─ specialization ∋ submission.division │ │ │ └─ ELIGIBLE → score by (rating × availability) │ │ └─ else → ELIGIBLE (lower priority) │ └─ else → DEFER (over capacity) └─ else → BLOCK (renew cert) package.tier ├─ Essentials → 1 reviewer ├─ Pro → 2 reviewers └─ Elite → 3 reviewers + senior judge report.publish ⇐ all(reviews.status = "Completed")
Data model
Core entities & relationships
User ──┬─ Reviewer (1) ─┐
└─ Admin │
▼
Submission ─── ScoresheetRef ─── Scoresheet
│ │
├── Assignment(*) ── Reviewer
│ │
│ └─ Review ── Scores[]
│
└── Report (1)
Role & permission matrix
| Capability | Admin | Reviewer |
|---|---|---|
| Create submission | ✓ | — |
| Assign reviewers | ✓ | — |
| Build / edit scoresheets | ✓ | view |
| Submit scores & feedback | — | ✓ |
| Generate payroll reports | ✓ | — |
| Manage certifications | ✓ | — |
Trust, security & compliance
Row-level isolation
Reviewers only see their own assignments; admins see workspace-wide data.
Audit logging
Every assignment, score, and status change is journaled with actor + timestamp.
Encrypted at rest
All scoresheets, reports and PII encrypted with managed keys.