librematch:design:backend:requirements

Requirements

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
  • librematch/design/backend/requirements.txt
  • Last modified: 19 months ago
  • by nimda