Categories
Self-Hosted Event Management Competitive Programming Online Judge Programming Contests Education Technology Automated GradingStars
Forks
Watchers
Developer links
DOMjudge
Built for ICPC-style programming contests, DOMjudge takes team submissions, judges them in a restricted sandbox, and posts a live scoreboard. Each team gets its own page. There they read the problem set, submit source code from the browser or a command line client, follow verdicts, and send clarification requests. Judges see every submission, judging run, and output diff. They verify results and rejudge a single submission or everything for a language, problem, team, or judgehost. Administrators schedule activation, start, freeze, end, and unfreeze times, import teams, categories, affiliations, and problems in bulk, and watch a traffic-light status for every team. The public scoreboard freezes for the final stretch and exports as a static HTML page. Judgehosts compile and run each solution with time and memory limits in languages such as C, C++, Java, Python, Kotlin, Go, and Haskell, with custom validators and interactive problems when a task calls for them. Balloon runners get a delivery queue. Clarifications sort into categories. Open contests accept self-registration. The Contest API and event feed connect external scoreboards, and a shadow mode compares results against another system. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. GPL-2.0 licensed.
Benefits
- Run Contests Like The ICPC
- Follow ICPC conventions for pass-fail scoring, penalty time, scoreboard freezes, balloons, and clarifications, so regionals, school contests, and training camps run on a proven rulebook.
- Judge Fairly As Teams Scale
- Add judgehosts as team counts grow; the manual recommends roughly one per twenty teams, and teams with queued submissions get lower priority so no team can starve the others.
- Inspect And Rejudge With Confidence
- Judges can compare team output with expected output, mark results verified, and rejudge by submission, language, problem, team, or judgehost, applying a rejudging set only after reviewing it.
- Plug Into The Contest Ecosystem
- A Contest API with an event feed, ICPC problem package import and export, and a shadow mode let DOMjudge exchange data with external scoreboards and other contest systems.
Features
- Team, Jury, And Public Interfaces
- Separate web interfaces serve competitors, judges, administrators, and spectators, with roles such as team member, jury, admin, and balloon runner controlling what each account can see and do.
- Distributed Judgehosts
- Judgehosts compile and run submissions in a restricted environment with time and memory limits, support custom validators and interactive problems, and can run several judge daemons per machine.
- Scoreboard And Freezes
- The public and team scoreboards update live, freeze before the end as organizers choose, unfreeze at a set time or with one button press, and can export as static HTML.
- Bulk Import And Problem Packages
- Import team categories, affiliations, teams, accounts, contest metadata, and problems from JSON, YAML, TSV, or the ICPC CMS API, with problems exchanged as ICPC package zip bundles.
- Clarifications And Balloons
- Teams ask questions by category, judges answer or assign them to queues, and balloon runners see which solved problems still need a balloon delivered to which team.
- Authentication And Registration
- Teams log in with passwords, IP address matching, proxy headers, or REMOTE-USER, and open contests can enable self-registration so teams sign themselves up.