tournament-organizer

JavaScript library for running tournaments

Usage no npm install needed!

<script type="module">
  import tournamentOrganizer from 'https://cdn.skypack.dev/tournament-organizer';
</script>

README

Tournament Organizer

A Node.js module for organizing tournaments, written in TypeScript.

If you are upgrading from v1.X to v2.X, it is strongly recommended you read the documentation, as a lot has changed.

npm GitHub last commit GitHub issues GitHub pull requests GitHub Ko-Fi

About

This JavaScript module for Node.js facilitates the organization and execution of tournaments.

Tournaments can be paired by single elimination, double elimination, round-robin, double round-robin, and Swiss.

If round-robin, double round-robin, or Swiss are chosen, then a single elimination or double elimination playoffs can follow.

For non-elimination tournaments, the following tiebreakers systems are supported:

  • Solkoff
  • Median-Buchholz
  • Sonneborn-Berger
  • Cumulative
  • Versus
  • Opponent's match win percentage
  • Game win percentage
  • Opponent's game win percentage
  • Opponent's opponent's match win percentage

A Couple Details

For double elimination, the method in which players move to the loser's bracket follows the same four alternating orders shown here to avoid rematches.

For round-robin (and double round-robin), players are paired via Berger Tables.

Swiss pairings are generated using a weighted Blossom Algorithm with maximum cardinality.

Installation

npm i tournament-organizer

Documentation

To see all methods and properties, please visit the Wiki.

Implementations

Contributing

Please submit an issue if you encounter a bug or have a feature suggestion.

If you are interested in contributing, please feel free to fork and clone the repository (on main branch), then submit a pull request.

I am a high school teacher, and would appreciate any and all support in continuing this project.