About the project
DOMjudge is an automated judge system to run programming contests. It has a mechanism to submit problem solutions, have them judged fully automatically and provides (web)interfaces for teams, the jury and the general public.
DOMjudge is primarily focused to be used in programming contests like the ICPC programming contests, where teams are on-site and there is a fixed problem set and time frame. It can however also be adapted to other contexts.
The system scales well: distributed judging is easy and it has a modular system for plugging in languages or compilers. The team interface is kept simple and efficient, while the administrator's view has many features, including rejudging, clarifications, detailed submission/judging information. There's a REST API to extend DOMjudge in any direction you need.
It is free and open source software, making it easy to adapt it to your needs.
It has been used in many live contests, a selection:
- ICPC Sub-regionals: BAPC (since 2004), GCPC (since 2010), UKIEPC (since 2015)
- ICPC Regionals: NWERC (since 2007), SWERC (since 2008), SER USA (since 2010), SOCAL (since 2013), RMRC (since 2014), South Pacific Regional
- ICPC Championship: NAC (in 2023)
- ICPC World Finals (since 2012, and since 2018 as main system)
DOMjudge has also been adapted for use in numerous online contests, as "courseware" in teaching environments, etc. Only a few links (some might be dead): online judge at FAU, courseware at UU, Programa-Me (a program for high school students), IIT Kanpur "Chaos" contest. If you are using (an adapted version of) DOMjudge, we would be glad to hear about it, and very grateful for your feedback.
The following is required to run DOMjudge:
- At least one machine running Linux, with root access
- Apache (or Nginx) web server with PHP >= 7.4.0 and PHP command line interface
- MySQL or MariaDB database server version 5.5.3 or newer
- Compilers for the languages you want to support
For a detailed list of all software please refer to the administrator manual.
Authors and contact
The main developers are Jaap Eldering, Nicky Gerritsen, Keith Johnson, Thijs Kinkhorst, Mart Pluijmaekers, Michael Vasseur and Tobias Werth, with contributions from many other people. Anyone interested is welcome to contribute to DOMjudge.
The project is licensed under the GNU General Public Licence. This gives you the freedom to use it for any purpose, without cost, make changes that you require and share those with the community.
You can reach us through the development mailinglist DOMjudge-devel. (You need to be subscribed to the list before you can post, to counter spam.) This is also the place to get help with your questions about installing or using DOMjudge.
DOMjudge has a Slack workspace where a number of developers and users of DOMjudge linger. Feel free to drop by with your questions and comments, but note that it may sometimes take a bit longer than a few minutes to get a response, partly because people might be in different timezones.
If you want to privately report a security issue, please send it to email@example.com.