/core-foos

Manage foosball matches

Primary LanguageJavaScript

About 'core-foos' - Manage foosball matches

This app helps you to manage foosball matches in your office. Especially after lunch, everybody wants to play before going back to work. The problem is that you have to find one or three partners to play a single or a double. So register at for a single or a double and informs you as soon as a match can start, i.e., the table is available and there are enough players available.

Use cases

In the following we provide the basic use-cases represented in table-form. The notation is inspired by the Book "Lean Architecture for Agile Software Development" by James Coplien (p. 187 ff).

Some notes:

  1. The use cases define a so-called "Sunny Day Scenario", that means they don't cope with things like invalid input data and such (this would be placed in "use case deviation" tables)
  2. Terms and concepts - that should be consistent among uses cases - are printed in italic.
  3. The priority of use cases is defined by their order of appearance.

Important terms and concepts

Term/Concept Description
entry screen The view that is presented to the player when he launches his kicker client. In web UIs this refers to the home page, in native Apps this would be the main menu.
player An employee that feels the urgent need to play a match of kicker.
kicker client UI that allows to use services provided by the kicker server.
kicker server Server that responds to requests fired by kicker clients.
match queue A list of booked kicker matches.
player queue A list of players that wait for a kicker match to begin (when enough players equeued).

Use case 1: "Check if kicker table is free"

Step Actor intention System responsibility WebSocket client message WebSocket server message Comment
1.
  • Hackathon: The player launches it's kicker client.
  • Later on: The player launches it's kicker client and authenticates with the service.
  • Hackathon: The kicker client show the entry screen.
  • Later on: The kicker server performs authentication and the kicker client displays the entry screen.
- - -

WebSocket server message API (aka "what the server responds to")

Note: The Arguments are provided as JSON!

Message Argument properties
register_match [{name:String}]
end_match matchId: ...

Additional Features

  • Web UI fits device's viewport resolution (CSS Media Queries)
  • (Optional) Addtional Notification via
    • E-Mail
    • Instant messaging
  • (Optional) Additional kicker client implementations using
  • (Optional) Authentication via QR-Code
    • A spcific QR-Code is generated and attached to the kicker
    • Scanning the QR-Code will trigger a URL that automatically removes the active match from the match queue)
    • Online QR-Code generators

Weblinks