Git Product home page Git Product logo

courthive / tods-competition-factory Goto Github PK

View Code? Open in Web Editor NEW
17.0 1.0 5.0 144.46 MB

functions to manipulate TODS-JSON documents which represent tournaments and leagues; generating draws & etc.

License: MIT License

JavaScript 0.21% TypeScript 99.77% Shell 0.01%
tournament tennis tennis-score tournament-manager tournament-algorithm tournament-brackets bracket-manager padel pickleball

tods-competition-factory's Introduction

GitHub commit activity npm

Why CourtHive

CourtHive is an Open Source / Open Data initiative to develop components to support the emergence of a standards based ecosystem of services for competition. It began when a parent's desire to participate in Tennis Player Development ran headlong into poor quality data, poor IT investments on the part of governing bodies, and the reality that the dynamics of a fragmented market are such that there is very little collaboration or integration between technology providers. A focus on Data Visualization morphed into an obsession with the production of good quality data and led to the development of a document-based tournament management platform which has ultimately influenced the emergence of the ITF's Tennis Open Data Standards.

Though the focus here is ๐ŸŽพ Tennis, the underlying data structures and tournament management capabilities enabled by these data structures are applicable to any sport which uses draw structures / brackets โšฝ ๐Ÿ€ โ›ณ ๐Ÿ….

๐ŸŽธ Current Riff

Competition Factory is a collection of state engines and associated utilities which comprise all of the business rules necessary to generate and manage tournaments with events/draws/brackets of arbitrary complexity. The Competition Factory is deployed in production in both the USTA and ITA Tournament Desk platforms and has processed ~10,000 Tournaments and ~1,000,000 matches in 2021.

๐Ÿ‘ฏ Iโ€™m looking to collaborate

If you are a developer or designer and have a passion for sport... reach out! I have a number of other repositories (e.g. a back end NodeJS server utilizing Level DB) which I'd like to make public but haven't had the time to clean up, document, write test suites, dockerize & etc.

๐Ÿ’ฌ Ask me about Data Standards or Strategic Business Development

Happy to enage on any tangential topic. My background is in the Software Industry, starting back in the early '90s, but I have only been "cutting code" for a few years; maybe this influences my perspective.

tods-competition-factory's People

Contributors

anter1994 avatar brdar avatar courthive avatar dependabot[bot] avatar renovate-bot avatar renovate[bot] avatar rodrimaia avatar sbwrege2z avatar

Stargazers

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

Watchers

 avatar

tods-competition-factory's Issues

Completed Score Integrity Check

If an Incomplete score is entered AFTER a complete score is entered it is possible for a participant to stay advanced to the subsequent matchUp. In this situation directed participants should be removed and incomplete scores should not be allowed if there are downstream dependencies.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

asdf
.tool-versions
  • node 20.14.0
  • pnpm 9.2.0
npm
documentation/package.json
  • @cmfcmf/docusaurus-search-local ^1.1.0
  • @docusaurus/core 2.4.3
  • @docusaurus/preset-classic 2.4.3
  • @docusaurus/theme-live-codeblock 2.4.3
  • @material-ui/core 4.12.4
  • @mdx-js/react 1.6.22
  • @types/react 18.3.3
  • clsx 2.1.1
  • courthive-components ^0.7.0
  • material-ui 0.20.2
  • mdx-mermaid 2.0.0
  • mermaid 10.9.1
  • react ^18.2.0
  • react-dom ^18.2.0
  • react-json-tree 0.19.0
  • tods-competition-factory 2.1.30
  • axios 0.28.1
package.json
  • @babel/core 7.24.7
  • @babel/plugin-transform-nullish-coalescing-operator 7.24.7
  • @babel/plugin-transform-optional-chaining 7.24.7
  • @babel/preset-env 7.24.7
  • @babel/preset-typescript 7.24.7
  • @commitlint/cli 19.3.0
  • @commitlint/config-conventional 19.2.2
  • @dep-tree/cli 0.19.9
  • @nestjs/class-transformer 0.4.0
  • @nestjs/class-validator 0.13.4
  • @nestjs/cli 10.3.2
  • @nestjs/common 10.3.9
  • @nestjs/config 3.2.2
  • @nestjs/core 10.3.9
  • @nestjs/jwt 10.2.0
  • @nestjs/platform-express 10.3.9
  • @nestjs/schematics 10.1.1
  • @nestjs/swagger 7.3.1
  • @nestjs/testing 10.3.9
  • @rollup/plugin-babel 6.0.4
  • @rollup/plugin-commonjs 26.0.1
  • @rollup/plugin-json 6.1.0
  • @rollup/plugin-node-resolve 15.2.3
  • @rollup/plugin-terser 0.4.4
  • @rollup/plugin-typescript 11.1.6
  • @swc/cli 0.3.12
  • @swc/core 1.5.25
  • @types/express 4.17.21
  • @types/jest 29.5.12
  • @types/node 20.14.2
  • @types/supertest 6.0.2
  • @typescript-eslint/eslint-plugin 7.12.0
  • @typescript-eslint/parser 7.12.0
  • @vitest/coverage-v8 1.6.0
  • @vitest/ui 1.6.0
  • agadoo ^3.0.0
  • ajv 8.16.0
  • ajv-formats 3.0.1
  • body-parser 1.20.2
  • c8 9.1.0
  • chalk 5.3.0
  • esbuild 0.21.4
  • eslint 8.57.0
  • eslint-config-prettier 9.1.0
  • eslint-import-resolver-typescript 3.6.1
  • eslint-module-utils 2.8.1
  • eslint-plugin-compat 4.2.0
  • eslint-plugin-import 2.29.1
  • eslint-plugin-prettier 5.1.3
  • eslint-plugin-sonarjs 0.25.1
  • esm 3.2.25
  • fs-extra 11.2.0
  • globals 15.4.0
  • husky 9.0.11
  • jest 29.7.0
  • lint-staged 15.2.5
  • pinst 3.0.0
  • prettier 3.3.1
  • prettier-eslint 16.3.0
  • reflect-metadata 0.2.2
  • rimraf 5.0.7
  • rollup 4.18.0
  • rollup-plugin-dts 6.1.1
  • rxjs 7.8.1
  • semver 7.6.2
  • source-map-support 0.5.21
  • supertest 7.0.0
  • ts-jest 29.1.4
  • ts-loader 9.5.1
  • ts-node 10.9.2
  • tsconfig-paths 4.2.0
  • tslib 2.6.3
  • typescript 5.4.5
  • variable-diff 2.0.2
  • vite 5.2.13
  • vite-tsconfig-paths 4.3.2
  • vitest 1.6.0
  • node >=20

  • Check this box to trigger a request for Renovate to run again on this repository

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

Participants Restrictions

I am trying to use this lib to create an app (or contribute to this one) in order to have automatic scheduling that also considers Participants Restrictions.

I mean, in my city is pretty common to have tournaments where you can let the organizers know in advance your restrictions/openings. like " I can play Thursday night, Fridays on mornings, and entire Saturdays".

I can see that you have the restrictions feature when assigning Courts, but I would also like to add the option to have participants contribute with their restrictions too (and the automatic scheduling should use this information when assigning matchups (and possibly future matchups too)). Is that possible? I am willing to create a pull request to implement this, but it would be nice to pick your brain a little bit on where this logic should live.

and of course, congratulations on this fantastic project!!

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.