This project name is Team Task Management. Team Task management system is a tool designed to manage the team collaborative task . This system allows people to build their own to-do list and team to-do list. People can create task in the website and do the task in the team form. This system should have some quality attributes such as scalability, security and testability.
Name: Zhixuan Li
Student number: 48197407
Task management: User can use this system to create, allocate, edit and delete tasks. User can set the tasks’ priority use number or colour. Also, user can set the due date for the task and the system will send notifications to remind the unfinished work to users.
User management: User can login and registration via email like google email. User can create team and invite people to join the team.
Task status tracking: The task has three states: pending, in progress, finished. User can change the state freely.
Team work: The team member can create the task freely in the team and the team owner can invite people to join the team.
Data visualization: Use graphs to show the progress of the tasks. The graph is used to track the workload of the team. As feedback, help the team improve work efficiency.
MVP should:
User can create and edit the content task freely.
User can change the state of tasks.
User can register the system with email.
User can create team and invite other people to join the team.
User can view the data visualization page.
Scalability: This system needs to be able to support many people working at the same time and prevent server overload so the system must have good scalability.
Security: The company will face huge losses if files on this system are obtained by hackers, so ensuring the security of the system is very important. Good system security can protect the user important data, maintain the integrity and availability of the system, prevent property loss and improve company corporate
Testability: Good system testability can find the questions in the system and correct it quickly which can reduce the develop costs and accelerate development cycles.
Scalability: Scalability is the quality attribute that is used to measure the system performance when face the rapidly increasing demand. If the system can still maintain the respond time under 200ms, we can say that the system is good in this attribute. We often use pressure test, workload test and capacity test to test how well the system can perform under high pressure condition. We can technologies such as use microservice, docker container and Redis to improve the capacity of the system.
Security: Security is the ability that system used to resist the attack and threats. We often measure the system security by factors such as the Vulnerability Detection Rate and the frequency of successful attacks or breaches. We can use technologies such as MFA, WAF,SIEM to improve the system security.
Testability: Testability refers to how easily a system can be tested. We think that the system have a good testability if more than 85% of the code is covered by the automated test suites. We can use techniques such as automated unit test, static code analysis, integration test, Continuous Integration/Continuous Deployment (CI/CD), Automated Testing Frameworks to increase the testability of the system.