Refefree Contest System
In 2005 we finished development of our new programm contest software named Refefree. It
was developed by Markus Moll and Wolfgang has as part of a study thesis on programming contests.
The system itself consists of a server and two clients. There is one client for judges,
called sage, and one client for contestants, called turmeric.
The server (called overlord) is written in C++ and must therefore be compiled on the host system.
The sources are currently hosted on nongnu.org. In order to build them following
the instructions which are given by the included "ant" task. Due to restrictions on nongnu.org
a slightly modified version which uses javac instead of gcj and builds a smaller client can
be downloaded from this page.
Downloads
- The study thesis (describes programming contests in general and our contest system in
detail)
- The protocol description (detailed description on the network protocol used between client
and server)
- Client manual (How to use the contestant client)
- The server (can be build using "make")
- The client package (contains the java sources and necessary
files and a startable jar file - compiled with Java 5 - for the client)
- The native component (C++ sourcecode which can be build using "make". Needed to compile
and test solutions)
- An example problem set (contains input/output files, sample solutions and configuration
files)
The native component currently supports C, C++ and Java. If you want to use other languages,
you have to modify it and the configuration files. The modifications
in native boil
down to adding a call to the corresponding compiler. Basically all you have to do is to add
an entry to the languages array
right before main and implement the corresponding functions. Have a look at
native.cc for details.
Instructions
- To get the system running, download the server, the client, the native component and
the example problem set.
- Unpack all files.
- Build the server and the native component using
make.
- Move the native executable to the directory where "refefree.jar" is located.
- Move the server executable (overlord) to the problem set directory
- Open client_config.xml and update the test-base section to point to the sample
problem set directory.
- Open a shell and change to problem set directory.
- Start the server by calling ./overlord -c serverconfig.xml
- Open another shell and start the contestant client by changing to its directory and calling
java -jar refefree.jar &
- Log in using "team1" as name and password.
- Start the judge client: java - jar refefree.jar client_config.xml judge
- Log in using "judge1" as name and password.
- Change (in the judge client) to the "misc" tab and click on "running".
- The contest is now running, refer to the client manual to get information on how to submit
problems.