Metadata-Version: 1.1
Name: openjudge
Version: 0.2.5
Summary: LAN programming judge
Home-page: https://github.com/theSage21/openJudge
Author: Arjoonn Sharma
Author-email: Arjoonn Sharma
License: MIT
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>
        
Keywords: judge,programming,check,proof,openjudge
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.4
