Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the worldcubeassociation.org wiki!
This repository hosts the source code for https://www.worldcubeassociation.org/, and is maintained by the World Cube Association Software Team (WST for short).
Are you interested in joining the team?
Awesome, we need help! Please take a look at how to join the WCA Software Team!
Are you interested in translating the website into your native language?
Thanks in advance! We are a global organization, and we love being able to show that by supporting the many languages our members speak. Please see translating the website.
Are you a member of the WCA Regulations Committee?
Are you a developer looking to integrate with the WCA website?
We do have a v0 API you can consume, and we would love for you to battle test it and give us feedback! Please bear in mind that we are a small team, and we haven't taken the time to document our API. We plan to do so with v1 of the API, but we do not have a timeline for when we will release a v1 of our API. For now, if you want to figure out what our API does, we recommend looking at the source code (see here, search for "namespace :api" at the bottom) or the emails content . If you have further questions, feel free to file an issue here on GitHub, or email the WCA Software Team at mailto:email@example.com.
If you are interested in API design and want to help us with developing v1 of our API, please reach out to us over email and we'll figure out some tasks for you to take on =)
We do have some documentation on our OAuth API and the official WCA competition data format standard:
Here we have a collection of replies to different emails about the API
- List of available endpoints here.
- The French association has some integration you can use as an example, like upcoming competition in France.
- WCA Data Protection Committee (WDPC) might be interested in what you are building and we are currently trying to figure out the best way to handle third-party usage and our regulations, so, please, email them.
(A little) More details on the endpoints
- /competitions lists competitions, paginated 25 per page, you can use page query parameter to get more, prev/next links should also be in the response headers. Additionally you can use the q query parameter to search competitions by a phrase.
- /competitions/:id/competitors lists competitors for a competition given it has results uploaded, those are the people who actually competed
- /competitions/:id/results lists competition results, each one corresponds to competitor times for some event&round
- /search/regulations allows for searching regulations by a phrase
- /search/users lets you search users (WCA accounts), but when you use the persons_table=true query parameter it searches profiles with official results. It returns results paginated, already sorted by name.
- Competitions are sorted by start date DESC (and currently there is no parameter to change that behavior). You can however specify a time range you're interested in, use start=yyyy-mm-dd parameter to get competitions after the given date and end=yyyy-mm-dd to get competitions before the given date (combine both to specify an exact range). Additionally there is a country_iso2 parameter to specify competition's country, in case it's of any use for you.
- Example of getting upcoming competitions referring to a specific date.
Concerning the people list returning only 25 entries, see the first of the points above, the same applies for /persons.
Are you a member of the software team?
Learn more about:
- Merging and deploying
- Spinning up a new server
- The state of the website
- Building Regulations locally
- Developer database export
- Useful commands to know
- Payments with Stripe
- Why do we have both "users" and "persons"?