Skip to content

The judge system used to run the ShiftForward Challenge at ENEI 2018

License

Notifications You must be signed in to change notification settings

ShiftForward/sueca-judge-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sueca Judge Server Build Status

The judge system used by ShiftForward to run the ShiftForward Challenge at ENEI 2018.

Quick Start

First of all, you'll need to create a file with a list of entry codes that can be used by participants to register. You can do that by creating an entry_codes.txt file at the root of this project with one entry code per line.

Then, copy or rename src/main/resources/application.conf.template to an application.conf file in the same location. You can tweak the settings there, which override the defaults present in src/main/resources/reference.conf.

You'll need SBT to build and run the server and Docker to run submissions in a safe environment. Once you have both installed in your system, you can run this server by executing:

sbt reStart

A web UI will be available at http://localhost:8090 and the server will start running validations and tournaments periodically.

Launching as a Distributed System

This judge system is prepared to run as a distributed system in which the Web UI, a Runner Master (orchestrating the validations and tournaments to run) and several Runner Workers (running the submissions as directed by the Runner Master) are launched on different physical or virtual servers. Different command-line parameters can be passed to SBT to change the behavior of the process:

# run the Web UI and an internal master-worker system
sbt reStart

# run the Web UI only
sbt reStart --http

# run a Runner Master only
sbt reStart --runner-master

# run a Runner Worker only
sbt reStart --runner-worker

The Web UI exchanges information with the Runner Master through the database only. The Runner Master forms a cluster with all Runner Workers using Akka Cluster, allowing them to exchange messages in real-time. Therefore, in order to get the system working in a distributed manner you need to provide a persistent database and configure Akka Cluster properly in your application.conf (reference.conf already helps with most of that).

About

The judge system used to run the ShiftForward Challenge at ENEI 2018

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages