Giter VIP home page Giter VIP logo

wcif's Introduction

WCIF

The official specification of the WCA Competition Interchange Format.

Implementation notes

Currently the WCA website implements most of the specification. The WCIF data for the given competition can be obtained via the following endpoints:

Public endpoint

https://worldcubeassociation.org/api/v0/competitions/:competition_id/wcif/public

Publicly available (with the confidential attributes stripped out). Note: the data may be cached up to 5 minutes.

Authorized endpoint

https://worldcubeassociation.org/api/v0/competitions/:competition_id/wcif

Restricted to competition managers. Additionally, a PATCH request allows for saving the data (currently a significant subset of it).

Note on WCA Live

In order to get up-to-date live results in the WCIF data, make sure you Synchronize on WCA Live. This action makes WCA Live save the data back to the WCA website, making it available for you when requesting one of the WCIF endpoints.

Limitations

  • Currently the WCA website returns Person#registrantId of null for people without a registration (e.g. non-participating organizer).
  • Currently the WCA website does not implement the following attributes: Event#competitorLimit, Round#scrambleSets, Activity#scrambleSetId

Examples

There are many applications using the WCIF format already, those include:

wcif's People

Contributors

coder13 avatar danielegdal avatar dmint789 avatar gregorbg avatar jonatanklosko avatar jonesparaz avatar kr-matthews avatar rubiks-boy avatar suphair avatar timreyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wcif's Issues

Falsehoods section seems out of place

When reading "vision.md", I find "Falsehoods programmers believe about WCA competitions" seems a bit out of place. I think some sort of explanation how this is connected to the vision would help. Idk exactly why you put it there, but maybe something like "the data format should force developers to think about these issues"? Or is it more like "even with this format, bugs are likely to appear unless people think about these issues".

Expose city name and registration information (open date/time, base fee)

Speedcubing Canada would like to automate generation of our competition announcement graphics. Example: https://www.instagram.com/p/CvDBfiZrNrX

Data that we have in the graphic, but is currently missing from the WCIF export: cityName, registration_open, and base_entry_fee_lowest_denomination (and I guess currency_code for completeness).

I would like to propose exposing at least this additional data (possibly more if it makes sense to also include registration_close as an example). Having this data in the export would be preferred over web scraping and I imagine that other ROs could benefit from this data if they are also seeking to automate competition announcements (perhaps for their own graphics or a mailing list).

Qualification result for MBF

When adding a qualification for 3x3x3 Multi-Blind of qualification type 'by result', level needs to be an AttemptResult. For MBF, an attempt result specifies more than just the points, but also the cubes attempted and the time. Should there be a standard specified in specification.md for a MBF qualification level, such as using n/n in 99999 (time unknown), or just specifying the number of points instead of using an attempt result? The former would keep everything working as is, and the latter would require some adjustments but would make it easier to use (I think).

Breaking change: move competitorLimit inside RegistrationInfo

#23 creates a new RegistrationInfo object. There is already a competitorLimit field on the top level WCIF, which would be better in that new object.

This is not important enough on its own for a breaking change, but when WCIF eventually migrates from v0 to v1 this should probably be included.

Improve description of TimeLimit.cumulativeRoundIds

I feel like this description is confusing. Can someone please elaborate? Because "An empty array the time limit applies to each attempt." is hard to understand. Is it meant to say "An empty array MEANS the time limit applies to each attempt"? Also, I think it should be elaborated, how this works when the array is not empty.

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.