Buzzer.click is an online synchronous quiz game that implements a fun ‘buzzer’ type system, such that during a contested response to a question, the first person to ‘buzz’ is identified and thus has first opportunity to answer.
If the server is run as 'root' user (or equivalent on Windows), changing the effective user and group of the process to one configured (see #32 and #31).
An example of how to do this from Thomas Hunter. Will require a little research to ensure it fits with the Express framework used.
All client request classes, as a minimum, must supply a session id. In addition, many will be required to supply a contestant id or host id. Currently, all client request message implement their own properties/fields for these. To reduce the DRY violation, it is recommended that a base class be created to support these two properties and for existing code to be refactored to make use of it.
When the server adds a team, it would be nice to auto allocate a team name from a list contained within the application. By doing this it would mean a team will always have a name and may save the host creator time if they decide to disable team name editing.
With team-based play, to reduce negative experiences for learners who perform poorly in their team, remove individual scores from the team-based game. So only the team scores are shown.
In a later revision, add an option so host can choose to include or omit (by default) individual scores.
Implement the ability for the server process to write the currently running sessions to disk, when terminating, or otherwise receiving an unhandled signal (not sure about Windows here).
On restart, check for the existence of such a file, and depending on its modification timestamp, reload all the sessions into the process, so that in-progress 'games' can continue.
Rather than have 2 text boxes, and instructions on how to enter information, break it down into two decisions.
Firstly, they choose whether to specify the number of teams, or the size of the teams. Then depending on that choice, only the appropriate/relevant 'input' box appears. So if 'Number of teams' was chosen, then the box: 'max players per team' would be shown, and not 'Number of Teams'.
Human Computer Interaction fixes:
At the moment users need to click on the modal buttons to continue. Need to modify the buttons to submit and bind in js to the .submit event.
Also need to put focus on the first form input on pages/modals
Client's may want to disconnect for various reasons such as going home early. Need to handle a client (Contestant) "SESSION_COMPLETE" message to only drop that participant.