Skip to content

slashinfty/tournament-organizer

Repository files navigation

Tournament Organizer

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

Version 3 is now an ESM module. If you don't understand what this means for you, read this.

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, stepladder, round-robin, double round-robin, and Swiss. Playoffs can be paired by single elimination, double elimination, and stepladder.

For non-elimination tournaments, the following tiebreaker systems are supported (their details can be found here):

  • 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

About Pairings

Details can be found in the tournament-pairings readme.

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.

Installation

npm i tournament-organizer

Import

In Node.js:

import TournamentOrganizer from 'tournament-organizer';

In the browser:

import TournamentOrganizer from "https://esm.sh/tournament-organizer/dist/index.module.js";

Documentation

Available online: https://slashinfty.github.io/tournament-organizer/

Discussion

You can discuss this repository more in my Discord.