OJudge Platform
OJudge Platform is a software for the creation of an Online Judge site, such as the famous https://onlinejudge.org. At this moment it is under heavy development, which means that it is mostly unusable, and the source code is provided here mostly for developers willing to contribute to it.
The code is released under the terms of the GPL-3 license, a copy of which is available in the file LICENSE. According to the license, it comes with ABSOLUTELY NO WARRANTY, and you are free to reuse and distrubute it, in compliance with the terms of the mentioned license.
Instructions for the building and use of the software:
To build and run this software you need Wt (http://webtoolkit.eu) and its dependencies (including boost, cmake and a C++17 compatible compiler). Check the Wt documentation on how to install it in your system.
You will also need PostgreSQL installed and running in your system.
oath-toolkit (https://www.nongnu.org/oath-toolkit/index.html) is required for Two Factor Authentication. It is available for install in all major Linux distributions.
GraphicsMagick++ is required for some image processing.
Clone this repository, or a fork of it, and from its root directory run:
$ cmake . $ make
If your system is correctly setup, the code will be built. Then, check that the file
run.shpoints to the correct
Wt/resourcesdirectory (which, by default, is
/usr/share/Wt/resources, but, depending on your particular setup, could be
/usr/local/share/Wt/resourcesor similar).
Now create an empty database, with proper permissions, for OJudge to use.
Before the first run, create or edit the file
/.config/ojudge/configand include the following lines:
[database] host= dbname= user= password=
Once that is setup, you can start the server by running:
$ ./run.sh
If there are no errors, you'll access the platform via your web browser, pointing it to
http://localhost:9090. An administration user is created by default, with username
adminand also password
admin.
In case you have problems setting and running this software, or if you'd like to contribute code to its development, you are welcome to join us in https://groups.google.com/d/forum/ojudge-developers. We are also at Discord: https://discord.gg/aFQZRZC.
You can also contribute with financial support using these channels: