Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In-dashboard admin console #876

Open
6 tasks
lowtorola opened this issue Jan 5, 2025 · 1 comment
Open
6 tasks

In-dashboard admin console #876

lowtorola opened this issue Jan 5, 2025 · 1 comment
Assignees
Labels
module: backend Related to the Siarnaq backend module module: frontend Related to the Siarnaq frontend module priority: p1 critical type: feature New feature or request, or quick non-essential bugfix typescript Pull requests that update Typescript code

Comments

@lowtorola
Copy link
Contributor

lowtorola commented Jan 5, 2025

Currently, managing battlecode is a mess, requiring various workarounds for creating/running tournaments, managing episode details, etc. It would be great if all of the common organizational tasks could be performed from one centralized, easy-to-use source in the regular dashboard, at a link like play.battlecode.org/admin.

Things that would be great to have in the admin console (please add to this @TheApplePieGod):

  • creating/updating/hiding tournaments
  • creating/updating/deleting tournament rounds
  • running tournaments
  • adding/uploading new maps??? (esp could be cool since we are going to have duplicate maps for py and java episodes)
  • editing client/engine versions
  • manual submission freezes

To create this console, we can add a new route stem to App.tsx like PrivateRoute, but which ensures that a user has admin permissions (TODO is staff enough permission level? probably prefer only admins can access). Call this AdminRoute. Now, we can simply add pages on this route stem and they should be safe. Thanks to the auto-generated API, adding new api methods should be fairly straightforward.

@lowtorola lowtorola added type: feature New feature or request, or quick non-essential bugfix priority: p1 critical module: frontend Related to the Siarnaq frontend module module: backend Related to the Siarnaq backend module typescript Pull requests that update Typescript code labels Jan 5, 2025
@lowtorola
Copy link
Contributor Author

Have a tournament created:

  • have to initialize tournament (in admin ui, click "initialize" action which creates bracket and spawns rounds EXISTS RN)

  • now, you can go into tournament rounds and you have to run them in order

    • go into round and select maps (usually select 5 maps)
    • "create and enqueue" matches for e.g. round 1 (that round)
  • can't touch next rounds until prev round is "complete" (implies want some sort of finalize action/locking logic in the ui)

    • all matches in prev round have to run and succeed
    • if they dont succeed, you have to create and enqueue matches again
    • which means that the old match results are wiped out (pretty sure that you don't have to delete anything)
    • can't allow user to go forward until all matches in a round are complete (statusbccenum)
    • click run, run the round, can review the matches visually before moving on
  • release status of the tournament round (some toggle which turns on visibility for each round "release results to bracket service")

  • links to challonge

  • link to client tournament viewer (EMBED???)

  • hide hidden matches from the queue

  • option in the episode api/frontend to turn off ranked scrims

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module: backend Related to the Siarnaq backend module module: frontend Related to the Siarnaq frontend module priority: p1 critical type: feature New feature or request, or quick non-essential bugfix typescript Pull requests that update Typescript code
Projects
None yet
Development

No branches or pull requests

2 participants