Non-Functional Requirements

Accessibility

  • Users with an internet connection may access the web application
  • This web application should be usable by those who are colorblind
  • This web application should allow ample time for those with mobility impairment
  • This web application will show available moves to those who need it
  • This web application should comply with web standards of accessibilty

Availability

  • This web application will be online for as long as the duration of the term

Dependency on other parties

  • This web application should be independent of dependencies that are not of docker or the go language

Deployment

  • This web application will deploy on docker for each component
  • This web application will be continously deployed from github

Extensibilty

  • This web application should prepare for versions past 1.0 and should be coded with simple, numerous functions

Fault Tolerance

  • This web application will after 1.0 will allow multiple servers to handle incoming data
  • This web application for the forseeable future only have one database server
  • This web application should be independent from the clients

Licensing

  • This web application will be released with MIT licensing

Maintainability

  • This web application should be written in idiom and simple language so that it may be maintained
  • This web application should have simple functions
  • This web application should provide proper logging
  • This web application should use modules to allow for future upgrades

Network Topology

  • This web application should consist of a client, server, and database
  • The server and database should be on the same subnet
  • The client may connect from any IP address

Open Source

  • This web application will be released as open source under the MIT license at the conclusion of the project

Performance

  • This web application should support at least 50 moves a second
    • Including validation and database update
  • The client should not appear to experience any latency

Platform

  • This web applacation and all of its parts will run in docker

Price

  • This web applacation will be free

Privacy

  • This web applacation will not release personal information to third parties

Portability

  • This web application will not be taking different run-time enviroments into account as it will run in docker, an industry standard

Quality

  • This web application should not ship with any known bugs that cause crashing

Recoverability

  • This web application should be able to easily recover from crashing and resume the last known game state

Reliabilty

  • This web application should not ship with any known defects that cause to be less reliable

Response Time

  • This web application should return results in under a second

Reusability

  • This web application should be built in a modular nature to allow for reuse of its components

Robustness

  • This web application should not crash from minor errors

Scability

  • This web application should not prioritize scalability with the release of 1.0

Security

  • This web application will not be responsible will not be responsible for its own authentication
  • This web application will rely on Google for its security

Supportability

  • This web application should have clear code that can be supported after release
  • This web application will not be maintained after release

Testability

  • This web application and its many parts should be highly modular and allow for testing each module independently

Usability

  • This web application should have a one command initialization
  • This web application should be able to be run with only docker installed on the host machine

User Friendliness

  • This web application should use web standards in order to provide an uninterupped user experience