Overview
The judging system allows organizers to set up project presentations, assign judges, and score submissions. Access judging admin at/admin/judging.
Judging Data Model
The judging system uses several interconnected models:Core Models
Track Configuration
Tracks categorize projects by theme or sponsor prize.Common Track Examples
- Best Overall
- Best Use of AI
- Best Hardware Hack
- Best Healthcare Solution
- Sponsor Prize - Company X
Creating Tracks
Tracks are typically created via admin interface or database migration:The
dhYear field ensures tracks are scoped to specific DeltaHacks years. DH11 and DH12 can have different track configurations.Project Import
Import projects from Devpost or DoraHacks CSV exports.CSV Upload Process
- Navigate to
/admin/judging - Upload CSV file in the Import Project Data section
- System processes and creates Project records
Supported Platforms
Devpost CSV FormatCSV Processors
The system uses platform-specific processors:- Project records with name, description, link
- ProjectTrack associations (many-to-many)
Table Assignment
Tables are physical presentation locations where projects demo.Creating Tables
Specify how many projects per table:- Counts total projects
- Divides by
projectsPerTable - Creates that many Table records
- Assigns projects round-robin to tables
- 100 projects
- 10 projects per table
- Creates 10 tables (numbered 1-10)
Table Distribution
Projects are assigned to ensure even distribution across tables and tracks.Timeslot Scheduling
Timeslots define when each project presents at each table.Creating Schedule
- Takes the
startTime - Creates rotating schedule for all projects
- Each project gets multiple timeslots (one per table rotation)
- Allocates time based on number of projects and tables
Timeslot Model
- Each project only scheduled once per timeslot
- Each table only has one project per timeslot
Schedule Output
After creating timeslots, the system displays:- Total Duration: “3 hours and 45 minutes”
- End Time: “13:45”
- Number of Tables: “10”
- Plan judging duration
- Communicate schedule to participants
- Assign judge availability
Rubric Configuration
Rubrics define the scoring criteria for judges. Access at/admin/judging/rubric.
Rubric Question Model
Creating Questions
Questions are scoped to tracks (different tracks can have different rubrics):- Select a Track
- Enter Title: “Technical Complexity”
- Enter Question: “How technically challenging was the implementation?”
- Set Points: 10
- Click Create Question
Question Formatting
Questions support Markdown for rich formatting:Bulk Import
Import multiple questions via JSON:Typical Rubric Structure
For a 50-point rubric:- Technical Complexity (15 points)
- Design & UX (10 points)
- Impact & Usefulness (15 points)
- Presentation Quality (10 points)
Judge Assignment
Judges are users with theJUDGE role.
Assigning Judge Role
See User Management for role assignment options:- Via admin role management interface
- Via QR scan at “judges” station
Judge Interface
Judges access the judging portal (typically at/judging) where they:
- View their assigned schedule (optional)
- Select a project to judge
- See the rubric questions for the track
- Score each question
- Submit their judging result
Judging Results
Scores are stored as JudgingResult records:Leaderboard
View results at/admin/judging/leaderboard.
Score Calculation
Project scores are calculated by:- Sum all RubricResponse scores for a project
- Average across all judges who scored it
- Optionally filter by track
Leaderboard Display
| Rank | Project Name | Link | Score | Judges | Track |
|---|---|---|---|---|---|
| 1 | AI Health Assistant | [View] | 87.5 | 4 | Best AI |
| 2 | Smart Garden | [View] | 85.2 | 3 | Best Hardware |
Track Filtering
Switch between:- All Tracks: Combined leaderboard
- Specific Track: Winners for that track/prize
Real-Time Updates
The leaderboard refreshes every 30 seconds to show latest scores as judges submit results:Complete Judging Workflow
Pre-Event Setup
- Create tracks for your prizes/categories
- Import projects from Devpost CSV
- Assign projects to tracks (done during import or manually)
- Create tables based on venue layout
- Generate timeslot schedule
- Configure rubric questions for each track
- Assign judge roles to external judges
During Judging
- Judges arrive and scan at “judges” station (grants JUDGE role)
- Judges access judging portal on their device
- Judges visit tables according to schedule
- Judges score each project using the rubric
- Scores appear on leaderboard in real-time
Post-Judging
- Review leaderboard for each track
- Export results for prize announcements
- Verify minimum number of judges per project
- Handle edge cases (ties, low judge counts)
- Announce winners at closing ceremony
Best Practices
Track Design
- 3-5 tracks max for small events (under 100 projects)
- Align with sponsors - create tracks for sponsor prizes
- Broad categories - avoid overly specific tracks
Table Layout
- 10-15 projects per table is ideal
- Physical space - ensure tables fit in venue
- Power outlets - each table needs power
Judging Schedule
- 5-7 minutes per project for judge scoring
- Buffer time between rotations for movement
- 3+ judges per project for reliable averages
Rubric Design
- 4-6 questions per rubric
- Clear criteria - avoid subjective questions
- 50-100 total points for granularity
- Track-specific - different rubrics for different tracks
Judge Management
- Brief judges before event on rubric usage
- Distribute evenly - ensure each project gets similar judge count
- Monitor progress - check leaderboard to identify under-judged projects
Troubleshooting
Projects Missing from Schedule
- Verify project was imported successfully
- Check that
dhYearmatches current year - Ensure project is assigned to at least one track
Duplicate Timeslots
- Unique constraints prevent this, but if it occurs:
- Delete all timeslots and regenerate
- Verify table records are correct
Judge Can’t Access Portal
- Verify user has JUDGE role
- Check that dhYear is set correctly
- Ensure judge is logged in
Leaderboard Shows Incorrect Scores
- Scores are averaged across judges
- Check that all responses have correct questionId
- Verify points awarded are within question.points limit
Related Pages
- User Management - Assign JUDGE role
- Admin Dashboard - Configure dhYear
- Event Management - Judge check-in process