Technical Tools

The IOI 2017 host technical committee developed a set of systems and tools to better organize the technical part of the IOI. All these systems and tools are released as open source on Github. The released set contains the following items:

Task Preparation System (TPS)
A system for preparing the contest tasks, including task statements, solutions, generators, validators, checkers, and graders. The system also includes a web interface to visualize the task structure, execute solutions on real judging environments, and export final packages for the CMS.
[repo] [tps-web] [screenshot]

Translation System
A user-friendly markdown editing environment for translating the IOI tasks, with parallel view, pdf generation, notification system, and revision history. The system supports all common languages, including right-to-left and southeastern languages.
[repo] [screenshot]

Site Administration System
A web interface for visualizing and monitoring the contest site, and executing commands remotely on the contestants and judging machines. It provides a mechanism for selecting a group of machines to execute commands on, and serves as a data hub for other IOI systems via a RESTful API.
[repo] [screenshot]

Printing System
A system for handling all print requests during the IOI and the translation meetings. It enables defining printing zones and groups, and handles all sort of print requests from contestants, CMS, translation system, and custom mass print requests.

Automation Scripts
A collection of Ansible scripts used to automate prearranged technical operations, such as preparing raw system images, bootstrapping contestant machines after cloning, configuring server VMs, and backing up contestant files during the contest.

Image Builder
A set of bash scripts used to build the contest image. It also provides scripts for building a live version of the contest image.


All above systems and tools are released under the MIT license on Github.
Copyright (c) 2017, IOI 2017 Host Technical Committee