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.
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:
- 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)
- Terms and concepts - that should be consistent among uses cases - are printed in italic.
- The priority of use cases is defined by their order of appearance.
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). |
Step | Actor intention | System responsibility | WebSocket client message | WebSocket server message | Comment |
---|---|---|---|---|---|
1. |
|
|
- | - | - |
Note: The Arguments are provided as JSON!
Message | Argument properties |
---|---|
register_match |
[{name:String}] |
end_match |
matchId: ... |
- Web UI fits device's viewport resolution (CSS Media Queries)
- (Optional) Addtional Notification via
- 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
-
WebSockets
-
Web Worker - "JavaScript threads"; compute sth. in the background whilst continuing doing some other stuff in the UI
-
Canvas - HTML element to render arbitrary complex things to; one did even implement a famous retro game
-
IndexedDB - a local storage better that LocalStorage (accorging to some Google folks)
-
CSS Media Queries