Giter Site home page Giter Site logo

acesrc / oiutils Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nju-icpc/oiutils-legacy

0.0 1.0 0.0 142 KB

Tool collection for the Olympiad in Informatics contests

License: GNU General Public License v2.0

Python 90.80% CSS 2.25% JavaScript 6.30% HTML 0.66%

oiutils's Introduction

Oiutils

Oiutils is a collection of portable command-line tools for programming contest aid, program-based contest hosting and teaching support. We tried to keep every tool minimum, do one thing and do it well, and we encourage users pipelining these tools together to achieve their goals.

Oiutils is designed to support grading system for Olympiad in Informatics in Jiangsu, as well as Online Judge backend at Nanjing University.

Tools Overview

Source code: compile and judge

  • oi-compile: compile a source code into binary. This script automatically tries to compile a single source file into an executable using right compiler according to its file extension.
  • oi-sandbox: run any command with specified time and memory limit. Memory consumption and time usage are returned.
  • oi-fc: an enhanced version of cmp/diff that allow user to specify simple "fc scripts" to compare output files (e.g., comparing floats within certain error tolerance).
  • oi-judge: a simple script that (1) create a temporary directory, (2) put test input and executable in this directory, (3) run the executable with time and memory limit, and (4) calls an evaluation script to return judge results.

Programming contest hosting

  • oi-contest: synthesize a Makefile for a specified contest recipie and programmer's submissions. Everything (including dependency) is managed by the Makefile: the source compilation task, test runs for each test case, and ranklist generation. A few interesting features:
  1. The Makefile is incremental such that an entire ACM-ICPC contest can be hosted using this procedure by repeatedly invoking oi contest-run when new submissions are arrived.
  2. Redjuging is greatly simplified: modifying a test data yields all test runs depending on it to be re-executed, and invoking make manages the rejudge automatically.
  3. Judging reports can be generated for each individual contestant, which are useful in a formal OI contest.
  • oi-remote: a simple wrapper for ssh/scp for uploading, downloading, or execute remote commands. Useful for distributing files and collecting submissions.
  • oi-sched: invokes a SAT solver to solve for each contestant's placement.

Source code: contestant aids

Code synthesis

Visualization

  • oi-vis

Installation

Install using the following command:

python setup.py install

There are a few dependences: pyyaml, psutil.

Credits

Future

  • Collecting/distributing files (send & receive)
  • Scheduling a contest, e.g., Seat arrangements (oi sched)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.