Update Vision Document

Kristoffer Juelsenn 2022-04-28 16:23:14 +02:00 committed by Felix Albrigtsen
parent 709fc0acb8
commit e2cda9c09f

@ -1,37 +1,403 @@
![Vision_Document_Group1-01](uploads/ce76eea442bf1f6345a053e2d35d8fd9/Vision_Document_Group1-01.png) **Group 1**
![Vision_Document_Group1-02](uploads/d9fef947b8ae02940f5276e9b9412a29/Vision_Document_Group1-02.png) **Asura Tournament System**
![Vision_Document_Group1-03](uploads/5971ec30b998d75e88f4c6866c36ba23/Vision_Document_Group1-03.png) Vision
![Vision_Document_Group1-04](uploads/e9432fd267a02289a492b962c8579912/Vision_Document_Group1-04.png) **Version 1**
![Vision_Document_Group1-05](uploads/11d65a0ae32ed416081db3e962250f74/Vision_Document_Group1-05.png) **Revision History**
![Vision_Document_Group1-06](uploads/9220476e6d14e02b4e089a62c3992435/Vision_Document_Group1-06.png) | **Date** | **Version** | **Description** | **Author** |
| --- | --- | --- | --- |
| 06/03/22 | 0.1 | Preliminary Draft | Felix Albrigtsen,Jonas Jødestøl Haugland,Kristoffer Juelsen,Kristoffer Longva Eriksen |
| 16/03/22 | 0.2 | Changes according to supervisor meeting | Jonas Jødestøl Haugland,Kristoffer Juelsen |
| 18/03/2022 | 1.0 | Final Draft | Felix Albrigtsen,Jonas Jødestøl Haugland,Kristoffer Juelsen |
![Vision_Document_Group1-07](uploads/146c0c8ea2e77c7f43b8a0a43ec1c326/Vision_Document_Group1-07.png) **Table of Contents**
![Vision_Document_Group1-08](uploads/7ac193bc337d3e4271fb29fb2ba5b00b/Vision_Document_Group1-08.png) [1 Introduction](#_Toc97497362)
![Vision_Document_Group1-09](uploads/68abb7f1a094750e63f888816cd1e301/Vision_Document_Group1-09.png) [1.1 Purpose and scope](#_Toc97497363)
![Vision_Document_Group1-10](uploads/bac48358a0b21ba69a67a8553a3afe3c/Vision_Document_Group1-10.png) [1.2 Definitions, Acronyms, and Abbreviations](#_Toc97497364)
![Vision_Document_Group1-11](uploads/d74a9a77fef12d379d4f4fe69f3214a1/Vision_Document_Group1-11.png) [1.3 References](#_Toc97497365)
![Vision_Document_Group1-12](uploads/b398304d537b03df071ef9eafcb7f578/Vision_Document_Group1-12.png) [1.4 Overview](#_Toc97497366)
![Vision_Document_Group1-13](uploads/a9dd4ffbdc687517f26610ebcd0834cf/Vision_Document_Group1-13.png) [2 Positioning](#_Toc97497367)
![Vision_Document_Group1-14](uploads/a5d782136972a779d7e6b64e468491eb/Vision_Document_Group1-14.png) [2.1 Business Opportunity](#_Toc97497368)
| Need | Priority | Concerns | Current Solution | Proposed Solutions | [2.2 Problem Statement](#_Toc97497369)
|-------------------------------------------|----------|------------------------------|------------------|--------------------------------------------|
| Create a Tournament | High | | None | Web application UI | [2.3 Product Position Statement](#_Toc97497370)
[3 Project goals](#_Toc97497371)
[3.1 Impact goals](#_Toc97497372)
[3.2 Result goals](#_Toc97497373)
[3.3 Process goals](#_Toc97497374)
[4 Stakeholder and User Descriptions.](#_Toc97497375)
[4.1 Market Demographics](#_Toc97497376)
[4.2 Stakeholder Summary](#_Toc97497377)
[4.3 User Summary](#_Toc97497378)
[4.4 User Environment](#_Toc97497379)
[4.5 Key Stakeholder or User Needs](#_Toc97497380)
[4.6 Alternatives and Competition](#_Toc97497381)
[4.6.1 Challonge](#_Toc97497382)
[5 Product Overview](#_Toc97497383)
[5.1 Product Perspective](#_Toc97497384)
[5.2 Summary of Capabilities](#_Toc97497385)
[5.3 Assumptions and Dependencies](#_Toc97497386)
[5.4 Risk analysis](#_Toc97497387)
[5.5 Installation](#_Toc97497388)
[6 Product Features](#_Toc97497389)
[6.1 Intuitive web interface](#_Toc97497390)
[6.2 User management](#_Toc97497391)
[6.3 Easy Collaboration](#_Toc97497392)
[6.4 Automatic Bracketing](#_Toc97497393)
[6.5 Scheduling](#_Toc97497394)
[7 Constraints](#_Toc97497395)
[8 Quality Ranges](#_Toc97497396)
[9 Precedence and Priority](#_Toc97497397)
[10 Other Product Requirements](#_Toc97497398)
[10.1 Applicable Standards](#_Toc97497399)
[10.2 System Requirements](#_Toc97497400)
[10.3Performance Requirements](#_Toc97497401)
[11 Documentation Requirements](#_Toc97497402)
[11.1 User Manual](#_Toc97497403)
[11.2 Internal Documentation](#_Toc97497404)
[11.3 Installation Guides, Configuration, and Readme File](#_Toc97497405)
Vision
# 1 **Introduction**
This document provides and describes the requirements and features of the "Asura Tournament System", which is the project for the course "DCST1008 Systemutvikling". The assignment consists of developing a tournament system for a specified stakeholder. The assignment is well defined and is presented as a task to create a management system for multi-team tournaments, where the primary user should be the tournament administrator.
The Introduction includes relevant information that will be used and referenced throughout the document.
## 1.1 Purpose and scope
The purpose of the document is to define these needs and features, as well as focusing on the capabilities required by the stakeholders and target users, including why these exist. Further explanations of each feature and design goal is described in their corresponding sections in the document.
The scope of the document includes only the specifications for the tournament system previously described, and does not include any other projects, there are no external dependencies. Any supplemental information not directly regarding the project will be clearly marked
## 1.2 Definitions, Acronyms, and Abbreviations
The Isle The Isle is the game that will be played in our tournaments, and is intended to be a gritty, open-world survival horror game. It is a game where you go through the life cycles of a Dinosaur and grow up, fight, hunt and survive. Upon dying you need to start over, making it quite competitive for some people to become the best.
Asura A European based gaming community that hosts game servers for The Isle, as well as other games, and regularly hosts tournaments and events for its members. This group will serve as our customer.
UD Universal Design
## 1.3 References
[1] WCAG 2.1
This is the standard which we will base our development on, to include Universal Design and accommodate for anyone who wishes to use or explore our products features.
[https://www.w3.org/TR/WCAG21/](https://www.w3.org/TR/WCAG21/)
Don Norman's principles of Interaction design
[https://www.educative.io/edpresso/what-are-normans-design-principles](https://www.educative.io/edpresso/what-are-normans-design-principles)
## 1.4 Overview
The rest of the Vision document is organized in different sections where the information within those sections mostly correlate to each other, but also is used to define features for the rest of the document, and some sections are elaborated later in the document. The first section includes positioning in regard to business opportunities and different statements. The second section describes the project goals, and the next thereafter includes stakeholder and user descriptions. The rest of the document includes Product Overview, Product Features, Constraints, Quality Ranges, Precedence and Priority as well as other product requirements, such as standards. Finally, it includes documentation requirements. The document is organized in these sections to provide an easier reading experience and to be able to quickly navigate through the document.
# 2 Positioning
## 2.1 Business Opportunity
In the ever-increasing landscape of competitions and tournaments, there is a growing need for a simple and effective system to handle many users without the need for end users to worry about the infrastructure and organization of any tournament they would want to host. With this project we wish to decrease the workload put on hosts, and let the administrators focus on the game rather than the technology.
## 2.2Problem Statement
| The problem of | Easily hosting tournaments without the need for much manual labor |
| --- | --- |
| affects | The Asura gaming community |
| the impact of which | Creates lots of extra work for management and moderators that wish to host a tournament or event |
| a successful solution would be | Easily managed
Have a fast-paced setup and completion
Accessible and easily implemented |
## 2.3Product Position Statement
| For | The management of a large, international, gaming community that hosts events and tournaments. |
| --- | --- |
| Who | Wishes to more easily create online tournaments and lessen the workload for the organizers |
| The (product name) | Is a web application that can be accessed by the specified user |
| That | Provides a good and accessible solution that is upheld to international standards and implemented in such a way that anyone would be able to utilize the product given the right documentation and manuals. |
| Unlike | "Challonge", another tournament hosting website |
| Our product | Should be accessible to anyone who needs to use the system and correspond to international standards regarding Universal Design, as well as being straight-forward and simple to use in addition to having smart and useful features. |
# 3Project goals
## 3.1Impact goals
- Ensure readability and maintainability of our code and project
- To keep our project readable, we will use descriptive Git commit messages and peer review to ensure good quality. For our code specifically we will use descriptive variable names that are easy to understand, as well as commenting our code where necessary.
- Reduce the efforts needed to host a tournament
- We will measure this by measuring the time it takes for the customer currently and aiming for a set amount of time needed to have a successful setup of a tournament that is shorter than the current time.
- Improve the working environment when hosting these events by developing for helpful and creative uses
- Not a thing easily measured, but by getting feedback from the customer and reviewing the success of the tournaments hosted we will secure these goals are met. By also adhering to standards and not developing for our own winnings, but rather the improvement of the community we provide the service for, we will ensure these goals are met.
## 3.2Result goals
- Hand in deliverables on time
- Develop a good product that meets the customers' expectations and needs
- Create a product that follows necessary standards such as UD, WCAG 2.1[1] and provides accessibility for anyone who needs to use the system
## 3.3Process goals
- Learn the process of developing a complete system
- Improve communication with other students and lectures for guidance and better development in the future
- Pass the subject
# 4Stakeholder and User Descriptions.
## 4.1Market Demographics
The organization is one of the biggest communities and providers of game servers in the market that it focuses on. It has a good reputation and is the only server that provides the unique style of gameplay in the game servers it hosts of its size. With well over 30,000 users that is an active part as well as being an ever-increasing place of gathering, the organization is one of the lead places in its category. With an active player base and moderation team, it is in good shape and is ever growing.
We would like the market demographic to continue growing as the customer expands and extends its services to other platforms and markets. It is already a very large market in comparison to other potential smaller, local customers, so we are happy with servicing the established environment.
By creating this project, we can increase the member retention and also member engagement, resulting in increased activity and growth. This would also in some cases lead to an increase in turnover for the customer.
## 4.2Stakeholder Summary
| **Name** | **Description** | **Responsibilities** |
| --- | --- | --- |
| Community Management | End user
| Add and manage Community Moderators Approve tournaments and manage tournaments Organize and create tournaments |
| Community Members | Will not be able to manage the system, only view the tournaments Is the group of people who will participate in the tournaments | None |
| Community Moderators | The people who primarily organize the tournaments with approval from management End user | Organize and create tournaments |
| Course Lecturer | End user | View the final product and guide the production through iterations |
| Teaching Assistant | End user | View the product during production and comment on potential improvements |
| Project Developers | End user and developer of product | Create and manage the product Responsible for maintenance and further development
Communication with the customer, lecturers, and teaching assistants |
## 4.3User Summary
| **Name** | **Description** | **Responsibilities** | **Stakeholder** |
| --- | --- | --- | --- |
| Community Managers | Leaders of the customer organizations | Manage tournaments Manage tournament organizers Manage archive | Self-represented |
| Community Moderators | Moderators of the community | Organize tournaments Who this is can change and it is a varied group of people | Community Managers |
| Community Members | Guests | View tournaments if they wish | Self-represented |
| System Managers | The creators of the project | In charge of maintenance Fix bugs and errors that might display themselves down the line | Self-represented |
## 4.4User Environment
Currently, there are four people who are considered managers, and 22 moderators actively pursuing the improvement of the community. The number of people in either of these positions change because of people retiring, or being hired, so it is not a set value. There is one owner, who should have some superior level of control regarding certain cases.
There are no set tasks, as most of the work is voluntary coming from the moderators. The things that have a set schedule are the events (tournaments), but the time slot of these vary depending on the organizer and content.
This is an online operation, so no environmental constraints will be liable, other than some moderators or users being unavailable due to local environmental problems. Current platforms are three different games, two of which are located on steam, the other on an individual platform. One of these games is a plan for future development but is close to being implemented.
The only other application in use that could be directly utilized by us as system developers is Discord and integrating this with either Discord to login or to be able to format messages to be sent to the communities' channels. This, however, is not a priority for us and will only be implemented by necessity.
## 4.5Key Stakeholder or User Needs
| **Need** | **Priority** | **Concerns** | **Current Solution** | **Proposed Solutions** |
| --- | --- | --- | --- | --- |
| Create a Tournament | High |
| None | Web application UI |
| Manage Tournaments | High | Cooperation, multiple admins | None | Web application UI | | Manage Tournaments | High | Cooperation, multiple admins | None | Web application UI |
| View Tournaments & standings | High | | None | Web application UI | | View Tournaments & standings | High |
| Complete tournament and announce a winner | Medium | | None | Web application and Discord | | None | Web application UI |
| Archive tournaments | Low | | None | Export summary | | Complete tournament and announce a winner | Medium |
| None | Web application and Discord |
| Archive tournaments | Low |
| None | Export summary |
| User notifications | Medium | Integration with discord | None | Discord or Email | | User notifications | Medium | Integration with discord | None | Discord or Email |
| Login system for organizers | High | Security, privacy | | Web interface with cookies/browser storage | | Login system for organizers | High | Security, privacy |
| Web interface with cookies/browser storage |
## 4.6Alternatives and Competition
### 4.6.1Challonge
Challonge is an established easy-to-use web application that is free to use for anyone.
Its major strengths are that it is already in use by the customer as it is a simple solution and straightforward in most cases.
A weakness it has is that it is not built for the customer specifically, but rather built for anyone who would wish to host a tournament, and therefore must provide a lot of additional elements rather than focusing on one specific customer and their needs.
# 5Product Overview
## 5.1Product Perspective
The product aims to be a targeted alternative to the bigger, broader, tournament hosting websites like Challonge. The larger websites are accommodated to host tournaments for a lot of different games which makes them bloated for users wanting to host infrequent tournaments for a single game.
The product is a simple website aimed towards simple navigation and needing fewer clicks to create the initial tournament as well as managing them. It is a self-contained system and consists of the client interface (the Web GUI), a server running the application, and a database server which holds the team and player information.
## 5.2Summary of Capabilities
The tournament management system we produce should enable all administrators in our customer group to create and manage tournament plans for their given games. The back-end of the application will host the database storing all tournament data, but this should not be directly visible to the user. Administrators should have a simple web interface where they can create, edit, and delete tournaments. Players, not just administrators, should also have access to a web link where they can see the tournament status. This ensures that the system is accessible to everyone without requiring any installation or additional tools. The management pages should be fault-tolerant and handle any conceivable input from the user and must be resilient to user mistakes. Normal usage of the application should be well documented and explained in the supplied user manual.
## 5.3Assumptions and Dependencies
The tournament system is naturally based on the type of game being played. In the specified game, every match exists between exactly two teams or players. If this were to change, for example by requiring a match between three different teams, our requirements and build process would have to adapt.
As previously stated, our product will be hosted on a web server. That means that all usage requires a web browser and an internet connection. Without access to the internet, the user will not be able to send and receive data between their computer and the web server. The server application will be hosted on one of our private servers but require little in terms of software and hardware performance. Any computer with a good internet connection and the ability to run Node.JS will suffice.
## 5.4Risk analysis
Here we have listed possible events and analyzed the probability and consequence for each.
- Project delays
- The project could at any time become delayed due to illness or other unforeseen events.
- **Aversion:**
- Team communication: The entire team is kept updated, and workloads can be shifted to other team members if someone is unable to participate, for example when ill.
- Late delivery or delivery of unfinished product
- The project could be delivered late or in an unfinished state due to underestimation of work hours needed to finish the product.
- **Aversion** :
- Active use of the Gantt-diagram and GitLab-board ensures that we stay with the pre-defined plan. By keeping eye on these diagrams, deviations can be easily spotted and corrected.
- Loss of work
- Program code or documentation that has not yet been committed or saved otherwise may be lost due to a power outage, application crash or other unforeseen events.
- **Aversion:**
- All team members will follow a policy of working directly in the git repository, with separate commits for each feature or issue.
- We will keep daily backups of our git repository on a personal server.
- Text documents and similar work not included in our git will be stored in Microsoft OneDrive.
- Server downtime
- The server hosting the tournament system may experience internal or external issues regarding uptime and availability, making the product become temporarily unavailable.
- **Aversion:**
- Configuration files will be backed up in git and locally on our personal computers.
- The NTNU-IDI MySQL database seems stable, but we can easily change to any other MySQL instance.
- The installation manual will be devised for easy reinstallation if we must.
| **What** | **Probability** | **Consequence** | **Risk factor** |
| --- | --- | --- | --- |
| Project delay | 3 | 2 | 6 |
| Late delivery | 2 | 5 | 10 |
| Delivery of unfinished product | 2 | 5 | 10 |
| Loss of work | 1 | 4 | 4 |
| Server downtime | 1 | 2 | 2 |
Probability and consequence values are given on a scale of 1-5. Risk factor is probability times consequence.
## 5.5Installation
Because we use a cloud-like model where no work is being done on the user's computer, no special installation concerns are required. All users are only required to have a web browser and an internet connection.
The actual software will be built in JavaScript on top of the node.js and React frameworks. These tools will be required on the server for building and running the project. The basic mechanics will build on tools and techniques used in our earlier programming courses.
# 6Product Features
## 6.1Intuitive web interface
The software should be accessible through a normal web browser. The user will be able to interact with all components of the system by using a mouse and keyboard in the browser. By complying with established guidelines for universal design and clean web development, the menus should be intuitive, simple, and understandable. This minimizes installation time and costs, training time and allows the software to be used by people with a disability.
## 6.2User management
Our customer has two levels of administrator access, "Administrators" and "Management". Users in the management group should be able to access and modify all tournaments in the system, as well as creating or removing administrators.
## 6.3Easy Collaboration
As opposed to smaller, simpler, tournament management systems, our product will allow multiple administrators to manage the same tournament at once. This will be important to our customers, as the administration consists of many different people in all parts of the world. Relying on single people might be a bad idea, and this system will still be fully functional if one or more administrators disappear or fail to fulfill their tasks, as a manager or other administrator can take over the project.
## 6.4Automatic Bracketing
To create a new tournament bracket, an administrator can simply create an empty tournament and insert the competing teams. When the list of teams is saved, pairs of teams will be combined randomly into matches. This makes the process of creating new tournaments both simple and fair. If the administrator is not happy with the distribution, they can either manually edit the order, or randomize again.
## 6.5Scheduling
Each tournament is created with a duration and starting time and date. When teams are invited, they can receive reminders about upcoming tournaments ahead of time. This can improve the workflow of the administrators, as they can prepare the tournament in advance so the games can start exactly when scheduled, without having to wait for configuration.
# 7Constraints
The project assignment constraints how much time we are able to spend on the assignment itself, as well as on what technologies that are allowed to be utilized. Knowledge could also be a constraint in some cases, as well as the need for expertise to create elements of the project.
# 8Quality Ranges
We have not defined specific performance requirements in terms of numbers, but usability and a feeling of responsiveness is highly prioritized. We will not accept excessive delays and hiccups in the finished product, and the software should leave a professional impression on the user.
The system should be able to handle our expected workload with an excessive margin. This is a part of robustness, which also includes proper error handling when something goes wrong at runtime. By writing efficient back-end code with little resource overhead, and by logging important actions, we can ensure that the system is robust.
Usability is an important aspect of modern web development. By sticking to established guidelines concerning Universal Design and availability, we will ensure that the tournament system is easy to use. This also includes the page structure being accessible to screen readers, and that the visual elements can be distinguished clearly.
# 9Precedence and Priority
Here we have listed different system features and prioritized them.
| **Feature** | **Priority** | **Precedence** |
| --- | --- | --- |
| Intuitive Web Interface | 3 | Intuitive Web Interface is the most important feature of the program, and it precedes any other, because unless the interface is intuitive there is little reason to improve on other areas. |
| User Management | 3 | User management should be one of the core features of the program to ensure easy access and usage, |
| Automatic Bracketing | 2 | Automatic Bracketing is a Quality-of-Life improvement which reduces the amount of effort and clicking needed by the end user to set up a bracket. With just simple inputs of names and teams, the system will create a bracket on its own without the need of an end user moving slots around and manually assigning each slot with a name. |
| Easy Collaboration | 1 | Easy Collaboration by multiple administrators is a "nice to have" feature, but it is more important to improve the workflow of each administrator rather than allowing multiple administrators to enter the workflow. Therefore, it is preceded by scheduling. |
| Scheduling | 1 | Scheduling of when and where precedes easy collaboration, as its more important to have a functioning system where everyone is able to view the correct info, rather than having multiple people being able to edit and manage a single tournament. |
Priority values are given on a scale of 1-3.
Precedence compares the features with the same priority and ranks them accordingly within the priority range.
# 10 Other Product Requirements
## 10.1 Applicable Standards
WCAG 2.1[1]
The system should work on any platform, including Windows and \*NIX-based Operating Systems
TCP/IP standard is the basis for our web communication
## 10.2 System Requirements
The server needs to be able to run Node to present the web application.
The user needs a computer with internet access to access the application.
## 10.3Performance Requirements
The tournament system should be a fairly simple application without any specific hardware requirements. Although the system may be simple, we might expect several hundred web requests in a short period of time if all contestants are loading the dashboard to check the status of their tournaments. We will not set any hard limits on performance, like measuring response times, but we will ensure that the page is perceived as responsive and stable. The user should not have to wait for pages to load or actions to occur, but these should be integrated in a seamless web interface with little latency. Downtime is unacceptable, and the page should be perceived as smooth and professional.
# 11 Documentation Requirements.
## 11.1 User Manual
The user manual includes a basic guide on how to use the system and will also include an email address to contact the system developers if the need arises. It should be relatively short, no more than two A4 pages so that it can be printed on a single, double-sided A4 paper if necessary.
## 11.2 Internal Documentation
To aid in team collaboration, planning, maintenance and documentation for the subject assignment, all code, models, and internal structures must be documented and presented on our wiki page hosted on GitLab. Source code should be written as clearly, readable, and concisely as possible, and be commented inline where appropriate. Documentation will be done in parallel with development, and not afterwards.
## 11.3Installation Guides, Configuration, and Readme File
The product will be hosted by us, the developers, and maintained by us in a web-based environment, so there is no need for any installation guides for this specific project. Should be need arise for others to host this environment themselves installation guides can be procured.