Roles, Responsibilities & Permissions
Juryza enforces a strict two-tier role architecture: platform-level account capabilities and event-level scope. Every user has a defined role, clear responsibilities, and hard cryptographic boundaries enforced on every API route.
The Two-Tier Role Architecture
Permissions are evaluated at two distinct layers. Platform roles define account capabilities across Juryza, while event roles isolate administrative control to specific hackathons. An organizer cannot touch another organizer's event, and a judge only sees submissions assigned to their blind queue.
Participant: Builders & Hackers
Participants are the innovators of the hackathon ecosystem. They form teams, build projects, submit deliverables, allocate community votes, and climb the platform rankings.
Judge: Impartial Evaluation & Pairwise Arena
Judges are domain experts, engineers, and sponsors invited to evaluate submissions. Juryza protects judges from bias through automated blind queue isolation and mathematical normalization.
Organizer: Event Orchestration & Defensible Results
Organizers design the competition, configure the rubric, invite the panel, run review distribution algorithms, and publish mathematically defensible results.
Admin: Platform Superuser & Integrity Audit
Admins hold platform-wide operational authority. They maintain system integrity, resolve disputes, moderate abusive behavior, and oversee compliance across all events.
Comprehensive Permissions Matrix
A side-by-side comparison of every platform action across all five roles. Badges indicate scoped permissions or conditional access rules.
In Juryza, hackathons configure Community Voting Access as Open, Authenticated, or Registered. In Open Mode, anyone with a web browser (even unauthenticated visitors) receives an anonymous voter token and can allocate quadratic vote credits. In Authenticated mode, users must sign in; in Registered mode, only accepted hackathon participants may vote.
Assigned means judges cannot pick and choose which projects to evaluate. Projects must be explicitly assigned to that judge by the organizer or the automated review balancing algorithm. Judges only score within their permitted tracks and where zero conflict of interest exists. Even organizers and admins acting as judges only score their assigned queue.
Own Events enforces strict multi-tenant isolation. An organizer has complete managerial control over hackathons they personally created (createdBy === userId), but has zero administrative access to hackathons organized by others. Platform Admins retain platform-wide override capability.
| Capability / Action | Visitor | Participant | Judge | Organizer | Admin |
|---|---|---|---|---|---|
| Browse public events, gallery & leaderboards | |||||
| Register for an event & join teams | |||||
| Submit projects & edit writeups | |||||
| Quadratic Community Voting | Open Mode | ||||
| Leave feedback & questions on projects | |||||
| Score projects in blind queue (Rubric 1–5) | Assigned | Assigned | Assigned | ||
| Compete in Pairwise Duel Arena (Bradley–Terry) | Assigned | Assigned | Assigned | ||
| Create new hackathons | |||||
| Edit event tracks, rubrics & timeline | Own Events | ||||
| Invite judges & run automated assignments | Own Events | ||||
| Preview z-score normalized calibration | Own Events | ||||
| Publish defended results & lock scoring | Own Events | ||||
| Export event datasets (CSV / JSON) | Own Events | ||||
| Promote/demote users & ban accounts | |||||
| Inspect platform-wide immutable audit trail | Event Scope |
Security & Integrity Invariants
Juryza does not rely on client-side security checks. Every permission is validated on the server inside route middleware.
403 Forbidden or 404 Not Found response. Draft events never leak existence.- Blind Review Isolation
- Judges score completely independently without anchoring. Judge B can never view Judge A's raw scores or feedback notes until results are officially declared.
- Tamper-Proof Audit Trail
- Every score change, pairwise vote, role update, account suspension, and publish command records an immutable audit log entry containing the exact actor, timestamp, and network IP.
- Quadratic Sybil Resistance
- Community voting enforces mathematical quadratic cost (n votes cost n² credits), making vote-buying and spam accounts exponentially expensive while empowering genuine conviction.
- Publication Lock
- Once results are published, the scoring tables and pairwise records become read-only. Scores cannot be silently altered or retroactively manipulated.