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 |