librematch:design:backend:requirements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
librematch:design:backend:requirements [2022-10-27 22:51] – removed - external edit (Unknown date) 127.0.0.1librematch:design:backend:requirements [2022-11-04 20:15] (current) nimda
Line 1: Line 1:
 +====== Requirements ======
  
 +===== User Stories =====
 +
 +Some things may be out of scope, we can still collect them here, to have an overview and include some of them in the design process.
 +
 +**User** stands for the user of the //LibreMatch// API.
 +
 +^As a/an ^I want to... ^So that.. ^
 +| user | have a stable API | I can rely on it |
 +| user | request win data of the games | I can easily determine the outcome of a match |
 +| statistician | request database dumps for a time period | I can easily analyse a big amount of data without firing thousands of requests |
 +| authenticated tournament organizer| delay matches showing up for a limited amount of time | I can take care that people are not being spoiled |
 +| user | be able to get live updates about ongoing games | I can update my e.g. overlay immediately when a match starts |
 +| user | be able to log in with my Steam account | I can create lobbies from outside the game |
 +| user | be able to query for matches of a player since a timestamp | I can update a list of matches of a certain user more easily |
 +| user | be able to quickly start using the API | I am not spending much time reading the documentation or spend time implementing a client to use it |
 +| user | be able to get all matches by a player from different games at once | I don't need to make several requests |
 +| user | be notified of match state updates of all matches or a subset | I don't have to keep polling for updates and deriving state updates myself |
 +| user | get notified when changes are made to a lobby | I can update my lobby tables and reduce the amount of requests |
 +| recorded matches analyser | get notified when a new replay becomes available (e.g. in a leaderboard/from a player) | I can download and parse it in a timely fashion |
 +| user | embed a player report function in my page | people can report suspicious activity (e.g. spoofing) to the official franchise |
 +| user | be flexible in the usage of the API | I can take different approaches to find solutions to my problems |
 +| user | not over boarded with complexity to use the API | I can start out right away without reading much documentation (reasonable defaults) |
 +| user | be able to query match history for a player by either steam ID or another unique ID | can use the information for calculating statistics, building user facing APIs (eg. !match), build more complicated applications on top of the API |
 +| user | be able to query information on open/ongoing lobbies | can use the information for creating rich presence plugins |
 +| user | be able to query commonly used api strings (for maps, civs, etc.) | can map enum values for maps, civs that are returned by the usual API to names (the api could provide multiple localisations depending on a parameter) |
 +| user | be able to access typescript type interfaces for api responses | can easily incorporate the API in typescript applications |
 +| user | be able to query the data of a match that is being cast by a caster | can use it creating a bot to easily modify a casters' stream title with one-click |
 +| user | be able to query the data of a match that is being cast by a caster | can compile a list of matches cast by a caster during one stream |