Git Product home page Git Product logo

icpctools's Introduction

platforms ICPC Software License pipeline status

Welcome to the ICPC Tools!

The ICPC Tools are a set of tools to support running programming contests. For the latest downloads, please go to the ICPC Tools website.

Each of the ICPC tools can be used individually, or together in any combination. They are all designed to support the REST-based Contest API as defined by the Competitive Learning Initiative (CLI). Some features require extensions to the specification, and those are described here.

These tools were built to support the International Collegiate Programming Contest (ICPC) World Finals and have been used there for many years, but the intention is that they are usable for local and regional contests as well.

The ICPC Tools

Tool Description
Balloon Utility Manages and prints which teams to award a balloon
Contest Data Server (CDS) Single-point URL services for accessing all contest data
Presentation Animated display of scoreboards or other contest data
Presentation Admin Remote administration of multiple presentations (requires the CDS)
Resolver Animated reveal of final contest results
Coach View Ability to remotely see the webcam and desktop of a team
Problem Set Editor Generate/Edit YAML descriptions of problem sets for input to CLICS-compatible Contest Control Systems.
Contest Utilities A variety of useful contest-related utilities: event feed validation, scoreboard comparison, floor map generators, and more!

Contest Control System Compatibility

The ICPC Tools are built to work with any Contest Control System (CCS) that supports the REST-based Contest API.

To be more specific, the only part of the Contest API that is strictly required is the event feed and any file references that the feed refers to. If your CCS correctly supports the event feed, then all of the ICPC Tools will work even if the rest of the API is not implemented. The one exception to this is the CDS' and contest utility support for comparing scoreboards - to compare a scoreboard, the CCS must have one, of course!

The CDS also retains support for the deprecated XML Event Feed, Mirror. If your CCS supports this feed as specified then the tools should still work with a CDS in the middle, albeit with some missing function.

The most popular CCSs that have been tested and successfully used at multiple contests with the ICPC Tools are listed here:

Compatible CCS Mechanism
DOMjudge Contest API
Kattis Contest API
PC^2 XML event feed

Contributing

The ICPC Tools are developed, tested, and maintained by a group of ICPC volunteers. Bug reports, feature requests, and even just knowing what worked or didn't for your contest are always appreciated. Pull requests are also welcome, but if you want to implement a big feature it might be best to first create an issue to discuss it.

To become a committer you must have a history of high quality bug reports, PRs, and be approved by the ICPC Tools team.

Development

Using Eclipse

You can use Eclipse to develop and debug the ICPC Tools. We will add information on how to run and debug later.

Using IntelliJ IDEA

See the IntelliJ IDEA specific documentation.

License

All of the tools are provided under the included license and are "Free as in Beer". We welcome you to use and enjoy them, but if you ever run into anyone who has contributed to them - Tim, John, Nicky, Sam, Troy, etc. we would greatly appreciate it if you'd buy us a beer, a stroopwafel, or some other suitable token!

All ICPC Tools are Copyright © by the ICPC.

icpctools's People

Contributors

deboer-tim avatar marcoucm avatar meistert avatar mpsijm avatar nickygerritsen avatar troy2914 avatar ubergeek42 avatar vmcj avatar yang-er avatar zalenski avatar

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.