Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Contest Management System
Python JavaScript HTML C++ CSS C Other
Failed to load latest commit information.
cms Introduce teams and enable ProxyService to send team data
cmscommon Moved terminal-interacting functions in cmscommon/
cmscompat Fixup 1edb4bb
cmscontrib Support hidden/ip-locked/passworded participations
cmsranking Fix RWS's error 500 on start when submissions are already present on …
cmstaskenv Delete *.o files when issuing cmsMake -c
cmstestsuite Introduce teams and enable ProxyService to send team data
config Use more than one workers in tests
docs Update localization instructions
isolate @ 1b20af4 Update isolate submodule.
scripts Split CWS' handlers
.editorconfig Use .editorconfig
.gitignore Add entries to .gitignore
.gitmodules Include isolate as a git submodule Travis setup
.travis.yml Travis setup
LICENSE-AGPL3.txt Remove old "doc" directory
LICENSE.txt Use Python's logging system Add Gitter chat badge
dev-requirements.txt Introduce virtualenv instructions and pin dependencies Update location and installation of localization files
requirements.txt Make ResourceService work with psutil-3.0 Changes to loaders and import scripts

Contest Management System


Join the chat at


CMS, or Contest Management System, is a distributed system for running and (to some extent) organizing a programming contest.

CMS has been designed to be general and to handle many different types of contests, tasks, scorings, etc. Nonetheless, CMS has been explicitly build to be used in the 2012 International Olympiad in Informatics, held in September 2012 in Italy.


For end-users it's best to download the latest stable version of CMS, which can be found already packaged at

This git repository, which contains the development version in its master branch, is intended for developers and everyone interested in contributing or just curious to see how the code works and wanting to hack on it.

Please note that since the sandbox is contained in a git submodule you should append --recursive to the standard git clone command to obtain it. Or, if you have already cloned CMS, simply run the following command from inside the repository:

git submodule update --init


The complete CMS documentation is at

The mailing list for announcements, user support and general discussion is You can subscribe at So far, it is an extremely low traffic mailing list.

The mailing list for development discussion (to submit feedback, proposals and critics, get opinions and reviews, etc.) is You can subscribe at

Please don't use these mailing lists for bug reports. File them on github instead.

For extemporaneous support and discussion, join the Gitter chat (see link above).

To help with the troubleshooting, you can collect the complete log files that are placed in /var/local/log/cms/ (if CMS was running installed) or in ./log (if it was running from the local copy).


CMS has been used in several official and unofficial contests. Please find an updated list at

If you used CMS for a contest, selection, or a similar event, and want to publicize this information, we would be more than happy to hear from you and add it to that list.

Something went wrong with that request. Please try again.