Metadata-Version: 1.1
Name: openjudge
Version: 0.2.4
Summary: LAN programming judge
Home-page: https://github.com/theSage21/openJudge
Author: Arjoonn Sharma
Author-email: Arjoonn Sharma
License: MIT
Description: OpenJudge
        =========
        [![Build Status](https://travis-ci.org/theSage21/openJudge.svg)](https://travis-ci.org/theSage21/openJudge)
        [![Coverage Status](https://coveralls.io/repos/theSage21/openJudge/badge.svg?branch=master&service=github)](https://coveralls.io/github/theSage21/openJudge?branch=master)
        
        A judge I made to judge the programming competitions in college.
        It requires a web interface to function.
        
        Language support is unlimited, as long as you can write a shell script for it.
        The interface I use is [judge-interface](https://github.com/theSage21/judge-interface).
        The interface ships with
        
        - python3
        - python2
        - gcc
        - g++
        
        Why?
        ----
        
        - Judging programs by hand quickly becomes an experience best forgotten
        - Roll my own
        
        Setup
        -----
        
        ```
        cd ~
        mkdir judge
        cd judge
        virtualenv -p python3 env
        source env/bin/activate
        pip install openjudge
        ```
        
        In order to setup the interface one can do the following.
        
        ```
        cd ~
        git clone https://github.com/theSage21/judge-interface.git
        cd judge-interface
        ./setup.sh
        ```
        
        1. `./setup.sh` does most of the work for you.
        2. Set the SLAVE_ADDRESSES in settings.py by default it is set to 127.0.0.1:9000
        
        The interface is set up as a standard django server. I prefer using Nginx,Gunicorn as a 
        combination. Check my [blog](http://arjoonn.blogspot.com/2015/05/django-gunicorn-and-nginx.html) for how to set that up.
        `setup.sh` does this for you.
        
        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.
        
        Usage during the competition
        ----------------------------
        
        1. Run the interface with `./runserver.sh`
        2. Register users:
            - Register users with `python add_user.py` using a python shell at the registration desk.
              the file can be found in `judge-interface/webserver/`
            - This can also be done via the Django Admin
        3. Run the judge with `python -c 'from openjudge.slave import Slave;Slave().run()'`
        3. Tell everyone to navigate to the webserver. It will be something like `192.168.1.45`
        4. Enjoy the fruits of watching a hundred people program.
        
        
        Gotchas
        -------
        Some features are not available. If you want you can implement them yourself.
        
        - No sandboxing.
        
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
