python-discord / sir-robin

Our event bot, for managing community events.
MIT License
18 stars 14 forks source link

Create a spreadsheet-like view of the Code Jam participants #54

Open camcaswell opened 2 years ago

camcaswell commented 2 years ago

We have bot commands for moving people between teams, but we use a manually-updated spreadsheet to figure out where to move them and who to replace as leader, etc. If we generated a view of the participants in the database we don't have to worry about maintaining two sources of truth.

Participants should be grouped into teams, and teams should be ordered by timezone. It should include whatever background info we have about each participant such as experience-level estimate, leadership preferences, timezone, and maybe even notes.

The actual implementation of this is open-ended.

D0rs4n commented 2 years ago

That sounds like a great idea. However as of now, the Code Jam Management system does not store timezone information. My main question regarding that is.. whether you want this spreadsheet-like view to be editable, or just read-only. Being editable would mean, that we would have to interact with the discord API, and upon interacting with the spreadsheet it would edit the roles as well. This is the hardest version, at least in point of implementation. The read-only version would just be a generated "front-end".

ChrisLovering commented 1 year ago

successful qualifier submission -> push submission ID to a MessageQueue -> sir-robin digests queue to add to CJMS using the forms API, fetching all the background info that Cam mentioned above.

After qualifier run a (new) command that spawns a persistent view with a confirm/unconfirmed button. This marks the user a confirmed in the DB.

After some time run another command that removes this view and runs the script auto-generation script against the database and returns a CSV of the suggested teams.

Manual changes are made, the CSV is then reuploaded to update the teams as needed.

Then you run the command to create the teams using teams in the database

ChrisLovering commented 1 year ago

Make sure the button has some cool down, so users can't spam confirm/un-confirm