Skip to main content

LAN programming judge

Project description

<h1>OpenJudge</h1>

<p><a href=”https://travis-ci.org/theSage21/openJudge”><img src=”https://travis-ci.org/theSage21/openJudge.svg” alt=”Build Status” /></a> <a href=”https://coveralls.io/github/theSage21/openJudge?branch=master”><img src=”https://coveralls.io/repos/theSage21/openJudge/badge.svg?branch=master&amp;service=github” alt=”Coverage Status” /></a></p>

<p>A judge I made to judge the programming competitions in college. It requires a web interface to function.</p>

<p>Language support is unlimited, as long as you can write a shell script for it. The interface I use is <a href=”https://github.com/theSage21/judge-interface”>judge-interface</a>. The interface ships with</p>

<ul> <li>python3</li> <li>python2</li> <li>gcc</li> <li>g++</li> </ul>

<h2>Why?</h2>

<ul> <li>Judging programs by hand quickly becomes an experience best forgotten</li> <li>Roll my own</li> </ul>

<h2>Setup</h2>

<p><code> cd ~ mkdir judge cd judge virtualenv -p python3 env source env/bin/activate pip install openjudge </code></p>

<p>In order to setup the interface one can do the following.</p>

<p><code> cd ~ git clone https://github.com/theSage21/judge-interface.git cd judge-interface ./setup.sh </code></p>

<ol> <li><code>./setup.sh</code> does most of the work for you.</li> <li>Set the SLAVE_ADDRESSES in settings.py by default it is set to 127.0.0.1:9000</li> </ol>

<p>The interface is set up as a standard django server. I prefer using Nginx,Gunicorn as a combination. Check my <a href=”http://arjoonn.blogspot.com/2015/05/django-gunicorn-and-nginx.html”>blog</a> for how to set that up. <code>setup.sh</code> does this for you.</p>

<p>Note that the judge will have to run on a linux like machine. I shamelessly used redirection and I have no idea how they translate on a windows box if they do at all. Besides that, the interface can run on another machine and the judge on another.</p>

<h2>Usage during the competition</h2>

<ol> <li>Run the interface with <code>./runserver.sh</code></li> <li>Register users: <ul> <li>Register users with <code>python add_user.py</code> using a python shell at the registration desk. the file can be found in <code>judge-interface/webserver/</code></li> <li>This can also be done via the Django Admin</li> </ul></li> <li>Run the judge with <code>python -c ‘from openjudge.slave import Slave;Slave().run()’</code></li> <li>Tell everyone to navigate to the webserver. It will be something like <code>192.168.1.45</code></li> <li>Enjoy the fruits of watching a hundred people program.</li> </ol>

<h2>Gotchas</h2>

<p>Some features are not available. If you want you can implement them yourself.</p>

<ul> <li>No sandboxing.</li> </ul>

Project details


Release history Release notifications

History Node

3.0.8

History Node

3.0.7

History Node

3.0.6

History Node

3.0.5

History Node

3.0.4

History Node

3.0.3

History Node

3.0.2

History Node

3.0.1

History Node

3.0.0

History Node

2.0.16

History Node

2.0.15

History Node

2.0.14

History Node

2.0.13

History Node

2.0.12

History Node

2.0.11

History Node

2.0.9

History Node

2.0.8

History Node

2.0.6

History Node

2.0.5

History Node

2.0.4

History Node

2.0.3

History Node

2.0.2

History Node

2.0.0

History Node

0.3.12

History Node

0.3.11

History Node

0.3.10

History Node

0.3.9

History Node

0.3.8

History Node

0.3.6

History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.9

History Node

0.2.8

History Node

0.2.7

History Node

0.2.6

This version
History Node

0.2.5

History Node

0.2.4

History Node

0.2.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
openjudge-0.2.5.tar.gz (6.9 kB) Copy SHA256 hash SHA256 Source None Aug 27, 2015

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page