Skip to content

Primer on Tournie Challonge bot

Sebastian Gröhn edited this page Jan 9, 2019 · 1 revision

Intro & goals

The goal is to be able to manage the common tasks for Challonge tournaments via Slack, such as reporting scores for matches, etc.

As a next step, I would like to add support for deadlines for each round / match, to facilitate quicker tournaments.

Related projects

When looking for already existing bots, I found these code repos, both seemingly abandoned and not having the features we want:

Tools & framework

Iteration 1 – MVP

User actions

  • Link Challonge user ↔ Slack user
  • Show open match(es) (all tournaments), including opponent (Slack user + tournament display name), time of “opening”
  • Report score on open match

Admin actions

These might be needed, as there’s no way to query a Challonge user the tournament s/he participates in:

  • Link created tournament to Slack (channel?)

  • Unlink tournament from Slack (channel?), or done automatically when tournament has ended?

  • Or, as an alternative approach, just search all open tournaments for a Challonge organization.

Bot state

  • Mapping Challonge user ↔ Slack user
  • Mapping tournament(s?) ↔ Slack (channel), if not using alternative approach

Iteration 2 – Deadlines per round

User actions

  • Query deadline for open match(es)

Admin actions

  • Set deadlines for rounds

Bot state

  • Deadline per tournament and round

Nice to have

User tournament actions

These actions are available in Slack channel with already linked tournament(?s).

  • Sign up for tournament (before it is started)
  • Leave tournament (before it is started)
  • Mark inactive in tournament (when it is in progress)
  • List currently open matches (in all tournaments linked to channel)
  • Report score on currently open match (when tournament is in progress)
  • Set display name for tournament
  • Show participants for tournament (Slack user + tournament display name, standings if available)

Also: it would be nice if the above was available in conversation with Slack bot, for all linked tournaments regardless of Slack channel.

Admin actions

  • Link created tournament to Slack channel
  • Unlink tournament from Slack channel
  • Start tournament
  • Finalize tournament

Bot actions

  • Announce as deadlines approach, ping users of unplayed matches. Can this be done with a AWS lambda?

Bot state

  • Mapping tournament(s?) ↔ Slack channel
  • Mapping Challonge user ↔ tournament participant (not strictly needed but can give better performance)