tods-competition-factory 0.56.2 → 0.56.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,19 +1,40 @@
1
1
  # Competition Factory
2
2
 
3
- The **[Tennis Open Data Standards](https://itftennis.atlassian.net/wiki/spaces/TODS/overview)**, **(TODS)**, provide a document-based representation of all of the elements of a tournament including participants, events, draws, matchUps, contacts, and references to online resources. Although the data standard is emerging in the sport of Tennis, **_the data structures apply to tournaments in many sports_**.
3
+ [Online Documentation with examples](https://courthive.github.io/tods-competition-factory/)
4
4
 
5
- The **Competition Factory** is a collection of "state engines" for transforming/mutating **TODS** documents and is intended to ensure the integrity of Tournaments by managing all state transformations. These engines embody the "business rules" required by Tournament Management Solutions, and enable an entirely new way of constructing software to manage tournaments. The rules governing the creation of draws, seeding, and participant movement can be present on a standalone client, on a server, or both. An entire tournament management solution can run in a browser, optionally utilizing IndexedDB or localStorage, or a client can communicate with a server which utilizes a SQL or NoSQL database, or simply the file system. Server deployments support asynchronous processing models in **Node.js**.
5
+ ## Tournament Business Rules
6
6
 
7
- [Online Documentation with examples](https://courthive.github.io/tods-competition-factory/)
7
+ The **Competition Factory** is a collection of "state engines" for transforming/mutating tournament records and is intended to ensure the integrity of Tournaments by managing all state transformations. These engines embody the "business rules" required by Tournament Management Solutions, and enable an entirely new way of constructing software to manage tournaments.
8
+
9
+ The rules governing the creation of draws, seeding, and participant movement can be present on a standalone client, on a server, or both.
10
+ An entire tournament management solution can run in a browser, or a client can communicate with a server which utilizes a database, or simply the file system.
11
+ Server deployments support highly scaleable asynchronous processing models in **Node.js**.
12
+
13
+ ## Data Standards
14
+
15
+ The Competition Factory utilizes the **[Tennis Open Data Standards](https://itftennis.atlassian.net/wiki/spaces/TODS/overview)**, **(TODS)**,
16
+ which provide a document-based representation of all of the elements of a tournament including participants, events, draws, matchUps, contacts, and references to online resources. Although the data standard is emerging in the sport of Tennis, **_the data structures apply to tournaments in many sports_**.
17
+
18
+ ## Time Capsule
19
+
20
+ After a tournament has been completed, a **TODS** file can be considered a "time capsule" of all the information related to the constructrion and management of a tournament. This means that complete historical data is available in one cross-platform, database-independent JSON file,
21
+ removing all concerns about maintaining software maintenance contracts to retain access to data, as well as any reliance on applications which make sense of database schemas.
22
+
23
+ ## Core Engines
24
+
25
+ Competition Factory engines manage different concerns within a tournament and may be used either synchronously or asynchronously.
8
26
 
9
- ## State Engines
27
+ 1. [**competitionEngine**](./apis/competition-engine-api) - manages resources which may be shared across multiple linked tournaments, such as venues (courts & other locations); includes advanced scheduling and cross-tournament reporting.
28
+ 2. [**tournamentEngine**](./apis/tournament-engine-api) - manages tournament metadata, participants, events (including the generation of complex draw types and "flights" within events), and reporting.
29
+ 3. [**drawEngine**](./apis/draw-engine-api) - generates drawDefinitions and matchUp results; manages participant seeding and movement within and between draw structures.
10
30
 
11
- Engines manage different concerns within a document structure representing a tournament and may contain **accessors, generators, getters, governors and test suites**. Engines can be used either synchronously or asynchronously.
31
+ ## Other Utilities
12
32
 
13
- 1. **competitionEngine** - managages resources which may be shared across multiple linked tournaments, such as venues (courts & other locations); includes advanced scheduling and cross-tournament reporting.
14
- 2. **tournamentEngine** - manages tournament metadata, participants, events (including the generation of complex draw types and "flights" within events), and reporting.
15
- 3. **drawEngine** - generates drawDefinitions and matchUp results; manages participant seeding and movement within and between draw structures.
16
- 4. **mocksEngine** - generates tournaments, participants, events, drawDefinitions and scheduling profiles for testing purposes.
33
+ 1. [**mocksEngine**](./apis/mocks-engine-api) - generates complete tournament objects, or tournamentRecords, as well as mock persons, participants and matchUp outcomes.
34
+ It is used extensively in the ~1000 test suites that are run against the factory methods before every package release.
35
+ 2. [**scoreGovernor**](./scoreGovernor) - is a collection of scoring related utilities which provide analysis/validation or generate values, but do not make any mutations.
36
+ 3. [**matchUpFormatCode**](./codes/matchup-format) - is an ITF matchUp format code parser, stringifier, and validator.
37
+ 4. [**ageCategoryCode**](./codes/age-category) - is an ITF ageCategoryCode parser.
17
38
 
18
39
  ## Installation
19
40