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.

DOMjudge
DOMjudge
DOMjudge
DOMjudge
DOMjudge
DOMjudge

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.

Apps Similar to DOMjudge