Giter VIP home page Giter VIP logo

chs-math-bowl's Introduction

Tournament Manager for CHS Math Bowl

Firebase + HTML/CSS app. 3 major parts: auditorium display, room displays, admin console.

Admin console can manipulate schedule, delete/change/add scores, toggle auditorium display between next round's schedule / live scores for current round / team rankings.

Rank calculations happen automatically as scores come in.

Each room has a live-updating list of matches on its schedule, which volunteers can click on and run. After each round, a final score is displayed on the TV, and the score is also logged in firebase, which triggers updates on admin console and auditorium display.


alt text The auditorium display showing live scores from the current round. In the foreground, the admin console shows progress of each room (each row of squares is a room, each column is a given question, and each square indicates which team got the question correct).


alt text A screenshot of the disputes panel on the admin console, which shows results from every match. Admin console can change, delete, or add scores synthetically (this feature is included to handle any potential disputes on problem correctness that may come up).


alt text A clearer screenshot of the overview panel on the admin console from the first image.


alt text The TV in one of the match rooms, showing the queue of matches the room needed to run on its schedule. Each room hosted matches during each preliminary round, which is why the list is quite long.


alt text alt text Rounds in action! The two people sitting up front are volunteers running the tournament, and they interact with the tournament manager software by starting/stopping the timer and adding points to whichever team gets the question right.


alt text White Station High School with a crushing performance over Vestavia in the semifinal round. After each round, a final score is displayed for teams to see.


alt text Admin console scheduling page. Each card represents a match, and every maroon text is a dropdown where the admin can pick what teams are in the match and which room the match gets assigned to. The green dot indicates the match is not started. Yellow meant it was in progress, and blue meant it was completed.


alt text Screenshot of timer app that ran in each room.

chs-math-bowl's People

Contributors

brandon-gong avatar

Watchers

 avatar  avatar

chs-math-bowl's Issues

dark theme

look into alternate css for admin console, should be pretty easy for some matte grays
im not sure about clients because i really want consistency for the teams as they go from room to room

how-to

write more complete, organized manual for both admin console and scorekeeper
i won't be able to use it myself much longer

round robin generator improvements

preferably avoid interschool matches (somehow weight them less?)
its not going to be "round" round robin, as in each team won't play every other team.
look at last year's data for more info on how it's supposed to look

also add printing things so each school has it's own schedule custom printed out so they don't have to look for it in the "3 vs 12" kind of junk

block duplicate score submissions

im not sure why this happens but it does
and when it happens it messes up ranks entirely

two teams should not have more than one match against each other in the same round.
this issue needs to be addressed on the client side.

mouse controls

mouse controls for timekeeper if they just hate using the keyboard

  • circles at the bottom should be clickable and navigable
  • otherwise hide the cursor and do the sectionalization of the screen thing where like left 10% hover and click for giving left team score, middle is deadband, right 10% does right team

display rank calculator fix

the display does not calculate ranks correctly; teams w-l should be the same at the end of each round (w+l should be constant)

this is not the case
i ended up having to airplay admin console overview ranks table in 2020 math bowl

clean code

the code looks so bad right now

js and css need to be split into their own files, reformatted, and commented
i need to write docs so whoever maintains this later on (hopefully i can find someone) isn't completely lost

firebase rules

make some things unwriteable to client accounts if possible

brackets mode

create a bracket editor that will automatically update and create matches to the appropriate rooms, generate double-elimination brackets, printable;
add display for this bracket (and try to make that code reusable between admin console and display)
display should have live scores for all the matches

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.