0% found this document useful (0 votes)
136 views

UniCnB Document

Uploaded by

Tùng Ngô
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views

UniCnB Document

Uploaded by

Tùng Ngô
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 231

MINISTRY OF EDUCATION

AND TRAINING

FPT UNIVERSITY

Capstone Project Document

Group GSP23SE18
Supervisor Mr. Lâm Hữu Khánh Phương
Student Group Nguyễn Nam Hoàng Long – SE150890
Trần Đăng Khoa – SE150840
Trần Nhĩ Hào – SE150755
Lâm Tâm Như – SE150213
Capstone project code SP23SE39

Uni Incubator Compensation and Benefits System

1 | Page
I. Table of Contents
I. Table of Contents...........................................................................................................................2
Acknowledgement.................................................................................................................................5
Definition and Acronyms.......................................................................................................................5
I. Project Introduction........................................................................................................................5
1. Overview....................................................................................................................................5
1.1 Project Information..................................................................................................................5
1.2 Project Team............................................................................................................................5
2. Product Background...................................................................................................................6
2.1 General business background...................................................................................................6
2.2 Uni Incubator Introduction.......................................................................................................6
2.3 Our product – Uni CnB............................................................................................................7
3. Existing Systems.........................................................................................................................8
3.1 Spreadsheet program – Excel...................................................................................................8
a. Online spreadsheet app - Google Sheets................................................................................9
4. Business Opportunity.................................................................................................................9
5. Software Product Vision...........................................................................................................11
5.1 Solution..................................................................................................................................11
5.2 The basis of solution..............................................................................................................12
6. Project Scope & Limitations.....................................................................................................13
6.1 Major Features.......................................................................................................................14
6.2 Limitations & Exclusions.......................................................................................................16
II. Project Management Plan.............................................................................................................17
1. Overview..................................................................................................................................17
1.1 Scope & Estimation................................................................................................................17
1.2 Project Objectives..................................................................................................................19
1.3 Project Risks..........................................................................................................................19
2. Management Approach...........................................................................................................20
2.1 Project Process.......................................................................................................................21
2.2 Quality Management..............................................................................................................21
2.2 Training Plan..........................................................................................................................21
3. Project Deliverables.................................................................................................................21
4. Responsibility Assignments......................................................................................................25
5. Project Communications..........................................................................................................27
6. Configuration Management.....................................................................................................27
6.1 Document Management.........................................................................................................27

2 | Page
6.2 Source Code Management......................................................................................................27
6.2 Tools & Infrastructures..........................................................................................................27
III. Software Requirement Specification........................................................................................28
1. Product Overview.....................................................................................................................28
2. User Requirements..................................................................................................................29
2.1 Actors.....................................................................................................................................29
2.2 Use Cases...............................................................................................................................29
3. Functional Requirements.........................................................................................................34
3.1 System Functional Overview.................................................................................................34
3.2 Manage project.................................................................................................................47
3.3 View project detail information........................................................................................52
3.4 Response change budget request of project manager.......................................................73
3.5 Get list of users.................................................................................................................76
3.6 User management.............................................................................................................78
3.7 Sponsor management.......................................................................................................95
3.8 Cycle management.........................................................................................................107
3.9 Report management........................................................................................................117
3.10 Voucher management.....................................................................................................122
3.11 Using point.....................................................................................................................130
4. Non-Functional Requirements...............................................................................................134
4.1 External Interfaces..........................................................................................................134
4.2 Quality Attributes...........................................................................................................135
5 Requirement Appendix..........................................................................................................136
5.1 Business rules.................................................................................................................136
5.2 Common Requirements..................................................................................................136
5.3 Application Messages List.............................................................................................137
IV. Software Design Description..................................................................................................138
1. System Design........................................................................................................................138
1.1 System Architecture.............................................................................................................138
1.2 Package Diagram.................................................................................................................138
2. Database Design.....................................................................................................................140
3. Detailed Design......................................................................................................................141
3.1 Manage project.....................................................................................................................141
3.2 View project detail...............................................................................................................143
3.3 Change budget request.........................................................................................................148
3.4 Get list of users....................................................................................................................149

3 | Page
3.5 User management.................................................................................................................149
3.6 Sponsor management...........................................................................................................156
3.7 Cycle management...............................................................................................................160
3.8 Report management.............................................................................................................164
3.9 Voucher management...........................................................................................................167
3.10 Using point.........................................................................................................................171
V. Software testing document.........................................................................................................173
1. Scope of testing.........................................................................................................................173
1.1 Features, functions, and non-functional requirements to be tested.......................................173
1.2 Features, functions, and non-functional requirements not to be tested.................................173
1.3 Testing objective..................................................................................................................173
1.4 Assumptions and constraints................................................................................................174
2. Test strategy..............................................................................................................................174
2.1 Unit Testing.........................................................................................................................174
2.2 Integration Testing...............................................................................................................174
VI.......................................................................................................................................................175

4 | Page
Acknowledgement
We would like to express our sincere gratitude to all those who have contributed to the
completion of this project. First and foremost, we would like to thank our mentor as
well as supervisor, Mr. Lâm Hữu Khánh Phương for his invaluable guidance, advice,
and support throughout the project. Their expertise and insights have been
instrumental in shaping the direction of our work and ensuring its quality.
We would also like to thank our review lecturers who have taken the time to review
our project and provide feedback: Mr. Thân Văn Sử, Mr. Nguyễn Trọng Tài, Ms.
Hoàng Xuân Hồng, Ms. Nguyễn Thị Cẩm Hương, and all other teachers. Their
constructive criticism and encouragement have helped us to improve our work and
achieve our goals.
In addition, we extend our heartfelt thanks to our families and loved ones, whose
unwavering support has been a constant source of strength and inspiration. We are
truly grateful for all the sacrifices they have made to enable us to pursue our education
and career aspirations.
Last but not least, we would like to acknowledge the contributions of our FPT
university and its faculty, which have provided us with the resources, opportunities,
and education necessary to succeed in our endeavors. We are proud to be a part of this
institution and its mission to advance knowledge and foster excellence in all fields of
study.
Thank you all for your support and encouragement. We could not have achieved this
without you.

Definition and Acronyms


Acronym Definition

UniCnB Uni Incubator Compensation and Benefit


PM [Actor / Role] Project manager

Ad / [Actor / Role] Administrator


Admin
WAGE Mobile application name (WAGE means Wallet for saving Award and
Gains for employees.)
UniCAR System web application name (UniCARE means A better way to
E Compensate Allowance and Reward for Employees)
PK Primary key in database diagram

FK Foreign key in database diagram

5 | Page
I. Project Introduction
1. Overview

1.1 Project Information

● Project name: Uni Incubator Compensation and Benefits System

● Project code: SP23SE39

● Group name: GSP23SE18

● Software type: System software (Web Application, Mobile Application)

1.2 Project Team

Full Name Role Email Mobile


Lâm Hữu Khánh Phương Mentor [email protected] 0915353001
Nguyễn Nam Hoàng Leader [email protected] 0968356278
Long
Trần Đăng Khoa Member [email protected] 0909984915
Trần Nhĩ Hào Member [email protected] 0937069772
Lâm Tâm Như Member [email protected] 0901951454

2. Product Background

2.1 General business background

Global development is currently being strongly influenced by


entrepreneurship. In line with the worldwide trend, a boom phase and
continuing development are being experienced by the wave of startups in
Vietnam. The government has recently released a number of laws to
assist new enterprises, and startup incubators—where the startup
ecosystem is formed—are seen as particularly promising in this regard.
The startup ecosystem is one of the new models, an environment for
seeding and nurturing, promoting the development of startups.
Therefore, financial support is one of the key requirements in the
incubation and development of ideas in order to encourage the startup
ecosystem to expand in a positive way. Along with that, it is extremely
necessary to have online management tools, especially compensation
and benefits management tools for participating members. As a result, a

6 | Page
strong management system will serve as a good basis for startup projects
to develop professionally, systematically, and systematically in the
future.
2.2 Uni Incubator Introduction

Uni Incubator is a startup incubator that helps incubate startup ideas


from the very first stages of formation. This is the place to receive start-
up projects as well as offer a set of tools, contributing to creating
favourable conditions for parties in need of support, helping startup
ideas in the incubation process get an investment methodically from the
beginning stage. This is a platform that connects projects and investors
to help project teams step by step start their business in a convenient and
systematic way. Startup projects will also be properly managed and
supported from the beginning. From there, the project can get through
the difficult beginning and establish a strong foundation for continued
growth.
In addition, Uni Incubator is the place to provide services:

● Pre-industry training: This is the place to provide training


courses for members when they begin the internship or on-the-job
training. One of the most challenging things for students is
gaining experience directly from school, because most businesses
want candidates to have work experience. Because students spend
the majority of their time in school, it is difficult for them to gain
practical work experience. If they get a part-time internship, most
companies only train them in the theoretical basics, it is difficult
for them to participate in the actual projects the company is
running. As a result, Uni Incubator is a good place to help
participants get experience working with real projects right from
school. From there, members can gain experience, easily find a
job after graduation.
● HR staffing: This is the place to provide human resources for
information technology projects for businesses. For example,
businesses that receive small and medium-sized projects only
require a small number of IT personnel to build and operate
within a specific time frame. They spend a lot of time and money
posting job ads, interviewing, and running ads on job markets, but
they still don't get the desired effect, and they can't find the right
people with their desired criteria. with their desired criteria.
Therefore, Uni Incubator is the place to provide the solution to
this problem.

7 | Page
● Software product builder: This is the place where software
products are developed, maintained, and released to the market as
a service. These products can be promising startup projects or a
product or service of Uni Incubator. The products of Uni
Incubator are mostly integrated service development platform
software, management software, and other application software
solutions,...
2.3 Our product – Uni CnB

Uni Incubator Compensation and Benefit (Uni CnB) is a product in the


Uni Incubator ecosystem. This is a space that combines two pre-industry
training services and a software product builder in the form of members
participating in project model development in the form of startup
projects. It is a system to manage these projects as well as record and
calculate allowances and benefits for participating members located in
the Uni Incubator. Start-up groups will participate in contributing to the
projects. Projects will be managed and monitored throughout the first
phase of implementation. All project details and participants'
contributions will be will be recorded. Through that, members
participating in the project will be evaluated and considered according to
their individual contributions and qualifications, from which they can be
promoted as well as enjoy allowances and support for using products
and services within the Uni Incubator ecosystem through the calculation
unit is XP and Point.
Here, our product serves as a management tool for internal
compensation and benefit calculations within the Uni Incubator, aiding
in the recognition of members' contributions rather than serving as a
means of paying members' salaries. At the same time, it serves as a
connecting mechanism for startup projects and sponsors. As a result, the
aim of our topic will be to handle a tool for calculating benefits based on
participating members' contributions as well as to manage and pay out
subsidies to them.

3. Existing Systems

3.1 Spreadsheet program – Excel

Excel is a familiar program that accountants use to calculate monthly


employee allowances. This is a tool to help statistics employee information,
as well as data on working hours, performances, etc... thereby setting up a
formula to calculate a specific allowance for employees participating in the
project.

8 | Page
Advantage:

● Reduce the chance of errors since the final benefit amount and
member information are both filtered and calculated by computers.
● Easy data entry, clearing of rows and columns, and simplicity of
search, retrieval, and modification.
Disadvantage:

● Requires managers to have strong computer skills, especially how to


use Excel (calculation formulas, data management, ...)
● For computer offline tools (a technique used by many small and
medium businesses): Data in the calculation process is difficult to
synchronize, making modifications challenging because of
asynchrony (usually a person who will be responsible for calculating
the salary for a room or for a certain group of members). Therefore,
there will be a data jumble when this manager departs with the
handover of documents and payroll tables. On the other hand,
sending files for review, reviewing, and editing during the
management transition will result in a waste of time, resources,
human resources, and inaccurate data when reviewing members and
printing monthly salary slips. Multiple spreading can lead to errors.
● All calculation fields must be reset when a member's salary changes.
This takes a lot of time, and the manager needs to be proficient with
office computers. If not, there could be a lot of mistakes later on,
particularly when exporting and comparing payslips.

a. Online spreadsheet app - Google Sheets

An online management tool that is similar to Excel is called Google


Sheets. The application has a large number of input cells that are
organized in a spreadsheet. Accountants can manage by filtering,
searching, sorting, and calculating employee allowances based on input
data.
Advantage:

● Reduce the chance of errors since the final benefit amount and
member information are both filtered and calculated by computers.
● Easy data entry, clearing of rows and columns, and simplicity of
search, retrieval, and modification.
● Data should be flexible to edit online, and can check the edit history.

9 | Page
Disadvantage:

● Requires managers to have strong computer skills, especially how to


use Excel (calculation formulas, data management, ...)
● Data is not very secure, and access and modification are difficult to
regulate. The edit history can be shown, but it has only been partially
optimized, stopping at the format edit history for each cell. In
addition, the authorization to perform operations such as editing,
reviewing, and commenting has not been completed.
● All calculation fields must be reset when a member's salary changes.
This takes a lot of time, and the manager needs to be proficient with
office computers. If not, there could be a lot of mistakes later on,
particularly when exporting and comparing payslips.

4. Business Opportunity

The startup ecosystem in Vietnam is now growing incredibly quickly, with


hundreds of ventures being launched there year. Nevertheless, CB Insight
claims that "97% of new businesses fail in the first year. Only 3% of
startups make it past the first year and are successful in the real world." So,
what's the reason here?

10 | Page
Figure 1: Main reasons for business failure among start-ups worldwide in
2021, according to Statista
[https://www.statista.com/statistics/1271464/start-up-failure-reasons/
#:~:text=Main%20reasons%20for%20start%2Dups%20going%20bankrupt
%20globally%202021&text=According%20to%20the%20survey
%20carried,market%20need%2C%20with%2035%20percent]
According to Statista, finance - capital failure accounts for the largest
percentage (38%) of startup project failures. Thus, we cannot deny the
importance of finance in the startup process. Because, there are a lot of
expenses to pay, especially the cost of member salaries, equipment, etc.
Therefore, having an organization to financially support is crucial,
especially during the startup process.
Among the expenses incurred in the process of starting a business, paying
for members' accounts represents the largest percentage. The management
of human resources in a newly established startup project will face many
challenges, such as the project management is not optimal and the
calculation of compensation and benefits for members takes a lot of effort.
The issue of members being promoted is also still not flexible. Businesses
may find it challenging to keep members on board and keep up with product
maintenance if they perform poorly (for products with technological
elements).

11 | Page
Other factors include failing to recognize market factors, flaws in business
models or strategies, etc. This is partially caused by the ideas' immaturity in
experience. Startups are founded by individuals with limited business and
management backgrounds. As a result, having a highly experienced mentor
and companion to act as a supervisor or project manager is essential.
Furthermore, one of the services offered by Uni Incubator is the building,
development, and execution of software products as a service. This is the
output that will be suited for projects in the Uni Incubator ecosystem. These
projects can become marketable product or service, giving benefits to Uni
Incubator.
The development of a compensation and benefits management system
(UniCnB) for members will increase the professionalism of Uni Incubator,
allowing people who participate in the system to be guaranteed that they
will receive benefits commensurate with their contributions. However, this
is also a tool that assists Uni Incubator in compiling statistics on the projects
that their members do during pre-industry training. Projects with reports,
participation lists, and so on will be scientifically and plainly managed,
allowing them to understand the level of completion as well as the project's
prospects. From there, plan long-term investment and development for
promising projects, with the goal of converting them into a source of
income for Uni Incubator.
Uni CnB is a system to manage compensation and benefits for members at
Uni Incubator. This is a management tool in the Uni Incubator ecosystem,
as well as a service product for Uni Incubator. Customers can be companies
that do not have a compensation and benefit management system. The cost
and human resources that the company must invest in order to construct this
system are not insignificant. Then Uni Incubator will supply a solution for
them, which is Uni CnB.
5. Software Product Vision

Our team has come up with a solution, which is a compensation and benefit
system through the Software Factory model, as UniCnB. The system can
help members who are working on projects and evaluate them, and it can
also keep track of their scores and regular contributions (corresponding to
the role of a member in the company). The promotion is automatically
carried out in a Bottom-Up manner, and the system will automatically
calculate the allowance and transfer to each member's wallet (accumulate
enough will be promoted).
5.1 Solution

This is a compensation and benefits system developed specifically for Uni


Incubator. As a result, Uni Incubator is our target customer. And the

12 | Page
personnel involved in the management system are students from disciplines
related to building and developing software products such as software
engineering, artificial intelligence, graphic design.
Uni CnB is a system for managing these projects as well as recording and
calculating compensation and benefits for Uni Incubator members.
Throughout the initial phase of implementation, projects will be managed
and monitored. All project information and contributions from members
will be recorded. Members of the project will be reviewed and regarded
based on their contributions and qualifications, and they will be promoted as
well as get allowances and assistance for utilizing products and services
within the Uni Incubator ecosystem as a result. In other words, rather of
paying members' salary, our solution acts as a management tool for internal
compensation and benefit calculations within the Uni Incubator, assisting in
the acknowledgment of members' efforts. As a consequence, the goal of our
topic will be to handle a tool for calculating compensation and benefits
based on the contributions of participating members, as well as to manage
and pay out subsidies to them.
Uni CnB is a set of tools to calculate compensation and benefit for members
automatically based on the indicators of qualifications, working hours,
working performance of members, ... From there, the system will
automatically calculate the allowance as well as level. Employees are
automatically promoted at the conclusion of the cycle if they have
accumulated enough experience based on XP unit. Managers in the system
only need to enter the necessary indicators such as member attributes,
project tasks, ... The system will automatically calculate and create based on
the formulas studied from the 3P compensation consulting model. Managers
will not need to worry about setting up formulas and creating relationships
between data fields like on traditional spreadsheets – Excel.
5.2 The basis of solution

Uni Incubator compensation and benefit management system - member


promotion based on 3P compensation consulting.
The 3P compensation consulting model is a method of calculating
compensation and benefits that is based on three basic factors.

● P1 - Pay for Position: Pay for the job position, that is, the company
spends a monthly amount to pay for the position, regardless of who is
in charge or how capable they are. In recruitment, pay for position
often has a compensation range. The system will then calculate
compensation automatically for every cycle. Many organizations
have fully implemented this compensation structure without

13 | Page
combining it with other criteria because it cuts a significant amount
of work for HR and accounting departments.
● P2 - Pay for Person: Pay based on skill and knowledge. This section
will analyze each individual member based on three factors:
o Hard skill (based on knowledge, a graduated or not, or foreign
language)
o Soft skills (based on job-related soft skills such as leadership,
communication, problem solving, a positive attitude,
teamwork, and creativity)
o Loyalty (calculated by the amount of hours worked to
determine the level of engagement with the company)
The maximum benefits received for P2 has a restriction at each
level, and the system will calculate the received compensation
(here calculated in point units) for the member depending on the
aforementioned three attribute groups.

● P3 - Pay for Performance: The performance level is broken into


three parts: evaluation performance, working performance, and
overall performance.
o Performance according to the level of completion:
Evaluated based on the number of tasks completed well in
the project.
o Work efficiency: Calculated based on the number of tasks
received in the project and with the performance
assessment of the level of completion.
o Team performance: The corporation will receive a bonus
based on the team's work performance.
The total benefit received will be the total working points
based on individual performance and team performance.

6. Project Scope & Limitations

We're working on a system called Uni Incubator Compensation and Benefit


(Uni CnB) which is used in the Uni Incubator to oversee startup projects and
track and compute compensation and benefits for participating members. Start-
up groups will participate in contributing to the projects. Projects will be
managed and monitored throughout the first phase of implementation. All
project information, members' contributions will be recorded. The system can
support the project manager to statistically evaluate the work results, the
members' contributions to record the scores. The benefit is calculated and

14 | Page
transferred to each member's wallet automatically at the beginning of each
period, and the promotion is also handled automatically by the system.
Uni CnB is a system that provides 2 applications:

● UniCARE (A better way to Compensate Allowance and Reward for


Employees): Uni Incubator compensation and benefit system for
member. It contains 3 management tools:
o Human resource management: Managing members involved in
the incubator's startup projects.
o Project management: Managing all startup projects on the campus
of Uni Incubator. Projects will be managed specifically and
methodically from conception to approval for implementation.
o Management of compensation and benefits for employees: Based
on their contributions and capacity accumulated through
participating projects, the system will calculate allowances and
benefits for members according to period (in point). As a result,
the members who participate will automatically level up as the
experience gained from the projects (measured in XP) increases

● WAGE (Wallet for saving Award and Gains for employees): The mobile
app is used to view members' information, points earned, and to redeem
products or services in the Uni Incubator ecosystem.
6.1 Major Features

15 | Page
Figure 2: Main features of UniCnB system
[https://i.imgur.com/QOPdUKj.png]

No. Role Feature in Detail


Manage project (Create new project, update project information, delete
1
project)
2 Assign a project manager
View project detail information (milestone, project manager information,
3
project member, project sponsor, project report, member payslip)
4 Response (accept / reject) change budget request of project manager
5 Get list of members (by name / role / ID)
6 Create a new admin
7 Get list of projects (by name / status / ID / time / project manager)
Customise benefit specifics for member by configure level (Create a new
8
level, edit level information, get list of levels)
Manage sponsors for system projects: Create new, view, delete, and
9
modify sponsor information for the system.
Admin
Manage salary cycle: Create a new cycle, update cycle status, get list of
10
cycle)
11 View list of users (by name / mail / role)
12 View user information
Review project report (approve final report to create payslip for member,
13
reject to request project manager edit report)
14 View a list of all users in the system
15 View a list of all projects in the system
16 View a list of all sponsors in the system
17 Edit project point wallet
18 Change password
Manage point conversion (create a new voucher, update voucher
19
information, delete voucher)
20 Project Create request to edit budget of projects
21 Manager Reply (accept / reject) join request of member
22 Create a new project report
23 Input, edit P1, P2 attributes of members
Create and edit the final outcome of P3 attribute - project member
24
performance in order to determine their bonus.
25 View list of managed projects

16 | Page
26 Get list of projects (by name / status / time)
Manage task indicator report (load task information data, add new task
27
indicator, update task indicator)
28 Get list of task indicator report
View project detail information (milestone, project manager information,
29
project member, project sponsor, project report, member payslip)
30 Edit project information
31 Manage project milestone: create a new milestone, edit milestone)
32 View project member detail
33 View profile
34 View payslip
35 Exchange point to voucher, product of third-party service, ...
36 View personal reward (voucher)
37 Transfer / Receive point
38 Get list of projects by name / status / ID / Date time
39 Create request to join project
40 View personal wallets information
41 View personal transactions history
Member
42 View information of joined project
43 View personal working result
44 View project detail information
45 Update personal information (avatar, contact, address, …)
46 Export working experience in each project
47 View received point in wallet
48 Change PIN
49 View list of joined project
50 View list of vouchers

6.2 Limitations & Exclusions

The Uni CnB system only handles compensation and benefits for Uni Incubator
members. As a result, this model could not solve similar issues in other
ecosystems.
Project management and reward conversion functions have not yet been
integrated with third-party applications.
The value of points depends on the third-party service or sponsor gift. This will
affect the benefits members receive, possibly reducing their motivation if the
points cannot be exchanged for the products they want.

17 | Page
II. Project Management Plan
1. Overview

1.1 Scope & Estimation

WBS Item Complexity Est. Effort


#
(man-days)

1 Authentication Feature 7

1.1 Login with username, password Simple 4

1.2 Login with Google Medium 7

1.3 Logout Medium 10

2 Authorization Feature 3

2.1 Authorize Medium 3

3 Project Management 23

3.1 Create a new project Simple 1

3.2 Assign a project manager Simple

3.3 Edit project information Simple

3.4 Edit project budget Average 1

3.5 Add a member to the project (in form of member requests Complex 3
to join)

3.6 Fill member attribute Simple 1

3.7 Remove a member from project Simple

3.8 Get list of members in project Medium 1

3.9 Change project status Simple 1

3.10 View project information Simple

3.11 Create a new project milestone Average 1

3.12 Edit project milestone Average 1

3.13 Get list of project milestones Medium 1

3.14 Get list all project Medium 1

3.15 Search project by ID / Name / Status / Start Date … Medium 1

18 | Page
3.16 Create project report Average 2

3.17 Create task indicator report Average 2

3.18 Add new task indicator report Medium 1

3.19 Load task information data from Excel Complex 3

3.20 Get list of project report Medium 1

3.21 Get list of task indicator Medium 1

4 User Management 6

4.1 Create a new user (admin, sponsor) Medium 1

4.2 View user information Simple 1

4.3 Get list all user Medium 1

4.4 Edit user information Simple 1

4.5 Delete user(s) Medium 1

4.6 Search user by ID / Name / Role / Level … Medium 1

5 Member Compensation and Benefit 30


Management
5.1 Customize benefit specifics for each member Average 2
level
5.2 Create a new cycle Simple 1

5.3 Edit cycle status Simple 1

5.4 View project report list Average 2

5.5 View project report Average 2

5.6 Fill project report for each cycle Complex 3

5.7 Edit project report for each cycle Average 2

5.8 Calculate the number of points each cycle Complex 3

5.9 Calculate sponsor point in project Complex 4

5.10 Calculate and view bonus report for project Complex 4


members
5.11 Push points to project wallet, member wallet Complex 4
each cycle
5.12 Create a voucher that changes from point Medium 1

19 | Page
5.13 Update voucher Medium 1

6 Sponsor Management 6

6.1 Create a new sponsor Simple 1

6.2 Edit sponsor information Simple

6.3 Get list all sponsor Medium 1

6.4 Search sponsor by: ID / Name / Type / Funding Medium 1


point…
6.5 Delete sponsor Simple 1

6.6 View sponsor information Average 2

7 Wallet Management 12

7.1 View payslip for each cycle Medium 1

7.2 Convert the benefit of the project as a gift Complex 4


voucher to a third-party product or service.
7.3 Transfer / Receive point from other members Complex 4

7.4 Record the transaction history of points Average 3

1.2 Project Objectives

Testing Stage Test No. of % of Notes


#
Coverage Defects Defect

1 Reviewing

2 Unit Test

3 Integration Test

4 System Test

5 Acceptance Test

1.3 Project Risks

# Risk Description Possibility Impact Response Plans

1 Missing Medium Project does not meet Draw a detailed flow for each
requirement the customer's feature, regularly meet with
expectations, and the mentor to get feedback on the
flow is illogical. flows. After each feature is

20 | Page
finished, directly bring mentor to
try it, get feedback, and make
changes.

2 Unclear scope of High The project plan is not Spend time actively discussing
project very effective, it can with the mentor. Take the time
take a long time to to organize the flow at the
properly create the detailed level, then build the
flows as well as fix prototype in stages and work out
and implement the the solution for every feature.
missing scopes. After each meeting with the
mentor, get feedback, edit and
gradually improve the scope of
the project.

3 Lack of Average Ineffective working Plan specified weekly meetings,


understanding methods result in and hold brief daily meetings.
among members ineffective products. The meeting minutes will be
Communication recorded in detail and shared in
issues also causes member group.
many serious errors
during the product
development process.

4 Members lack of Simple It takes a long time to Before starting the project, hold
experience and learn new skills for a meeting, analyze the strengths
knowledge in application and weaknesses of each
development development. Since member. Then assign the roles of
stage. then, the application those members. Each member
development plan has will list the skills they have
been stretched, and it problems. Then conduct
is not reaching high meetings, analyze and plan
efficiency. training for each individual to
achieve the highest efficiency.

5 Missing test case Average A lack of testing of Plan specific tests for each step
error situations will and each test level. In addition,
result in numerous actively refer to common errors
problems throughout on similar systems to build a
project execution. So, complete set of test cases
it will take a long time
to fix.

6 Application High The project will Regularly check the device used.
operating device encounter many When employing third-party
error, system error errors of unknown services, consider those with
cause. It takes a lot of positive reviews, trustworthy
time to find and services, and few faults.
analyze these issues.

21 | Page
2. Management Approach

This is a business project. First, we will meet with a business representative to


gather requirements. Then we'll hold a meeting, go over the requirements, and
draw the necessary diagrams. Following that, we created a mock-up screen and
began implementing features, testing them, and meeting with the business side
to review them. If everything is acceptable to them, we will proceed to the next
functional implementation. If the customer requires editing, we will reconvene,
discuss the best editing strategy, edit, and return to the customer for review.
2.1 Project Process

To implement the project, we use Scrum. This is a popular software


development framework of Agile in the world today. The project is
divided into sprints. Each Sprint will focus on Sprint Planning. The
members will rely on it to complete the project at each stage.

Figure 3: Scrum development model [https://i.imgur.com/XJk8xzA.png]


2.2 Quality Management

We plan to check the quality of the project by using the following


quality approach:

● Unit test

● Integration test

● System test
After running the test, the bugs will be logged out, the developers in our
team will fix them. Finally, we use the acceptance testing to test the
entire system.

22 | Page
2.2 Training Plan

Participants When, Duration Waiver


Training Area
Criteria
Flutter Long Start at 02/02/2023, 2 months later Mandatory
Flutter Flow Long, Như Start at 02/02/2023, 3 weeks later Mandatory
Test Như, Hào, Khoa, Long Start at 10/03/2023, 3 weeks later Mandatory

3. Project Deliverables

ID DELIVERABLE PREDECESSOR
1 Phase 1
1.1 Milestone: Initiating
1.1.1 Create Project charter
1.1.2 Get the project charter approval 1.1.1 FS
1.1.3 Kick-off meeting 1.1.2 FS
1.1.4 Create stakeholder register 1.1.3SS
2 Phase 2
2.1 Milestone 2: Planning
2.1.1 Create Scope management plan
2.1.2 Create Time management plan 2.1.1 SS
2.1.3 Create Cost management plan 2.1.1SS
2.1.4 Create Risk management plan 2.1.1SS
2.1.5 Meeting with the team to discuss about plan
2.1.6 Deliver project management plan
3 Phase 3
3.1 Milestone 3: Executing
3.1.1 Iteration 1
3.1.1.1 Analysis
a. Create feasibility report
b. Create use-case diagram and use-case
description
c. Create SRS documentation

23 | Page
3.1.1.2 Design
a. Create design for wireframe
b. Create UI / UX design
c. Create mock-up screen
3.1.1.3 Implementing
a. Implement coding for authentication feature
b. Implement coding for user management
controller
c. Implement coding for sponsor management
controller
3.1.1.4 Testing
a. Perform unit testing
b. Perform integration testing
c. Perform system testing
d. Fix bug
e. Re-test
f. Perform acceptance testing
3.1.2 Iteration 2
3.1.2.1 Analysis
a. Update feasibility report
b. Update use-case diagram and use-case
description
c. Update SRS docs
3.1.2.2 Design
a. Update design for wireframe
b. Update UI/UX design
c. Update mock-up screen design
3.1.2.3 Implementing
a. Implement coding for project management
controller
b. Implement coding for admin role
c. Implement coding for project manager role
3.1.2.4 Testing
a. Perform unit testing
b. Perform integration testing
c. Perform system testing
d. Fix bug
e. Re-test
f. Perform acceptance testing
3.1.3 Iteration 3

24 | Page
3.1.3.1 Analysis
a. Update feasibility report
b. Update use-case diagram and use-case
description
c. Update SRS docs
3.1.3.2 Design
a. Update design for wireframe
b. Update UI/UX design
c. Update mock-up screen design
3.1.3.3 Implementing
a. Implement coding for member compensation
and benefit management controller
b. Implement coding for wallet management
controller
3.1.3.4 Testing
a. Perform unit testing
b. Perform integration testing
c. Perform system testing
d. Fix bug
e. Re-test
f. Perform acceptance testing
3.1.4 Iteration 4
3.1.3.1 Analysis
a. Update feasibility report
b. Update use-case diagram and use-case
description
c. Update SRS docs
3.1.3.4 Design
a. Update design for wireframe
b. Update UI/UX design
c. Update mock-up screen design
3.1.3.5 Implementing
a. Implement coding for application transaction
b. Implement coding test function
3.1.3.4 Testing
a. Perform unit testing
b. Perform integration testing
c. Perform system testing
d. Fix bug
e. Re-test
f. Perform acceptance testing

25 | Page
4 Phase 4
4.1 Milestone: Monitoring and controlling
4.1.1 Control scope
4.1.2 Track progress 4.1.1SS
4.1.3 Perform cost control 4.1.2SS
4.1.4 Monitor and control risk 4.1.3SS
5 Phase 5
5.1 Milestone: Closing
5.1.1 Summarize feedback and draw on experience
5.1.2 Create project final report
5.1.3 Giving project development directions in the future
5.1.3 Delivering the product and ending the project

4. Responsibility Assignments

L K H N
o h a h
n o o u
g a T L
N T N T
N D S S
H S E E
Responsibility S E 1 1
E 1 5 5
1 5 0 0
5 0 7 2
0 8 5 1
8 4 5 3
9 0
0

Project Planning & Tracking D S R S

Setting up the coding environment and dividing the project structure R R D S


(Front-end part)

Setting up the coding environment and dividing the project structure D D S R


(Back-end part)

26 | Page
Setting up the coding environment and dividing the project structure D S S R
(Mobile)

Prepare SRS Document (Software Design) D D R S

Gathering & Analysis of Requirement S R D D

Create use case diagram R R S D

Create ERD diagram S D R D

Create screen flow D S R D

Design wireframe and mock-up R S S D

Create coding convention and naming convention S D D R

Create a database and add tables S D R R

Prepare Project Introduction Document S S R D

Prepare SRS Document (Overview Part) S R R D

Prepare SRS Document (User Requirements) R S R D

Write SRS Document - Project Introduction (Report 1) R S D D

Write SRS Document - Project Management Plan (Report 2) D R S D

Write SRS Document - Software Requirement Specification (Report 3) D R D S

Implement Authentication feature API S D S R

Implement Login, Logout UI screen on Web Application R R D D

Implement Login, Logout UI screen on Mobile Application D R R S

Execute Unit test, Integration test for Authentication feature S D S R

Fix bug after testing for Authentication feature S D S R

Implement Authentication RestAPI D D S R

Execute Unit test, Integration test and Fix bug S D D R

Implement User Management API S D R R

Implement User Management UI screen on Web Application R R D S

Execute Unit test, Integration test for User Management Feature D D S R

Fix bug after testing for User Management Feature S D S R

Implement Project Management API D D S R

Implement Project Management UI screen on Web Application R S D D

Execute Unit test, Integration test for Project Management Feature D S S R

Fix bug after testing for Project Management Feature D S S R

27 | Page
Implement Sponsor Management API D D R S

Implement Sponsor Management UI screen on Web Application R R D S

Execute Unit test, Integration test for Sponsor Management Feature D S R R

Fix bug after testing for Sponsor Management Feature D S R R

Implement Member Compensation and Benefit Management API D D R S

Implement Member Compensation and Benefit Management UI R S D D


Screen on Web Application

Implement Member Compensation and Benefit Management on D S R S


Mobile Application

Execute Unit test, Integration test for Member Compensation and D D S R


Benefit Management Feature

Fix bug after testing for Member Compensation and Benefit D D S R


Management Feature

Write SRS Document - Software Design Document (Report 4) D D S S

Create test case S D S S

Prepare SRS Documentation (Software Test Documentation) R S R D

Execute System Test and Fix bug D D S R

Execute Acceptance Testing and Fix Bug S D R D

Write SRS Documentation - Software Test Documentation (Report 5) D R D R

Write SRS Documentation - Software User Guides (Report 6) R R D D

Write SRS Documentation – Final Project Report R R S D

5. Project Communications

Who/ Target Purpose When, Type, Tool,


Communication Item
Frequency Method(s)

Daily meeting All team Make changes to the Everyday Discord


member plan if issues arise.

Weekly meeting All team Discuss the solution for Every week Discord
member each feature, plan to
build, design and
operate each specific
feature.

Mentor review All team Mentor takes on the Every Face-to-face,


meeting member, role of the user, month Google meet
mentor directly using.
Furthermore, the

28 | Page
mentor and team
review and correct the
scope's flow if it
appears to be illogical.

6. Configuration Management

6.1 Document Management

We save the reports to a shared Google Drive folder. For convenience of


editing, we generated a comparable but shorter version on Notion. We update
and correct all information on Notion after each meeting. After everyone has
agreed, we fix the material on the reports to avoid the report being overly
modified and losing important information or requirements.
6.2 Source Code Management

The source code is kept on Github. The project manager will be one of the team
members. This is the person who will build the Github repository and integrate
the code. After finishing the features, the remaining members will commit to git
branches and make a pull request for other members to review. When
everything is in order and everyone agrees on the code, the project manager
will merge to the main branch.
6.2 Tools & Infrastructures

Category Tools / Infrastructure

Technology ReactJs (FrontEnd), Flutter (Mobile App), .NET (BackEnd)

Database SQLServer, FireBase

IDEs/Editors Visual Studio Code, Visual Studio, IntelliJ

Diagramming StarUML, DrawIO, Mindmeister

Documentation Microsoft Office, Google Docs/Sheets/Slides

Version Control GitHub (Source Codes), Google Drive (Documents)

Deployment server Netlify, Swagger

Project management Notion (Schedule, Tasks, Defects)

29 | Page
III. Software Requirement Specification
1. Product Overview

● Project code: SP23SE39

● Project name: Uni Incubator Compensation and Benefits System

● Group name: GSP23SE18

● Software type: System software (Web Application, Mobile Application)

Uni Incubator Compensation and Benefit (Uni CnB) is a system to manage


startup projects as well as record and calculate allowances and benefits for
participating members located in the Uni Incubator. Start-up groups will
participate in contributing to the projects. Projects will be managed and
monitored throughout the first phase of implementation. All project details
and participants' contributions will be will be recorded. Through that,
members participating in the project will be evaluated and considered
according to their individual contributions and qualifications, from which
they can be promoted as well as enjoy allowances and support for using
products and services within the Uni Incubator ecosystem through the
calculation unit is XP and Point.

Figure 4: Context Diagram [https://i.imgur.com/qc2pCbh.png]


2. User Requirements

2.1 Actors

# Actor Description

30 | Page
The person in direct charge of the system: manages from a project to a
1 Administrator
user and even a sponsor
The person who closely monitors the project throughout its
2 Project Manager implementation. They will be the ones to recognize all of the efforts of the
project's participants - members.
The individual contributes to the system by working on startup projects at
3 Member the Uni Incubator. They will contribute to projects and be recognized for
their efforts in calculating and receiving benefits later on.
4 User (Guest) Users who are not logged in to the system must log in in order to become
system users and use the system's services.
5 System Handler The system manages and calculates compensation and benefits for
members who participate in startup projects at the Uni Incubator.

2.2 Use Cases

2.2.1 Diagram(s)

31 | Page
32 | Page
Figure 5: Use case diagram [https://i.imgur.com/T1fr7W3.png]
2.2.2 Description

ID Use Case Actors Use Case Description


01 Login User Users must log in to access the Uni CnB System.
02 Log out User Users log out from Uni CnB System
03 View personal User View personal information in profile
profile
04 Create project Admin Create project and assign project manager
05 Edit project Admin Edit project name, description, budget, status
information
06 Edit project Admin, Project Edit project milestone (date time, description,…)
milestone manager
07 Edit member If a member is leveled up during a new cycle, the
attribute indicators of P1, P2 will also be affected; the project
manager can edit these attributes in each cycle.
08 View projects Admin, project View project detail information
information manager, member
09 Review Project's Admin View and accept / reject final report to create payslip for
Report member, reply to request project manager edit report
10 Add new task Project manager In each cycle, add a new task indicator to the list of task
indicator indicators.
11 List all projects Admin View a list of all projects in the system
12 Search project Admin, Member Get list of projects by name / status / ID / Date time
13 Request to join Member Create request to join project
projects
14 List all members Admin, project View a list of all members in a project.
in a project manager, member
15 List all users Admin, project View a list of all users in the system
manager
16 Load task Project manager Load task indicator data into the system in the form of an
indicator report Excel report.
17 List all cycle Admin View a list of all salary cycles in the system.
18 Update a user Admin, User Modify user information for the system
information
19 View a user Admin View user information for the system
information
20 Delete a user Admin Remove a user from the system
21 List all sponsors Admin View a list of all sponsor in the system
22 Add sponsor to a Admin The sponsor will meet with the admin to discuss the
project investment in a specific project. Then, admin will enter
the sponsor's investment information into the project to
calculate the final compensation and benefit for member
at the end of cycle.
23 Create a new Admin Create a new sponsor for system projects
sponsor
24 Update a sponsor Admin Modify sponsor information for the system
information
25 View a sponsor Admin View sponsor information for the system: project they
information sponsor, sponsor transaction…
26 Delete a sponsor Admin Remove a sponsor from the system
27 Configure Admin Customize benefit specifics for each member level:

33 | Page
compensation Create a new level, edit level information – base point
benefits and other attributes…
28 Create a salary Admin Create salary point cycle: Each cycle will have a status in
cycle order to create a process for calculating member
compensation and benefits.
29 Edit cycle status Admin Edit cycle status: Change the status to notify the project
manager that reports must be submitted or lock the status
to notify the project manager that payroll reports must be
reviewed.
30 End cycle Admin End project cycle, system then calculates the
compensation and benefit for each member
31 View personal Member View personal wallets information: point, XP, …
wallet
32 Exchange point Member Exchange point to voucher, project of sponsor, ...
33 Fill member Project manager When members participate in a project, the project
attributes manager evaluates and enters the necessary attributes -
P1, P2 - into the system to calculate their compensation
and benefit at the end of the cycle.
34 Reply join request Project manager Reply (Accept / Reject) join request of member
35 Create final work Project manager Create a report with tasks, to generate the final outcome
report of P3 Attribute - Project member Performance in order to
determine the bonus.
36 List all payslip Admin, member View a list of all members’ payslips
37 View member Admin, project View the member details for the project PM is managing
information in manager
project
38 List all project Admin, project View a list of all reports in each project.
report manager
39 View members in Admin, Project View all members working on project that PM is
project manager, members managing
40 View personal Member View personal transactions: the history exchange point
transactions
41 View joined Member View information of joined project
projects
42 View personal Member View personal working result
working result
43 View project's Member, project View project detail information
information manager, admin
44 Update personal User Edit profile avatar, name, contact, address, Facebook,
information etc..
45 List all milestone Member, project View a list of all milestones in the project.
in a project manager
46 Delete a project Project manager Delete project milestone
milestone
48 Create a project Project manager Create project milestone
milestone
49 Create a new Admin Create a new admin account in the system
admin
50 Automatically System handler Level up member when they they gain enough needed
level-up member XP
51 Open the gift code System handler To use, open the gift code voucher in member mobile app
voucher to use - WAGE
52 Export project System handler Export project experience when member request
experience

34 | Page
53 Change PIN Member Change PIN in mobile app
54 Send email to new System handler Send email involved login information to new admin
admin
55 Send email to new System handler Send email project information to new project manager
project manager
56 Transfer point to Member Transfer a certain number of points to another member
other members via the mobile app - WAGE.
57 Receive point Member Receive points from another member via mobile app –
from other WAGE
members
58 Create a new Admin Create a new voucher with information such as quantity,
voucher voucher name, and gift code so that members can use
points to buy
59 Update voucher Admin Change voucher information such as quantity,
information description, etc.
60 Use voucher Member Members use their voucher at Uni Incubator service.
61 List all voucher Member Display all vouchers in the system via the member,
admin account screen.
62 Divide the bonus Project manager Project manager can use the feature to evenly distribute
point equally bonus to project members based on the tasks they
among the project complete.
members.
63 View payslip Member At the end of each cycle, members will be able to view
detail their payslip details.
64
65
66

68
69
70
71
72
73
74
75
76

3. Functional Requirements

3.1 System Functional Overview

Uni CnB is a system that provides management tools:

● Human resource management: Managing members involved in the


incubator's startup projects.
● Project management: Managing all startup projects on the campus of Uni
Incubator. Projects will be managed specifically and methodically from
conception to approval for implementation.

35 | Page
● Management of compensation and benefits for employees: Based on
their contributions and capacity accumulated through participating
projects, the system will calculate allowances and benefits for members
according to period (in point). As a result, the members who participate
will automatically level up as the experience gained from the projects
(measured in XP) increases.
3.1.1 Screens Flow

36 | Page
Role Screen Flow

Member

Figure 6:

37 | Page
Admin

Figure 7:

38 | Page
Project
manager

Figure 8:
3.1.2 Screen Descriptions
i. Web Application: UniCARE
# Feature Screen Description

Authentication Login This is where users authenticate themselves to enter the


1 Uni CnB system using one of two methods: username
and password or login with Google.

2 System statistic Main dashboard Statistics on the number of Uni CnB system projects,

39 | Page
users, and sponsors

3 System statistic Project Statistics on the system's number of projects


management –
List all

4 Search project Project Search by and filter projects based on desired conditions.
Management -
List all

6 Search users User Search by and filter users based on desired conditions.
Management

8 Search sponsors Sponsor Search by and filter sponsor based on desired conditions.
Management

9 System statistic Cycle Statistics on the system's number of salary cycle


management

10 View list of Point Data on the number of points in current cycle that use to
payslips management pay for projects and members in the system by payslip.

11 Point conversion Dashboard - List all vouchers in system that members can use points
Exchange point to buy.

12 View benefit in Level View the number of levels in the system for members.
each level management

13 Configure benefit Level detail View detail for each level and edit them.

14 View project Report dashboard Statistics on the number of reports, as well as member
report list benefit calculation data

15 View project Report detail For each report, information on member benefit and
report reward reports is displayed.

16 Create a new New project Create new project in the system


project

17 Edit project Project editing Edit project name, description, budget, status

18 View sponsor Sponsor detail - View sponsor information


profile profile

19 Edit sponsor Sponsor editing Modify sponsor information for the system
information

20 View user User View user information for the system individually
information Management -
User Info

21 View project Project detail View project information for the system individually
information

22 Edit user Edit user detail Modify user information for the system
information

23 View user Payslip View user payslip information for the system

40 | Page
payslip

24 Enter personal Project info – Fill Enter member attribute when members participate in a
indicator member info project so as to calculate their compensation and benefit
at the end of the cycle.

25 View member Member voucher View personal wallets information: point, xp,…
wallet wallet

26 View personal Member point View personal transactions: the history exchange point
transactions transaction

27 Request edit Report detail - Request edit point in report each cycle from project
project budget Point request manager.

28 Create a new Sponsor Creating A new sponsor has been added to the system
sponsor

29 View project Sponsor detail - View the complete list of projects supported by the
sponsor project sponsor.

30 View sponsor Sponsor detail - View a list of sponsoring activities in which sponsors
transaction transaction provided support with system projects.

31 Create new Sponsor detail - Add new sponsorship activity of a sponsor to the system.
sponsor support Transaction -
action New sponsor
action

32 Create new User Create new admin in the system


admin Management -
Create new
admin

33 View member Project Info - View a list of project members' payslip


payslip Payslip

34 View project Project Info - View a list of project sponsors.


sponsor Sponsor

35 Create new Project Info - Create new sponsor in the system


sponsor Sponsor - Add
new sponsor

36 View project Project Info - View the project's transaction point through each cycle.
point transaction Point transaction

37 View project Project Info - View the list of project's reports.


report Report

38 View project task Project Info - View the list of project's task indicator reports.
indicator Task

39 Add new task Project Info - Input new task indicator.


indicator Task - Add task

40 System statistic Project Info - Statistics on the project's number of milestones.


Milestone general

41 | Page
41 View project Project Info - View milestone information for the system individually
milestone detail Milestone detail

42 Member requests Project Info - Members send a request to contribute to the project.
to join a project Request to join
project

43 Filter milestone Project Info - List of milestones in each project and filter it by time.
by time Milestone
management

44 Create a new Project Info - Create new milestone for project.


milestone Create a new
milestone

45 View list of Project Info - List of all members in project.


project member Member

46 Reply request to Project Info - Respond to a member's request to join


join Add member

47 Fill P1 attribute Project Info - Fill Fill in the information at P1 attributes - the position of
Member info 1 the project member - so that the system can record the
information and then calculate the compensation and
benefit for them.

48 Fill P2 attribute Project Info - Fill Fill in the information at P2 attributes - the personal
Member info 2 indicators of the project member - so that the system can
record the information and then calculate the
compensation and benefit for them.

49 View project Project Info - View project member details.


member profile View member
info

50 Edit P1 attribute Project Info - Edit Edit in the information at P1 attributes - the position of
member salary the project member - so that the system can record the
attribute 1 information and then calculate the compensation and
benefit for them.

51 Edit P2 attribute Project Info - Edit Edit in the information at P2 attributes - the personal
member salary indicators of the project member - so that the system can
attribute 2 record the information and then calculate the
compensation and benefit for them.

52 Search all Dashboard - Search all factors in system without sorted by role
Search without (project, user, sponsor)
condition

53 View user profile User Profile View user details.

54 View user User detail - View list of payslips of user in each cycle.
payslip payslip

55 View payslip Payslip detail View payslip details (P1, P2, P3 factors by detail)
detail

42 | Page
56 System statistic Point dashboard Point statistics in the system, the sources of points
received (sponsored) and spent (payslips) for members in
the current cycle

57 View voucher Dashboard - View voucher information such as quantity, voucher


information Exchange point - name, and gift code so that members can use points to
Detail buy

58 Edit voucher Dashboard - Edit voucher information such as quantity, voucher


information Exchange point - name, and gift code so that members can use points to
Change info buy

59 Create a new Dashboard - Create new voucher in the system


voucher Exchange point -
Create new
voucher

60 Get list of Member voucher List of all member vouchers.


member’s wallet
vouchers

61 Get list of point Member point Transfer - receive points transactions of member's wallet
transactions. transaction statistics

62 Create a new Cycle creating Create a new cycle for the system.
cycle

63 View cycle detail Cycle detail Cycle created successfully; view cycle details; and, if
desired, initiate cycle status transition.

64 Change cycle Cycle changing Change the cycle status so that the project manager can
status status start submitting payslips for the projects they supervise,
then switch the cycle status for reviewing these reports.

65 End cycle Cycle ending After locking the cycle, finish the report approval
process and end the cycle to pay compensation and
benefits to all employees in the system.

66 Change project Report detail - Change the number of points in the project fund in the
budget Change budget current cycle.

67 Load report data Report upload Load task indicator data as report into the system in the
data form of an Excel report

68 Notification – Report detail - A notice appears explaining the project manager that the
Not enough point Not enough point quantity of points in the project budget for this time is
insufficient to pay for members.

69 View point Report detail - View the project manager's request to edit points.
changing request View point
changing request

70 Notification – Report detail - Notice that the project manager has successfully
Report submitted Submit submitted the report
successfully successfully

43 | Page
44 | Page
ii. Mobile app: WAGE
# Feature Screen Description

Authentication Login This is the step that confirms the user has logged into the
system. Only members can use the features of the mobile
1
app. Therefore, the login feature only uses the Google
login form with their email address.

2 Create PIN New PIN Create a PIN code that users must enter during the
transaction to increase security.

3 Confirm PIN New PIN To confirm, ask the user to input the new created PIN
input confirmation again.

4 Confirm create PIN creation Notification of the successful creation of a new PIN
PIN successfully successfully

5 System statistic Home Display the main features that users can interact with
using the app's screen buttons.

6 View member Home - Flip card Show the member's id via a scannable bar code.
code

7 View member User Transaction Recent point transaction statistics.


point transaction
overview

8 Get list of Transaction Statistics of all transactions with point changes,


transaction. history including the feature to search for transactions.

9 List of Notification Display all received notifications in the system and


notification include the function to filter read and unread
notifications.

10 Choose transfer Change point Choose this option to transfer points to other members.
point

11 Input point to Point for change Enter the number of points to be transferred to others.
transfer

12 Point transfer User Confirm Confirm the number of points that will be transferred.
confirm Transaction

13 Input PIN PIN To authenticate and complete transactions, enter PIN.

14 Create QR to QR changing Create a QR code to transfer - receive points by scanning


transfer point point the code

15 Choose receive Receive point Choose this option to receive point points from other
point members.

16 Scan QR to QR scan Scan the QR code on the screen to transfer/receive


receive point points.

17 View profile Profile - General View statistics on the user's primary information.

45 | Page
18 View profile Profile setting View settings decisions and edit user information.
setting

19 View profile Profile detail View user detail


detail

20 Edit profile Profile detail - Edit user information: Name, email, phone number,
edit Facebook, …

21 Change avatar Profile detail - Change user avatar


change avatar

22 View personal Point - Level View user level and statistics of XP users receive,
level calculate the amount of XP needed for user to level up

23 View member Profile - View the user's basic information, statistics for the
statistic Achievement projects in which the user participates, and their
completion progress.

24 List of payslips User Payslip View list of payslips of user in each cycle

25 View payslip User Payslip - View payslip details with point in P1, P2, P3 overall.
with P1, P2, P3 General

26 View payslip User Payslip - View payslip details (P1, P2, P3 factors by detail)
detail Detail

27 List of joined Project List View list of joined projects of member


project

28 View project Project detail View project progress information and member
working detail contribution statistics

29 View list of tasks Project task Statistics on the number of task members completed

30 View task detail Project task detail View number of task indicators members completed by
by cycle detail.

31 View task bonus Point Reward View the list of bonus members earned through tasks.

32 View list of Voucher List List of all member vouchers.


vouchers in
wallet

33 View voucher Voucher Info View voucher details.


details

34 Use voucher Voucher Gift Open voucher gift code to use it.
code Using

35 View used Used voucher View list of used vouchers.


voucher Info

36 View list of Voucher Shop View the list of vouchers available to members.
vouchers that
member can buy

46 | Page
37 Confirm to buy User Confirm Enter PIN to confirm buy voucher transaction.
voucher Transaction

38 Notification - buy Point transaction Notice of the fact that the purchase of the voucher was
successfully successfully successful.

39 Recover PIN PIN recovery Enter PIN recovery.

40 Notification – PIN recovery Notification of the successful recovery of a new PIN


recover PIN successfully
successfully

41 Change PIN Change PIN Enter current PIN to change.

42 Notification - Error Notification of error operation.


Error

3.1.3 Screen Authorization


i. Web Application: UniCARE
Screen User Member Admin Project manager
Login X
Main dashboard X X
Project Management - List all X X X
User Management X
Sponsor Management X
Cycle management X
Point management X
Dashboard - Exchange point X
Level management X
Level detail X
Report dashboard X
Report detail X X
New project X
Project editing X X
Sponsor detail - profile X
Sponsor editing X
User Management - User Info X
Project detail X X X
Edit user detail X
Payslip X X X
Project info – Fill member info X
Report detail - Point request X
Sponsor Creating X
Sponsor detail - project X
Sponsor detail - transaction X X
Sponsor detail - Transaction -
X
New sponsor action
User Management - Create new
X
admin
Project Info - Payslip X X

47 | Page
Project Info - Sponsor X X
Project Info - Sponsor - Add
X
new sponsor
Project Info - Point transaction X X
Project Info - Report X X
Project Info - Task X X
Project Info - Task - Add task X
Project Info - Milestone general X X X
Project Info - Milestone detail X X X
Project Info - Request to join
X
project
Project Info - Milestone
X X
management
Project Info - Create a new
X
milestone
Project Info - Member X X X
Project Info - Add member X
Project Info - Fill Member info
X
1
Project Info - Fill Member info
X
2
Project Info - View member info X
Project Info - Edit member
X
salary attribute 1
Project Info - Edit member
X
salary attribute 2
Dashboard - Search without
X X
condition
User Profile X
User detail - payslip X
Payslip detail X
Point dashboard X
Dashboard - Exchange point -
X
Detail
Dashboard - Exchange point -
X
Change info
Dashboard - Exchange point -
X
Create new voucher
Member voucher wallet X
Member point transaction X
Cycle creating X
Cycle detail X
Cycle changing status X
Cycle ending X
Report detail - Change budget X
Report upload data X
Report detail - Not enough point X
Report detail - View point
X
changing request
Report detail - Submit
X
successful

48 | Page
ii. Mobile app: WAGE
Screen User Member Admin Project manager
Login X
New PIN X
New PIN confirmation X
PIN creation successfully X
Home X
Home - Flip card X
User Transaction X
Transaction history X
Notification X
Change point X
Point for change X
User Confirm Transaction X
PIN X
QR changing point X
Receive point X
QR scan X
Profile - General X
Profile - General - Scroll X
Profile detail X
Profile detail - edit X
Profile detail - change avatar X
Point - Level X
Profile - Achievement X
User Payslip X
User Payslip - General X
User Payslip - Detail X
Project List X
Project detail X
Project task X
Project task detail X
Point Reward X
Voucher List X
Voucher Info X
Voucher Gift code Using X
Used voucher Info X
Voucher Shop X
User Confirm Transaction X
Point transaction successfully X
PIN recovery X
PIN recovery successfully X
Change PIN X
Error X

3.1.4 Non-Screen Functions

49 | Page
Feature System
# Description
Function

Send level-up Send an email to member when they level up


1 Send mail
email to member

Export project Export project experience when member request


Export working
2 working
experience
experience

Generate bar Generate bar code of member in personal wallet


Bar code
3 code of personal
generation
wallet

Send email to Send email involved login information to new admin


4 Send mail
new admin

Send email to Send email involved login information to new project


5 new project Send mail manager
manager

3.1.5 Entity Relationship Diagram

Figure 9:
Entities Description

50 | Page
# Entity Description

1 Attribute group Groups of evaluation criteria for members based on which the
system can determine compensation and benefits (based on the 3
"P" groups of the 3P compensation consulting model)

2 Attribute The specific qualities in each group P1, P2, P3 of the 3P


compensation consulting model are the criteria used to compute
members compensation and benefits in each cycle.

3 Report Each cycle, report the compensation and benefit of members


based on the number of tasks completed in the project.

4 Member Participants contribute to the system's projects. The system


records and calculates the benefit, which is given out every cycle.

5 User Participants in UniCnB

6 Project Startup projects have been accepted by the Uni CnB management
board and placed into development.

7 Sponsor Sponsors of the system's projects. Admin recorded their data for
management.

8 Compensation – The time unit used to calculate member compensation and


benefit cycle benefit. Starting from when the admin starts and ends when the
admin when the clicks to transition to the "end of cycle" status

9 Level Tiers of members in the system. When members of the project


perform tasks, they get XP and move to the following levels.

10 Payslip Pay slips statistics the points members earn during each project
cycle.

11 Payslip item Indicators in the payslip such as time, points, ... in each cycle

12 Transaction Record the activities of transferring and receiving points from the
system to the project wallet or the member wallet.

13 Member wallet Members' wallets receive points earned from each cycle's
projects and use those points to buy vouchers for products and
services at Uni Incubator.

14 Member transaction Record members receiving / transferring points or using points to


buy vouchers for products and services at Uni Incubator.

15 System wallet System wallet, provide points to pay base benefit to members
based on indicators P1 and P2.

51 | Page
3.2 Manage project

Figure 10:

3.2.1 Create a new project


● Function trigger: When a admin clicks on the "Tạo dự án mới"
button in the project management page, the "Create a New
Project" function is triggered. This function can be triggered
through a navigation path or a link on the main dashboard. It is
not triggered automatically or on a timing frequency.
● Function description:
o Context: Projects that have been successfully accepted by
the Uni CnB management board will be provided to the
admin to create on the system for implementation. Log in
as an admin and click "Dự án" to see the project
management page. Then click "Tạo dự án" to new project
page.
o Actors/Roles: The primary actor for this function is admin
who is in charge of creating new projects within the
system.
o Purpose: The purpose of this function is to create a new
project within the project management system, providing
all necessary information to allow the team to work
together efficiently and effectively, as well as assisting Uni
Incubator in managing developing projects.
o Interface: The interface for this function typically includes
a form with fields for project name, project abbreviation,
status, budget, project description, and project manager,
description attach file.
o Data processing: The system processes the data entered
into the form and stores it in a database.
● Screen layout:

52 | Page
Figure 11:

● Function Details:
o Scope: Fill in all of the information on page; fields “Tên
dự án”, “Tên viết tắt”, “Mô tả”, “Quản lý dự án” are
mandatory; otherwise, the project will not be created.
Attached documents are pdf files that are no larger than
10Mb.
o Validation:
▪ Tên dự án – project name: This field is required and
must be unique. The system should perform
validation to ensure that the entered name does not
already exist within the system.
▪ Tên viết tắt – project abbreviation: This field is
required and must be unique. The system should
perform validation to ensure that the entered name
does not already exist within the system.
▪ Quỹ dự kiến – budget: This field is optional but
highly recommended and must be a valid integer
number. The system should allow the admin to
enter a budget of the project that will be visible to
all members.
▪ Quản lý dự án: This field is required. The system
allows admin to choose a project manager of the
project that will be visible to all team members.

53 | Page
This person will recognize all of the efforts of the
project's participants – members.
▪ Mô tả dự án – project description: This field is
required. The system allows admin to enter a
description of the project that will be visible to all
team members.
▪ Attach file: This field is optional but highly
recommended. The system should allow the admin
to load attached document that provides a detailed
description of the project as well as its development
and operation plans. This is pdf files that are no
larger than 10Mb.
o Business rules:
▪ Project name and project abbreviation must be
unique within the system.
▪ Start dates will be automatically taken from the
current date when the admin creates the project
▪ A member must be assigned to become project
manager.
▪ The default status of the project is “Khởi tạo” –
created.
o Functionalities:
▪ Creation of new projects within the project
management feature.
▪ Assigning project manager to projects for
collaboration and task management.
▪ Providing project details to members for better
understanding of project requirements and goals.
o Workflow:
▪ The user with admin role to the "New Project"
page.
▪ The admin fills in the required fields, including
project name, project abbreviation, description and
project manager.
▪ The admin may also load an optional attach file.

54 | Page
▪ The user may also fill in an optional project budget.

▪ The system validates the data entered and checks


for any conflicts or errors. If the data is valid, the
system creates a new project in the database and
assigns project manager to the project.
▪ The admin is redirected to the project dashboard,
where they can view and manage the project.
3.2.2 Update project information
● Function trigger: The update project information function is
triggered when admin navigates to the project details page and
selects the "chỉnh sửa" - edit button.
● Function description:
o Actors/Roles: The primary actor for this function is admin
who is in charge of update projects within the system.
o Purpose: The purpose of the update project information
function is to allow admin to modify and update the details
of a project.
o Interface: The interface consists of a form that contains
fields for updating project details, including project name,
start date, status, budget, project description, and project
manager, description attach file.
o Data processing: The update project information function
retrieves and displays the current project details from the
database in the form fields. The user can then update any
fields that need to be changed. Once the user has made the
desired changes, the function processes the data and
updates the project details in the database.
● Screen layout:

55 | Page
Figure 12:

● Function Details:
o Data explanation: The update project information function
requires data to be entered into the form fields, including
project name, project abbreviation, status, budget, project
description, and project manager, description attach file.
o Validation:
▪ Tên dự án – project name: This field is required and
must be unique. The system should perform
validation to ensure that the entered name does not
already exist within the system.
▪ Tên viết tắt – project abbreviation: This field is
required and must be unique. The system should
perform validation to ensure that the entered name
does not already exist within the system.
▪ Quỹ dự kiến – budget: This field is optional but
highly recommended and must be a valid integer
number. The system should allow the admin to
enter a budget of the project that will be visible to
all members.

56 | Page
▪ Quản lý dự án: This field is required. The system
allows admin to choose a project manager of the
project that will be visible to all team members.
This person will recognize all of the efforts of the
project's participants – members.
▪ Mô tả dự án – project description: This field is
required. The system allows admin to enter a
description of the project that will be visible to all
team members.
▪ Attach file: This field is optional but highly
recommended. The system should allow the admin
to load attached document that provides a detailed
description of the project as well as its development
and operation plans. This is pdf files that are no
larger than 10Mb.
o Business rules:
▪ Project name and project abbreviation must be
unique within the system.
▪ A member must be assigned to become project
manager and it cannot change.
o Functionalities: The update project information function
provides the following functionalities:
▪ Displaying current project details in the form fields
for the admin to update.
▪ Validating and processing the input data.

▪ Updating the project details in the database.

▪ Displaying a success or error message to the admin


after the update is completed.
o Workflow:
▪ The admin navigates to the "Update Project" page.

▪ The admin sees all project details in the form fields

▪ The admin the update any fields that need to be


changed, including project name, start date, end
date, and team members.

57 | Page
▪ The system validates the data entered and checks
for any conflicts or errors. If the data is valid, the
system creates update project in the database.
▪ The admin is redirected to the project dashboard,
where they can view and manage the project.
3.3 View project detail information

3.3.1 View project milestone


● Function trigger: When a user with the appropriate permissions
navigates to the project details page and selects the "kế hoạch" -
milestones tab, the view project milestone function is triggered.
● Function description:
o Actors/Roles: Admin, project manager, member
o Purpose: The purpose of the view project milestone
function is to allow users to view the milestones associated
with a project.
o Interface: The interface displays the list of milestones for
the selected project, including milestone name,
description, created date, and the name of the project
manager - the person who created these milestones.
o Data processing: The view project milestone function
retrieves the milestone data for the selected project from
the database and shows it on the screen.
● Screen layout:

58 | Page
Figure 13:

● Function Details:
o Data explanation: The view project milestone function
requires the project ID to retrieve the milestones associated
with the project.
o Validation: The function validates the project ID in the
database to confirm that it is a valid project ID.
o Business rules:
▪ Created dates will be automatically taken from the
current date when the project manager creates the
milestone.
o Functionalities: The view project milestone function
provides the following functionalities:
▪ Retrieving milestone data for the selected project
from the database.
▪ Displaying the milestone data with milestone name,
description, created date, and the person who
created that project – project manager.

59 | Page
▪ Allowing the user to sort and filter the milestone
data by various criteria.
▪ Allowing the project manager to edit and update
milestone details, such as name or description.
o Workflow:
▪ The user navigates to the "Project detail" page.

▪ The user sees all project details in the form fields

▪ The project manager can update any fields that need


to be changed, including milestone name and
description.

3.3.2 View project member


● Function trigger: The view project member function is triggered
when a user with the appropriate permissions navigates to the
project details page and selects the "thành viên" - member tab.
● Function description:
o Actors/Roles: Admin, project manager, member
o Purpose: The purpose of the view project member function
is to allows users to see who is working on a project.
o Interface: The interface consists of a grid that displays the
list of members for the selected project, including member
name, major, and level.
o Data processing: The view project member function
retrieves the member data for the selected project from the
database and displays it in the grid.
● Screen layout:

60 | Page
Figure 14:

● Function Details:
o Data explanation: The view project member function
requires the project ID to retrieve the members working on
the project.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database.
o Business rules:
▪ Statistic the number odd members in the project.
o Functionalities:
▪ The view project member function provides the
following functionalities: Retrieving member data
for the selected project from the database.
▪ Displaying the member data in a table with member
name, major, and level.
▪ Allowing the user to sort and filter the member data
by various criteria.
▪ Allowing the project manager to add new members
to the project and specifying their attribute factor.
61 | Page
▪ Allowing the project manager to remove existing
members from the project.
o Workflow:
▪ User navigates to the project details page and
selects the "Members" tab.
▪ The system retrieves member data for the selected
project from the database.
▪ The system displays the member data in a grid.

▪ The user can sort and filter the member data by


various criteria.
▪ The project manager can add new members to the
project and fill their attribute indicator.
▪ The project manager can remove existing members
from the project.

3.3.3 View project sponsor


● Function trigger: The view project member function is triggered
when a user with the appropriate permissions navigates to the
project details page and selects the "tài trợ" - sponsor tab.
● Function description:
o Actors/Roles: Admin, project manager
o Purpose: The purpose of this function is to allow project
manager and admin to view the information of the sponsor
who is funding the project.
o Interface: The interface of this function will display the
sponsor's information, including their name, contact
information, and any other relevant details.
o Data processing: This function will retrieve the sponsor's
information from the database and display it on tab
“Sponsor” in the project details page.
● Screen layout:

62 | Page
Figure 15:

● Function Details:
o Data explanation: The data required for this function
includes the sponsor's name, contact information, total
funding point and any other relevant details that were
provided for project.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database. The user has the
required role of project manager or admin to view the
payslips
o Business rules:
▪ The system will only allow project manager and
admin to view the sponsor's information.
▪ The sponsor's information will not be editable by
anyone other than the admin.
o Functionalities:
▪ The functionality of this function will allow project
manager and admin to view the sponsor's
information by clicking on the "Sponsor" tab from
the project details page.

63 | Page
o Workflow:
▪ User navigates to the project details page.

▪ User clicks on the "Sponsor" tab.

▪ System retrieves the sponsor's information from the


database.
▪ System displays the sponsor's information on the
project details page.
▪ User views the sponsor's information.

3.3.4 View project point transaction


● Function trigger: The view project member function is triggered
when a user with the appropriate permissions navigates to the
project details page and selects the "Biến động point” - point
transaction tab.
● Function description:
o Actors/Roles: Admin, project manager
o Purpose: The purpose of this function is to allow project
manager and admin to view the information of the point
transaction in the project.
o Interface: The interface consists of a table that displays the
list of point transaction for the selected project, including
id, description, transaction date, type, and total point.
o Data processing: This function will retrieve the point
transaction information from the database and display it on
tab “Biến động point” – point transaction in the project
details page.
● Screen layout:

64 | Page
Figure 16:

● Function Details:
o Data explanation: The data required for this function
includes the transaction id, description, total point and any
other relevant details that were point transaction.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database. The user has the
required role of project manager or admin to view the
payslips
o Business rules: The view project point transaction function
does not allow the user to make any changes or edits to the
transaction log. Instead, it is intended only to provide a
transparent overview of the project's point transactions.
o Functionalities:
▪ The functionality of this function will allow project
manager and admin to view the point transaction by
clicking on the point transaction tab from the
project details page.
o Workflow:
▪ User navigates to the project details page.

65 | Page
▪ User clicks on the "Point transaction" tab.

▪ System retrieves the transaction information from


the database.
▪ System displays the point transaction information
on the project details page.
▪ User views the point transaction.

3.3.5 View project report


● Function trigger: The view project report function is triggered by
a user navigating to the project dashboard and clicking on the
"View Report" button for the specific project they want to view
the report for.
● Function description:
o Actors/Roles: Admin, project manager
o Purpose: View project report function allows project
manager and admin to view the list of report in the project.
This function allows admin and project manager to
manage clearly detailed information of reports each cycle.
o Interface: The interface consists of a table that displays the
list of reports of the selected project.
o Data processing: This function will retrieve the report
information from the database and display it on tab “báo
cáo” – report in the project details page.
● Screen layout:

66 | Page
Figure 17:

● Function Details:
o Data explanation: The data required for this function
includes the report name, start date, total point, end date
and status.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database. The user has the
required role of project manager or admin to view the
payslips.
o Business rules: The view project report function does not
allow the user to make any changes or edits to the project
closed report. Only project manager can edit and load
report data when the report at status “ongoing”.
o Functionalities:
▪ The functionality of this function will allow project
manager and admin to view the report by clicking
on the report tab from the project details page.
o Workflow:
▪ User navigates to the project details page.

67 | Page
▪ User clicks on the "report" tab.

▪ System retrieves the report information from the


database.
▪ System displays the report information on the
project details page.
▪ User views the report.

3.3.6 View project payslip


● Function trigger: This function is triggered when a user with the
role of project manager or admin navigates to the project
dashboard and selects the tab “Phiếu lương” to view the list of
payslips for the members in the project.
● Function description:
o Actors/Roles: Project manager, admin
o Purpose: The purpose of this function is to provide the
project manager or admin with an overview of the
payments made to the members in the project. This helps
in tracking the expenses and ensuring that the members are
compensated for their contributions.
o Interface: The interface consists of a table that displays the
list of member payslips of the selected project.
o Data processing:
▪ Retrieve payslip records from the database

▪ Display payslip records in the interface

● Screen layout:

68 | Page
Figure 18:

● Function Details:
o Data explanation: The data required for this function
includes the member’s name, start date, total point, and the
point for each individual attribute of member.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database. The user has the
required role of project manager or admin to view the
payslips.
o Business rules:
▪ The payslip records are retrieved from the database
and displayed in the interface.
▪ The payslip is calculated the payment amount based
on the member's contribution to the project
o Functionalities:
▪ The functionality of this function will allow project
manager and admin to view the member payslip by
clicking on the payslip tab from the project details
page.

69 | Page
o Workflow:
▪ Project manager or admin navigating to the project
detail and selecting the tab “Phiếu lương” - payslip
to view the list of payslips.
▪ The payslips are displayed in a list view, and the
user can filter the payslips by date, member name,
or payment amount.
3.3.7 View project task
● Function trigger: The view project task function is triggered when
admin or project manager of a project navigates to the project
dashboard and clicks on the "Tasks" tab. The function is designed
to display a list of all the tasks assigned to that member in the
project.
● Function description:
o Actors/Roles: Project manager, admin.
o Purpose: The main purpose of the function is to provide
admin or project manager with an overview of all the tasks
assigned to members in the project that helps to manage
member’s contribution and ensure that they complete all
their tasks on time.
o Interface: The function is accessed through the project
detail, and the user interface displays a list of all the tasks
assigned to the member.
o Data processing:
▪ When a member triggers the view project task
function, the system accesses the project database to
retrieve all the tasks assigned to those members.
▪ The system then processes this data and displays it
in a list format.
● Screen layout:

70 | Page
Figure 19:

● Function Details:
o Data explanation:
▪ The list of tasks displayed includes the task name,
description, expected time, actual time and the
name of the member in which the task is assigned.
▪ This data is intended to provide the project manager
or admin with a quick overview of member tasks.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database. The user has the
required role of project manager or admin to view the
payslips.
o Business rules:
▪ Assign tasks to members

▪ Task can be filtered by date, cycle, …


o Functionalities:

71 | Page
▪ The function provides the ability to sort the task list
by start date or cycle.
o Workflow:
▪ The amin or project manager triggers the view
project task function by navigating to the project
dashboard and clicking on the "Tasks" tab.
▪ The system then retrieves all the tasks assigned to
the member and displays them in a table.
▪ The project manager can then sort the tasks by start
date or cycle, or edit task details directly from the
task list.
▪ The task list is updated in real-time to reflect any
changes made by the project manager.
3.3.8 Get list of projects
● Function trigger: The "Get List of Projects" function is triggered
when a user navigates to the “Dự án” at the left menu of the
application. The function is designed to display a list of all the
projects in the system.
● Function description:
o Actors/Roles: admin, project manager, member
o Purpose: The main purpose of the function is to provide
users with an overview of all the projects in the system.
This helps admin and project manager to manage their
project and member contribution.
o Interface: The function is accessed through the application
dashboard, and the user interface displays a list of all the
projects that that divided into 4 columns by status.
o Data processing:
▪ When a user triggers the "get list of projects"
function, the system accesses the database to
retrieve all the projects.
▪ The system then processes this data and displays it
in a list format.
● Screen layout:

72 | Page
Figure 20:

● Function Details:
o Data explanation:
▪ The list of projects displayed includes the project
name, project manager, created date and status.
▪ This data is intended to provide the user with a
quick overview of all projects in the system.
o Validation: The function includes validation to ensure that
the user has the appropriate permissions to view the
project list.
o Business rules:
▪ Assigning projects to project managers

▪ Filter project by time

▪ Filter project by status


o Functionalities:
▪ The user can filter the project list by project
manager or status.
▪ The user can click on a project to view its details.

▪ For admin and project management, they can edit


the project details, or cancel the project.
o Workflow:
73 | Page
▪ The user triggers the "get list of projects" function
by navigating to the "Projects" in the left menu of
the application.
▪ The system then retrieves all the projects in a list
format.
▪ The user can then sort and filter the projects, as well
as view, edit, or delete a project directly from the
project list for project manager and admin role.
▪ The project list is updated in real-time to reflect any
changes.
3.3.9 Search project
● Function trigger: The "search projects" function is triggered when
a user needs to find a specific project of a list of projects within
the application. The function can be accessed at any time, as
needed.
● Function description:
o Actors/Roles: Member, project manager, admin
o Purpose: The main purpose of the function is to help users
find specific project(s) quickly and easily. This is
especially useful for users who work on a large number of
projects or need to access a specific project quickly.
o Interface: The function is accessed through the project
dashboard, and the user interface includes a search bar
where the user can enter the project name or keywords
related to the project.
o Data processing:
▪ When a user triggers the "search projects" function,
the system accesses the database and searches for
projects that match the search criteria entered by the
user.
▪ The system then processes this data and displays a
list of all the projects that match the search criteria.
● Screen layout:

74 | Page
Figure 21:

● Function Details:
o Data explanation:
▪ The list of projects displayed includes the project
name, project abbreviation, start date, number of
members and status.
▪ This data is intended to provide the user with a
quick overview of the projects that match the search
criteria and help them find the project they are
looking for.
o Validation:
▪ The function includes validation to ensure that the
user has the appropriate permissions to view the
search results.
o Business rules:
▪ The function provides several functionalities,
including the ability to sort the search results by
project name, project manager, or status.
▪ The user can also filter the search results by project
manager or status.

75 | Page
▪ The user can click on a project to view its details
o Workflow:
▪ The user triggers the search projects function by
entering the project name or keywords related to the
project in the search bar.
▪ The system then searches for projects that match the
search criteria and displays them in a list format.
▪ The user can then sort and filter the search results

▪ The search results are updated in real-time to reflect


any changes made by the user.
3.3.10 Request to join project
● Function trigger: The request to join project function is triggered
when a member wants to join a project and needs to submit a
request to the project manager. The function can be accessed as
needed when the member identifies the project they wish to join.
● Function description:
o Actors/Roles: The actors involved in this function are the
project member.
o Purpose: The main purpose of this function is to provide a
way for project members to express interest in joining a
project and the project manager reviews and approves or
denies the request.
o Interface: The function is accessed through the project
detail system's interface, and the user interface includes a
form for the project member to fill out and submit.
o Data processing: When a project member triggers the
request to join project from function, the system processes
the data entered by the project member, such as the
member's information, and reasons for wanting to join the
project. The system then sends the request to the project
manager for review and approval.
● Screen layout:

76 | Page
Figure 22:

● Function Details:
o Data explanation:
▪ The data entered by the project member in the form
includes the member's name, major, and reasons for
wanting to join the project.
▪ This data is intended to provide the project manager
with the necessary information to make an informed
decision regarding the member's request to join the
project.
o Validation: The function includes validation to ensure that
the project member has the appropriate permissions to
submit the request.
o Business rules:
▪ Define the criteria for project member and routing
requests for member to the project manager for
review and approval.
o Functionalities:

77 | Page
▪ The function provides several functionalities,
including the ability for project members to express
interest in joining a project, and for project
managers to review and approve or deny those
requests.
o Workflow:
▪ The project member triggers the request to join
project function by filling out and submitting the
form, which includes their name, major, and reason
for wanting to join the project.
▪ The system then sends the request to the project
manager for review and approval.
3.3.11 Reply joining project request
● Function trigger: The reply joining project request function is
triggered when a project manager receives a request to join the
project from member(s).
● Function description:
o Actors/roles: Project manager.
o Purpose: Allow the project manager to approve or reject
the team member's request to join the project.
o Interface: Involves a notification that the project manager
receives with the details of the team member's request to
join the project.
o Data processing:
▪ The project manager can view the member's details
such as their name, email, major and number of
projects they’ve joined.
▪ Once the project manager approves the request,
they can input additional attributes such as the
member's P1, P2 indicators which followed 3P
compensation consulting model.
▪ This information is combined with task report to
calculate the member's contribution to the project
and their payslip at the end of the cycle.
● Screen layout:

78 | Page
Figure 23:

● Function Details:
o Data explanation:
▪ The data entered by the project manager in the form
includes the P1, and P2 attributes of member.
▪ This data must be validated to ensure that it is
accurate and follows the business rules set by the
company.
▪ This data is intended to provide the system with the
necessary information combined with member
contribution to make a payslip at the end of the
cycle.
o Validation: The function includes validation to ensure that
the project manager has the appropriate permissions to
approve or reject request.
o Business rules:
▪ The project manager can approve or reject the
request.

79 | Page
▪ If the request is approved, the project manager can
view member detail information and enter some
attributes following 3P compensation consulting
model that will be combined with member
contribution to determine the payslip at the end of
the payment cycle.
o Functionalities:
▪ The function provides several functionalities,
including for project managers to review and
approve or deny members’ requests.
o Workflow:
▪ Member sending a request to the project manager

▪ The project manager receiving the request and


reviewing the member's details, and the project
manager approves or rejects the request. If the
request is approved, the project manager inputs the
required information.

3.3.12 Create a project milestone


● Function trigger: The create a project function is triggered when a
project manager needs to create a new milestone for a project.
● Function description:
o Actors/Roles: Project manager
o Purpose: Create a milestone for a project, which helps to
track the progress of the project.
o Interface: The interface involves a form or page where the
project manager can input the necessary information for
the milestone.
o Data processing: The project manager inputs the milestone
details such as the milestone name, description. This
information is used to set the information and expectation
requirements for the project members.
● Screen layout:

80 | Page
Figure 24:

● Function Details:
o Data explanation: The data required for this function
includes the milestone name and description which are
validated to ensure that it is accurate and follows the
business rules set by the company.
o Validation: The function validates the project ID to ensure
that it is a valid project ID in the database. The user has the
required role of project manager to create a milestone.
o Business rules:
▪ The project manager creates a new milestone.

▪ Members can view the milestone to track the


project progress.
o Functionalities:
▪ The functionality of this function allows for the
creation of multiple milestones for a project, and the
ability to view and track the progress of each
milestone. The project manager can also edit or
delete milestones as needed.

81 | Page
o Workflow:
▪ Project manager navigates to the project details
page.
▪ Project manager clicks on the "Kế hoạch" – project
milestone tab.
▪ Project manager creating a milestone for the
project, inputting the necessary information
▪ The project member can then the milestone
deliverables and tracking project progress.

3.4 Response change budget request of project manager

3.4.1 View request


● Function trigger: The response change budget request of project
manager function is triggered when the admin receives a request
from a project manager to change the budget of a project.
● Function description:
o Actors/Roles: admin
o Purpose: Allow the admin to review and approve or reject
the project manager's request to change the project budget.
o Interface: The interface involves a box where the admin
can review and respond to the request.
o Data processing: The admin reviews the project manager's
request and the current project budget. The admin then
validates the request to ensure that it is accurate and
follows the business rules set by the company. If the
request is approved, the admin will update the project
budget accordingly.
● Screen layout:

82 | Page
Figure 25:

● Function Details:
o Data explanation: The data required for this function
includes the number of point and reason which are
validated to ensure that it is accurate and follows the
business rules set by the company.
o Validation: The function validates the report ID to ensure
that it is a valid report ID in the database. The user has the
required role of admin to response change budget requests.
o Business rules:
▪ The admin can then approve or reject the request
based on the company's policies and procedures.
▪ If the request is approved, the admin will update the
project budget.
o Functionalities:
▪ The functionality of this function allows for the
admin to maintain control over the project budget

83 | Page
and ensure that all requests for changes are properly
reviewed and approved or rejected.
o Workflow:
▪ Admin navigates to the project report page.

▪ The project manager submits a request to change


the project budget
▪ The admin reviews the request and validates the
data, and then approving or rejecting the request.
3.4.2 Change project point budget
● Function trigger: This function is triggered when the admin
receives a request from the project manager to change the project
point budget for a specific project or the admin views the project
report and recognize the point in that project is not enough to pay
for members.
● Function description:
o Actors/Roles: admin
o Purpose: Allow the admin to change the project budget.
o Interface: The interface involves a form where the admin
can change the number of points in project budget.
o Data processing: When the admin fills the changing point
form, the system updates the project's point budget with
the proposed changes.
● Screen layout:

84 | Page
Figure 26:

● Function Details:
o Data explanation: The data required for this function
includes the number of points which are suitable for the
company fund.
o Validation: The function validates the report ID to ensure
that it is a valid report ID in the database. The user has the
required role of admin to change budget requests.
o Business rules:
▪ The admin can change project budget based on the
company's policies and procedures.
o Functionalities:
▪ The functionality of this function allows for the
admin to maintain control over the project budget.
▪ Display project details, current point budget, and
proposed changes by the project manager.

85 | Page
▪ Update the project's point budget with the approved
changes.
o Workflow:
▪ Admin navigates to the project report page.

▪ The project manager submits a request to change


the project budget
▪ The admin considers various factors such as the
project's current budget, available resources, and the
impact of the proposed change on other project-
related activities before changing the project
budget.
3.5 Get list of users

3.5.1 Search user


● Function trigger: This function can be triggered by admin. It is
accessed through the user interface by selecting the search user
option in the navigation menu.
● Function description:
o Actors/Roles: admin
o Purpose: The search user function allows admins to search
for users in the system based on various search criteria.
This function is useful when trying to find a specific user
or group of users with particular attributes.
o Interface:
▪ The user interface for this function consists of a
search bar where the admin can enter search criteria
such as name, email.
▪ The search results are displayed in a table format
with columns for name, email, level, role, and ID.
o Data processing:
▪ The search user function retrieves user data from
the system's database based on the search criteria
entered by the admin.
▪ The function then returns the search results in a
table format to be displayed in the user interface.

86 | Page
● Screen layout:

Figure 27:

● Function Details:
o Data explanation: The search user function retrieves user
data from the system's database based on the search
criteria entered by the admin. This data includes the user's
name, email, role, level, and ID.
o Validation: The search user function validates the search
criteria entered by the admin to ensure that they are in the
correct format and meet the system's requirements.
o Business rules:
▪ The search user function enforces certain business
rules such as only allowing admin to access the
function, and only allowing searches based on the
available search criteria.
o Functionalities:
▪ The search user function provides various
functionalities such as filtering search results,
sorting search results by different columns.
o Workflow:
▪ Admin navigates to the user management page.

▪ Admin enters search criteria into the search bar.

87 | Page
▪ The system retrieves user data based on the search
criteria, and displays the search results in a table
format.
▪ The admin or project manager can then filter and
sort the search results.
3.6 User management

3.6.1 Create a new admin


● Function trigger: This function is triggered by the system admin
through a dedicated form on the user management dashoard. It is
typically a process when there is a need for additional admin.
● Function description:
o Actors/Roles: admin
o Purpose: This function allows the system admin to create a
new admin account in the system. The system admin can
assign roles and permissions to the new admin account.
o Interface:
▪ The system admin can access the create new admin
function through the user management dashboard.
▪ The interface of the function is a form that requires
the input of necessary information such as the new
admin's name, email, password.
o Data processing:
▪ The function receives input data from the system
admin, processes the data, and stores it in the
system database.
▪ The function performs checks for duplicate emails
and passwords to ensure data integrity.
● Screen layout:

88 | Page
Figure 28:

● Function Details:
o Data explanation: The function validates the input data to
ensure that it is in the correct format and meets the
necessary requirements.
o Validation: The function checks for the correct email
format, password strength, and unique email and password
combinations.
o Business rules:
▪ The function follows the business rule that only the
system admin can create new admin accounts.
▪ The function also follows the rule that the new
admin must have a unique email and password
combination.
o Functionalities:
▪ The function allows the system admin to assign
roles and permissions to the new admin account.
▪ This ensures that the new admin has the necessary
access to perform their administrative tasks.
o Workflow:
▪ The system admin navigates to the create new
admin function on the user management dashboard.

89 | Page
▪ The admin enters the necessary information such as
the new admin's name, email, password,
▪ The system then processes the data, checks for data
integrity, and stores the new admin account in the
system database.
▪ The new admin can then log in to the system and
access the necessary administrative tools and
functions.

3.6.2 Choose a list of users


● Function trigger: This function is triggered when the admin needs
to select a group of users to perform an action. This can be
accessed through the user management.
● Function description:
o Actors/Roles: admin
o Purpose: The purpose of this function is to allow the admin
to select a group of users from the user database for
specific actions, such as delete.
o Interface:
▪ The interface for this function will display the list of
all users with checkboxes beside each user's name.
▪ The admin can select the desired users by checking
the boxes.
o Data processing:
▪ Once the admin selects the users, the data is
processed to perform the required action.
● Screen layout:

90 | Page
Figure 29:

● Function Details:
o Data explanation: Select the list of all users with
checkboxes beside each user's name. By ticking the boxes,
the administrator can choose the desired users.
o Validation: The system will validate the admin's authority
to perform the action and ensure that only system users are
listed for selection.
o Business rules:
▪ The business rules for this function include
ensuring the privacy and security of user data, and
allowing only system users to be selected.
o Functionalities:
▪ The main functionality of this function is to allow
the admin to select a group of users for a specific
action.
o Workflow:
▪ The admin accesses the dashboard and navigates to
the user management dashboard.
▪ The system displays a list of all system users with
checkboxes beside each user's name.

91 | Page
▪ The admin selects the desired users by checking the
boxes.
▪ The system processes the selected data to perform
the required action, such as delete.
3.6.3 Delete user(s)
● Function trigger: This function can be triggered by the admin
from the user management section. The function can be accessed
through a navigation path that leads to the user management
section, and then selecting the user(s) to be deleted. There is no
specific timing frequency for this function, as it can be performed
as needed
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow the admin
to select a group of users from the user database for
delete.
▪ The admin has the role of managing the user
accounts and ensuring that access to the system is
controlled appropriately.
o Interface:
▪ The interface for this function will display the list of
all users with checkboxes beside each user's name.
▪ The admin can select the desired users by checking
the boxes and then choose delete button.
▪ Moreover, the user interface for this function
typically includes a list of users and a button or link
to delete a selected user. The admin can select the
user they wish to delete and confirm the action
before the user's status is changed to "disabled".
o Data processing:
▪ The function receives data from the user
management section, specifically the user account
to be deleted. The system then processes this data
by changing the user's status to "disabled" in the
user account database. This action removes the

92 | Page
user's access to the system. The system also updates
the user's record in the user account database to
reflect the change in status.
● Screen layout:

Figure 30:

● Function Details:
o Data explanation: Select the list of all users with
checkboxes beside each user's name to delete or choose the
link next to user information column to delete a selected
user.
o Validation: The system will validate the admin's authority
to perform the action and ensure that only system users are
deleted.
o Business rules:
▪ The business rules for this function include
ensuring the privacy and security of user data, and
allowing only system users to be delete.
▪ This function must adhere to the business rules of
the system, which include data privacy and security
policies.
o Functionalities:

93 | Page
▪ The main functionality of this function is to allow
the admin to delete a group of users or a specific
user.
▪ This function enables the admin to disable a user's
access to the system.
▪ The function allows the admin to select the user
they wish to delete and confirm the action before
the user's status is changed to "disabled".
▪ The function also updates the user's record in the
user account database to reflect the change in status.
▪ Additionally, the system prompts the admin to
confirm the action before disabling the user's
account.
o Workflow:
▪ The admin accesses the dashboard and navigates to
the user management dashboard.
▪ The system displays a list of all system users with
checkboxes beside each user's name.
▪ The admin selects the desired users by checking the
boxes.
▪ The system processes the selected data to perform
the required delete.
▪ Additionally, admin can delete by clicking button or
link next to user information to delete a selected
user.
▪ The admin confirms the action, and the system
changes the user's status to "disabled", which
removes their access to the system.
▪ The user's record in the user account database is
updated to reflect the change in status.
▪ If needed, the admin can later change the user's
status back to "active" to restore their access to the
system.

94 | Page
3.6.3 View the benefit specifics for each level
● Function trigger: This function is triggered when a user navigates
to the edit section of the title beside the user management page to
view the benefits specifics for each level of member.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow the admin
to manage compensation and benefit for each
member level in the system.
▪ The admin has the role of managing the
compensation and benefit for member.
o Interface:
▪ The interface for this function will display the list of
all level with specific benefits.
o Data processing:
▪ The function receives data from the user
management section, the data for this function is
stored in a database and is accessed through the
user's profile.
▪ When the admin selects the option to view the
benefit specifics for each level of member, the
system retrieves the relevant data from the database
and displays it on the screen.
● Screen layout:

95 | Page
Figure 31:

● Function Details:
o Data explanation: The list of all level with compensation
and benefit.
o Validation: The user has the required role of admin to view
the benefits for each level.
o Business rules:
▪ The business rules for this function include
ensuring that the benefits specifics are up-to-date
and accurate, and that admin are informed of any
changes or updates to the benefits package.
▪ Additionally, the function ensures that admin is able
to make informed decisions based on the benefits
that are available at each level of membership.
o Functionalities:
▪ The main functionality of this function is to display
the specific benefits that are associated with each
level of membership within the organization.
▪ Admin are able to view this information at any
time, and the system ensures that the information is
accurate and up-to-date.

96 | Page
▪ Additionally, the function ensures that admin is able
to make informed decisions about member
compensation and benefit based on the benefits that
are available at each level.
o Workflow:
▪ The admin navigates to the benefit section of the
title beside the user management page to view the
benefits specifics for each level of member.
▪ The admin selects the option to view the benefit
specifics for each level of member.
▪ The system retrieves the relevant data from the
database and displays it on the screen.
▪ The admin reviews the benefit specifics for each
level of member and makes an informed decision
about the compensation and benefit model.
3.6.4 Configure the benefit specifics for each level
● Function trigger: The function is triggered by the admin, who has
access to the system and can modify the details of each level of
member.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to configure the
benefit specifics for each level of member,
including changing the level name, point base,
reward to level up, minimum working hours,
maximum working hours, and XP needed to move
to that level.
▪ The admin has the role of managing the
compensation and benefit for member.
o Interface:
▪ The interface for this function will display the list of
specific benefits for admin to edit as a form.
o Data processing:

97 | Page
▪ The system stores the details of each level of
member and the changes made by the admin.
▪ When a member reaches a certain level, they are
awarded the benefits associated with that level.
● Screen layout:

Figure 32:

● Function Details:
o Data explanation: The function allows the admin to modify
the following details for each level of member:
▪ Level name: The name of the level can be changed
to better reflect the benefits associated with that
level.
▪ Point base: The base benefit of each level can be
changed to increase or decrease the benefits
associated with that level.
▪ Reward to level up: The reward points required to
level up can be changed to make it easier or more
difficult for members to move to the next level.
▪ Minimum/Maximum working hours: The minimum
and maximum working hours required to member at
a particular level can be changed.

98 | Page
▪ XP needed to move to the next level: The amount of
XP needed to move to the next level can be adjusted
to make it easier or more challenging for members
to advance.
o Validation:
▪ The system ensures that only the admin can access
the configuration compensation and benefits for
each level of member.
▪ Additionally, the system verifies that changes made
to the benefit specifics are valid and do not violate
any rules or constraints.
o Business rules:
▪ Only the admin can configure the benefit specifics
for each level of membership.
▪ Changes made to the benefit specifics must be valid
and not violate any system rules or constraints.
▪ Benefits associated with each level of membership
must be fair and reasonable.
o Functionalities:
▪ Ability to change the level name, point base, reward
to level up, minimum/maximum working hours, and
XP needed to move to the next level.
▪ Ability to validate changes made to the benefit
specifics.
o Workflow:
▪ The admin navigates to the edit section of the title
beside the user management page to view the
benefits specifics for each level of member.
▪ From there, they access the configuration panel for
each level of membership.
▪ The admin makes necessary changes to the benefit
specifics for each level of member.
▪ The system verifies that changes made to the
benefit specifics are valid and do not violate any
system rules or constraints.

99 | Page
▪ If changes are valid, the system updates the benefit
specifics for each level of member.
3.6.5 View user information
● Function trigger: This function is triggered when an admin wants
to view the detailed information of a particular user.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to provide relevant
information about a user, including their name,
email, role, level, XP needed to move to the next
level, joined projects, the number of projects they
have joined, and the number of projects they have
managed.
o Interface:
▪ The interface for this function consists of a user
interface that allows admin to search for and select
a user from the system.
▪ The interface also displays detailed information
about the selected user, such as their name, email,
role, level, XP needed to move to the next level,
joined projects, the number of projects they have
joined, and the number of projects they have
managed.
o Data processing:
▪ The view user information function retrieves user
data from the system's database and displays it in
the user interface.
▪ The function does not modify or delete any user
data.
● Screen layout:

100 | Page
Figure 33:

● Function Details:
o Data explanation: The data displayed in the user interface
includes the user's name, email, role, level, XP needed to
move to the next level, joined projects, the number of
projects they have joined, and the number of projects they
have managed.
o Validation:
▪ The system ensures that only the admin can access
the details for user.
o Business rules:
▪ Only the admin can view the details of each user.

▪ The function follows the business rules of the


system, including data privacy and security
regulations.
o Functionalities:
▪ The function provides admin with the ability to
view detailed information about a user.
o Workflow:
▪ The admin navigates the user management page.

▪ Admin searches for the user they want to view.

101 | Page
▪ Once the user is selected, the user information is
displayed on the screen.
3.6.6 Input project member attribute
● Function trigger: This function is triggered when the project
manager needs to input the project member attributes, including
P1 and P2 indicators, to calculate their contribution and payslip at
the end of the cycle. The trigger path is accessible when a project
manager approves a member to join their project. It is a one-time
action that occurs at the beginning of a project cycle.
● Function description:
o Actors/Roles: project manager
o Purpose:
▪ The purpose of this function is to input the
member's P1 and P2 indicators, which are used to
calculate their contribution to the project and their
payslip at the end of the cycle.
o Interface:
▪ The interface for this function consists of a user
interface that has 3 tabs; personal information, P1
attribute indicator, P2 attribute indicator.
▪ The interface for this function includes a form that
the project manager fills out with members’
personal and professional information, such as their
educational background, language skills, and soft
skills. The project manager approves the member's
request to join the project and inputs the member's
P1 indicator, which is their position or level within
the organization.
o Data processing:
▪ The data processing for this function includes
taking the input from the project manager and
combining it with task reports to calculate the
member's contribution to the project and their
payslip at the end of the cycle.
● Screen layout:

102 | Page
Figure 34:

● Function Details:
o Data explanation: The data inputted by the member must
be validated to ensure that it is accurate and up-to-date.
The P1 indicator must also be validated to ensure that it is
consistent with the member's position or level within the
organization. The P2 indicator, which includes the
member's personal attributes such as their creativity,
leadership skills, and positive attitude, is also used in this
calculation.
o Validation:
▪ The system ensures that only the project manager
can input the details for member.
o Business rules:
▪ Only the project manager can input the details of
each member.
▪ The P1 and P2 indicators must follow the 3P
compensation consulting model to ensure that the

103 | Page
member's contribution to the project and payslip are
fair and equitable.
▪ The member's information must also be kept
confidential and secure.
o Functionalities:
▪ The member's contribution to the project and their
payslip are calculated based on their P1 and P2
indicators, as well as their performance on the
project tasks. This information is used to determine
the member's level of compensation and any
bonuses they may receive.
o Workflow:
▪ The project manager approves the member's request
to join the project and inputs their P1, P2 indicator.
▪ The member's information is combined with the
project task report to calculate their contribution to
the project and their payslip.
3.6.7 Edit project member attribute
● Function trigger: This function is triggered when a project
manager wants to update the P1 and P2 indicators for a project
member.
● Function description:
o Actors/Roles: project manager
o Purpose:
▪ The purpose of this function is to update the P1 and
P2 indicators for a project member, which are used
to calculate the member's contribution to the project
and their payslip at the end of the cycle.
o Interface:
▪ The project manager accesses the function through
the project management dashboard, where they can
select the project member and update their P1 and
P2 indicators.
o Data processing:

104 | Page
▪ The updated P1 and P2 indicators are stored in the
system's database and used in the calculation of the
member's contribution and payslip.
● Screen layout:

Figure 35:

● Function Details:
o Data explanation: The function allows the project manager
to update the P1 and P2 indicators for a project member.
P1 is information about the member's position or level,
while P2 is information about the member's personal
attributes, such as hard skills (graduated or not, foreign
language certification) and soft skills (creativity,
leadership, teamwork, positive attitude).
o Validation:
▪ The system ensures that only the project manager
can edit the details for member.
▪ The system checks that the updated P1 and P2
indicators are valid and within the acceptable range.
o Business rules:

105 | Page
▪ Only the project manager can input the details of
each member.
▪ The P1 and P2 indicators must follow the 3P
compensation consulting model to ensure that the
member's contribution to the project and payslip are
fair and equitable.
▪ The member's information must also be kept
confidential and secure.
▪ The P1 and P2 indicators are used to calculate the
member's contribution to the project and their
payslip, so it is important that they accurately
reflect the member's abilities and performance.
o Functionalities:
▪ The function allows the project manager to select
the project member and update their P1 and P2
indicators.
o Workflow:
▪ The project manager accesses the project detail
page.
▪ The project manager selects the project member
they want to update.
▪ The project manager updates the P1 and P2
indicators for the selected project member.
▪ The system checks that the updated P1 and P2
indicators are valid.
▪ The updated P1 and P2 indicators are stored in the
system's database.
▪ The updated P1 and P2 indicators are used in the
calculation of the member's contribution and
payslip.
3.6.8 View member payslip
● Function trigger: This function is triggered when a user with the
role of project manager, admin, or the member themselves
accesses the payslip section of the platform.

106 | Page
● Function description:
o Actors/Roles: project manager, admin, member
o Purpose:
▪ The purpose of this function is to allow authorized
users to view the payslip information of a member.
The payslip information includes member name,
email, salary cycle name, start date and end date of
the cycle, total point and point by detail for each
attribute of 3P compensation consulting, total
gained XP, and payslip status.
o Interface:
▪ The interface presents this information in a clear
and organized manner for easy comprehension.
o Data processing:
▪ Retrieve payslip information from the database

▪ Format and present the information in a clear and


organized manner for the user to view.
● Screen layout:

107 | Page
Figure 36:

● Function Details:
o Data explanation: The function allows the project
manager, admin and member to view the payslip.
o The payslip section can be done through the main
navigation menu or from a member's profile page or from
a payslip tab in project detail page.
o Validation: To ensure that the user has the necessary role
or ownership of the payslip to view it.
o Business rules:
▪ Only authorized users can view payslip information,
and that the information presented is accurate and
up-to-date.
▪ The member's information must also be kept
confidential and secure.
o Functionalities:
▪ The function allows the project manager, admin and
member to view the project member payslip.
o Workflow:
▪ The project manager and admin access the project
detail page, choose payslip tab.
▪ The member goes to profile and selects the specific
payslip.
3.7 Sponsor management

3.7.1 View list of sponsors


● Function trigger: This function can be triggered by admin. The
function can be accessed through the left navigation menu in the
user interface.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to view a list of
sponsors who have contributed to the project.

108 | Page
▪ The list includes information about the sponsor
such as their name, email, type of sponsor, total
point they have sponsored, and the last time they
sponsored.
▪ The purpose of this function is to allow users to
keep track of the contributions made by sponsors
and their history of involvement with the project.
o Interface:
▪ Navigation menu to access the function

▪ A table displaying sponsor information including


their name, email, type of sponsor, total point they
have sponsored, and the last time they sponsored.
o Data processing:
▪ The function retrieves the list of sponsors from the
database and displays it in a table format.
▪ The function may include filters to allow admin to
search or sort the list of sponsors based on certain
criteria such as sponsor type or total points
sponsored.
● Screen layout:

Figure 37:

109 | Page
● Function Details:
o Data explanation: The function allows admin to view the
list of sponsors with their basic information: their name,
email, type of sponsor, total point they have sponsored,
and the last time they sponsored.
o Validation:
▪ The function ensures that the information displayed
in the table is accurate and up-to-date.
▪ Any updates to sponsor information should be
reflected in real-time.
o Business rules:
▪ Only the admin can view the list of sponsors.

▪ The function follows business rules related to data


privacy and security.
▪ Access to the function is restricted to authenticated
users with appropriate access rights.
o Functionalities:
▪ The function allows admin to view sponsor
information in a table format.
▪ The table may include filters or sorting options to
help admin navigate and find specific information.
o Workflow:
▪ The admin accesses the function through the
navigation menu and is presented with a table of
sponsor information.
▪ The admin can then navigate through the table and
sort or filter the data as needed.
▪ The admin can also click on a sponsor's name or
email to view more detailed information about that
sponsor.
3.7.2 Create a new sponsor
● Function trigger: This function is triggered when admin wants to
create a new sponsor account. The trigger can be either through a
navigation path or a direct link in sponsor management page.

110 | Page
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow the creation
of new sponsor in the system, which will enable the
management of sponsorships and the tracking of
sponsor point contributions.
o Interface: The interface of the function includes input
fields for the following information:
▪ Sponsor name

▪ Sponsor email

▪ Type of sponsor

▪ Total point sponsored.


o Data processing:
▪ Upon submission of the sponsor information, the
system will validate the data to ensure that all
required fields are filled in and that the email
provided is unique. The system will then store the
sponsor information in the database and generate a
unique sponsor ID.
● Screen layout:

111 | Page
Figure 38:

● Function Details:
o Data explanation: The function allows admin to create a
sponsor with information: name, email, type of sponsor,
total point funding.
o Validation: The function allows admin to create a sponsor
with information:
▪ Name: This field is required and must be a string of
characters. Maximum length is 50 characters.
▪ Email: This field is required and must be a valid
email address format (e.g. [email protected]).
Maximum length is 255 characters.
▪ Type of sponsor: This field is required and must be
selected from a predefined list of sponsorship types
(e.g. organization, personal, company).
▪ Total point they sponsor: This field is required and
must be a positive integer.
o Business rules:
▪ A sponsor must have a unique email address in the
system.
▪ The total point they sponsor must be greater than or
equal to zero.
▪ A sponsor can be created by admin only.
o Functionalities:
▪ Input fields for sponsor name, email, type of
sponsor, and total point sponsored
▪ Validation of input data

▪ Storage of sponsor information in the system


database
▪ Generation of a unique sponsor ID.
o Workflow:
▪ The admin navigates to the "create sponsor" page.

▪ The admin fills out the required fields in the form.

112 | Page
▪ The system validates the input data and displays
error messages if any fields are invalid. I
▪ f the input data is valid, the system creates a new
sponsor in the database with the provided
information. The system displays a success message
to the user and redirects them to the list of sponsor
page.
3.7.3 View sponsor profile
● Function trigger: This function can be triggered admin by
navigating to the sponsor's profile page.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow admins to
view a specific sponsor's profile information, such
as the sponsor's total points, joined date, and last
sponsor time.
o Interface: The interface for this function is a view page
that displays the sponsor's information:
▪ Sponsor name

▪ Sponsor email

▪ Type of sponsor

▪ Total point sponsored.

▪ Joined date

▪ Last sponsor time.


o Data processing:
▪ When the view sponsor profile function is triggered,
it retrieves the sponsor's profile information from
the database and displays it in the view page.
▪ The function does not modify any data and only
displays the information that is already stored in the
database.
● Screen layout:

113 | Page
Figure 39:

● Function Details:
o Data explanation: The sponsor profile includes the
following information:
▪ Name: the name of the sponsor.

▪ Email: the email address of the sponsor.

▪ Type of sponsor: the type of sponsor, such as


individual or corporate.
▪ Total point they sponsor: the total number of points
that the sponsor has contributed to the project.
▪ Joined date: the date the sponsor joined the system.

▪ Last sponsor time: the date and time of the


sponsor's most recent contribution to the project.
o Validation:
▪ The function validates that only admin has
permission to access sponsor profile.
▪ It also checks that the sponsor exists in the database
before retrieving their profile information.
o Business rules:

114 | Page
▪ Only admins can view sponsor profiles.

▪ The sponsor must exist in the database before their


profile information can be displayed.
o Functionalities:
▪ The functionality of this function is to display a
specific sponsor's profile information
▪ The information displayed includes the sponsor's
name, email, type of sponsor, total point they
sponsor, joined date, and last sponsor time.
o Workflow:
▪ The admin selects a sponsor from the list of
sponsors or clicks on the sponsor's name in the
sponsor dashboard.
▪ The view sponsor profile function is triggered, and
it retrieves the sponsor's profile information from
the database.
▪ The function displays the sponsor's information

▪ The admin can view the sponsor's information and


navigate back to the sponsor list or dashboard as
needed.
3.7.4 View sponsor project
● Function trigger: This function can be triggered by an admin
through the sponsor profile page.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow the admin
to view the projects sponsored by a specific
sponsor.
o Interface:
▪ The admin can access the function through the
sponsor profile

115 | Page
▪ Admin choose “Dự án tài trợ” – sponsor project
link on the left menu.
▪ The results are displayed in a table format that
includes the project name, abbreviation, total points
sponsored, and time sponsored.
o Data processing:
▪ The function retrieves data from the database based
on the sponsor's name or email.
▪ The function then displays the relevant data in a
table format.
● Screen layout:

Figure 40:

● Function Details:
o Data explanation: The project sponsor includes the
following information:
▪ Name: the name of the sponsor.

▪ Project name

▪ Project abbreviation

116 | Page
▪ Time sponsored: date and time of the sponsor's
most recent contribution to the project
▪ Total point they sponsor: the total number of points
that the sponsor has contributed to the project.
▪ Joined date: the date the sponsor joined the system.
o Validation:
▪ The function validates that only admin has
permission to access sponsor profile.
▪ The function can only retrieve data for sponsors that
exist in the database.
o Business rules:
▪ Only admins can view sponsor profiles.

▪ The sponsor must exist in the database before their


profile information can be displayed.
o Functionalities:
▪ Allows admin to view the projects sponsored by a
specific sponsor.
▪ Displays the results in a table format for easy
viewing.
o Workflow:
▪ The admin selects a sponsor from the list of
sponsors or clicks on the sponsor's name in the
sponsor
▪ In sponsor profile, the admin chooses “Dự án tài
trợ” – sponsor project link on the left menu
▪ The function retrieves the relevant data from the
database.
▪ The function displays the data in a table format on
the screen.
▪ The admin can view the data and take any necessary
actions based on the results.

117 | Page
3.7.5 View sponsor transaction
● Function trigger: This function is triggered by an admin accessing
the sponsor transactions page and selecting a specific sponsor to
view their transaction history.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow the admin
to view the sponsor transaction.
o Interface:
▪ The admin can access the function through the
sponsor profile
▪ Admin chooses “Lịch sử tài trợ” – sponsor
transaction link on the left menu.
▪ The results are displayed in a table with columns for
ID, project name, abbreviation name, total points
sponsored, and time of sponsorship.
o Data processing:
▪ The function retrieves data from the database based
on the sponsor's name or email.
▪ The function accesses the database to retrieve the
transaction history for the selected sponsor. The
data is then displayed in a table on the sponsor
transactions" page.
▪ The function then displays the relevant data in a
table format
● Screen layout:

118 | Page
Figure 41:

● Function Details:
o Data explanation: The sponsor transaction includes the
following information:
▪ Transaction ID

▪ Project name

▪ Project abbreviation

▪ Time sponsored: date and time of the sponsor's


most recent contribution to the project
▪ Total point they sponsor: the total number of points
that the sponsor has contributed to the project.
o Validation:
▪ The function validates that the user accessing the
page has the admin role.
▪ It also ensures that the sponsor selected is valid and
has transaction history to display.
o Business rules:

119 | Page
▪ This function follows the business rule that only
admins are allowed to view the transaction history
of sponsors.
▪ The sponsor must exist in the database before their
profile information can be displayed.
o Functionalities:
▪ The main functionality of this function is to display
the transaction history of a specific sponsor in a
table format.
▪ It allows the admin to quickly view the sponsor's
transaction history and monitor their activity on the
platform.
o Workflow:
▪ The admin selects a sponsor from the list of
sponsors or clicks on the sponsor's name in the
sponsor
▪ In sponsor profile, the admin chooses “Lịch sử tài
trợ” – sponsor transaction link on the left menu
▪ Admin navigates to the "Sponsor Transactions"
page.
▪ The function accesses the database to retrieve the
transaction history for the selected sponsor.
▪ The data is displayed in a table on the "sponsor
transactions" page.
▪ Admin can review the transaction

3.7.6 Add new sponsor transaction


● Function trigger: This function can be triggered by admin. The
admin can access this function by navigating to the "sponsor
transactions" section and selecting the "add new transaction".
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow the admin
to add new sponsor transaction.
120 | Page
o Interface:
▪ The admin can access the function through the
sponsor profile
▪ Admin chooses “Lịch sử tài trợ” – sponsor
transaction link on the left menu.
▪ The admin chooses add new sponsor transaction
and input required information such as project
name, total points sponsored
o Data processing: When the admin submits the form with
the required information, the system will perform the
following data processing tasks:
▪ Validate the input data to ensure that it meets the
necessary requirements.
▪ Add the new sponsor transaction to the system,
including the project name and the total point
sponsor.
● Screen layout:

Figure 42:

121 | Page
● Function Details:
o Data explanation: The sponsor transaction requires the
following information:
▪ Name of Project (text input field): This field is used
to input the name of the project that the sponsor
transaction is for.
▪ Total Point Sponsor (numeric input field): This
field is used to input the total number of points that
the sponsor is sponsoring for the project.
o Validation:
▪ The function validates that the user accessing the
page has the admin role.
▪ It also ensures that the sponsor selected is valid

▪ Ensure that the name of the project is not empty and


does not exceed the maximum length.
▪ Ensure that the total point sponsor is a positive
number and does not exceed the maximum limit.
o Business rules:
▪ An admin can only add new sponsor transactions to
the system.
▪ A sponsor transaction must be associated with a
project and have a total point sponsor.
o Functionalities:
▪ Allows an admin to add new sponsor transactions to
the system.
▪ Provides validation checks to ensure that the input
data is correct.
▪ Ensures that only admin can access the function.
o Workflow:
▪ The admin selects a sponsor from the list of
sponsors or clicks on the sponsor's name in the
sponsor

122 | Page
▪ In sponsor profile, the admin chooses “Lịch sử tài
trợ” – sponsor transaction link on the left menu
▪ In the sponsor transactions page, admin chooses
“thêm tài trợ mới” link.
▪ The system displays the input form for the new
sponsor transaction.
▪ The admin enters the name of the project and the
total point sponsor in the respective fields.
▪ The admin submits the form.

▪ The system validates the input data and adds the


new sponsor transaction to the system.
▪ The admin is notified that the transaction has been
successfully added.
3.8 Cycle management

3.8.1 View list of cycles


● Function trigger: This function is triggered when the admin
accesses the left navigation menu to view the list of cycles.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ This function allows the admin to view the list of all
salary cycles.
o Interface:
▪ The interface includes a table with columns
displaying the name of the salary cycle, start date,
created date, end date, status, and an edit button.
o Data processing: The function retrieves the list of salary
cycles from the database and displays them in a table.
● Screen layout:

123 | Page
Figure 43:

● Function Details:
o Data explanation: The data displayed in the table includes
the name of the salary cycle, start date, created date, end
date, and status. The start date and end date are formatted
in date format (dd/mm/yyyy). The status indicates whether
the salary cycle is start, pending, review, close.
o Validation:
▪ The function validates that the user accessing the
page has the admin role.
o Business rules:
▪ The function only displays the list of salary cycles
for the admin.
o Functionalities:
▪ The admin can view the list of salary cycles and
click on the edit button to edit the salary cycle
details.
o Workflow:

124 | Page
▪ The admin accesses the navigation menu to view
the list of salary cycles.
▪ The function retrieves the list of salary cycles from
the database.
▪ The function displays the list of salary cycles in a
table with columns displaying the name of the
salary cycle, start date, created date, end date,
status, and an edit button.
▪ The admin can view the details of the salary cycle
and click on the edit button to edit the salary cycle
details.
3.8.2 Create a new cycle
● Function trigger: This function is triggered by an admin who has
the permission to create new salary cycles. The function can be
accessed via the create button on the cycle dashboard. It can be
triggered at any time when a new salary cycle needs to be created.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ This function allows an admin to create a new
salary cycle.
▪ The admin needs to provide the name of the cycle,
and the start date for the cycle.
▪ The status of the cycle is set to "start" by default.

▪ The created date of the cycle is automatically set to


the current date.
o Interface: The interface for this function includes a form
where the admin can enter the details of the new salary
cycle. The form contains the following fields:
▪ Name of the cycle: A text field where the admin can
enter the name of the new salary cycle.
▪ Start date: A date picker where the admin can select
the start date for the new salary cycle.

125 | Page
▪ Status: A read-only field that displays the default
value of "start".
▪ Submit button: A button that submits the form to
create the new salary cycle.
o Data processing: When the admin submits the form, the
input values are validated to ensure that the name of the
cycle is in the correct format and that the start date is not
in the past. If the input values are valid, a new record is
created in the database for the new salary cycle. The
created date is automatically set to the current date. The
status of the cycle is set to "start" by default. If the input
values are not valid, an error message is displayed to the
admin.
● Screen layout:

Figure 44:

● Function Details:
o Data explanation:

126 | Page
▪ When the admin submits the form, the input values
are validated to ensure that the name of the cycle is
in the correct format and that the start date is not in
the past.
▪ If the input values are valid, a new record is created
in the database for the new salary cycle.
▪ The created date is automatically set to the current
date. The status of the cycle is set to "start" by
default.
▪ If the input values are not valid, an error message is
displayed to the admin.
o Validation:
▪ The function validates that the user accessing the
page has the admin role.
▪ The start date should not be in the past.
o Business rules:
▪ The function only displays the list of salary cycles
for the admin.
▪ Each salary cycle must have a unique name.

▪ The start date of a new salary cycle cannot overlap


with the end date of an existing salary cycle.
o Functionalities:
▪ Validate input values before creating a new salary
cycle.
▪ Automatically set the created date of the new salary
cycle to the current date.
▪ Set the status of the new salary cycle to "start" by
default.
o Workflow:
▪ The admin accesses the navigation menu to view
the list of salary cycles.
▪ Admin click on create a new cycle function.

127 | Page
▪ The admin fills out the form with the name and start
date for the new salary cycle.
▪ The input values are validated to ensure that they
are in the correct format and that the start date is not
in the past.
▪ If the input values are valid, a new record is created
in the database for the new salary cycle with the
created date set to the current date and the status set
to "start" by default.
▪ The admin can view the newly created salary cycle
in the list of salary cycles
3.8.3 View cycle detail
● Function trigger: This function is triggered when an admin selects
a specific salary cycle from the list of salary cycles.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to provide the admin
with an overview of the selected salary cycle,
including its current status, start dates, and other
relevant information.
o Interface: The interface of this function consists of a page
with the details of the selected salary cycle. The
information is displayed in a structured format that is easy
for the admin to read and understand.
o Data processing: The function retrieves the details of the
selected salary cycle from the database and displays them
on the user interface. It also allows the admin to change
the status of the salary cycle to the next status.
● Screen layout:

128 | Page
Figure 45:

● Function Details:
o Data explanation:
▪ Name of the cycle: This field displays the name of
the selected salary cycle.
▪ Start date: This field displays the start date of the
selected salary cycle.
▪ Created date: This field displays the date when the
salary cycle was created.
▪ Status: This field displays the current status of the
salary cycle
▪ Change status button: This button allows the admin
to change the status of the salary cycle to the next
status.
o Validation:

129 | Page
▪ The function ensures that only admins can access
this function. It also validates the input parameters
to ensure that the data is correct and consistent with
the expected format.
o Business rules:
▪ The function only triggers by the admin.

▪ The function follows the business rules related to


salary cycles, such as the duration of the cycle and
the approval process.
o Functionalities:
▪ The function allows the admin to view the details of
a specific salary cycle and change its status to the
next status.
o Workflow:
▪ The admin selects a specific salary cycle from the
list of salary cycles.
▪ The function retrieves the details of the selected
salary cycle from the database and displays them on
the user interface.
▪ The admin reviews the details of the salary cycle.

3.8.4 Change cycle status


● Function trigger: This function is triggered by an admin who
wants to change the status of a salary cycle to the next status. It
can be triggered by clicking the "change status" button on the
view salary cycle detail page.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to manage the salary
cycle status and ensure that it is updated to the
correct status at the appropriate time.
o Interface: The interface for this function includes a button
labelled "change status" on the view salary cycle detail
page. When the admin clicks the button, the status of the
salary cycle is changed to the next status.
130 | Page
o Data processing: The data processing for this function
involves updating the status of the salary cycle in the
database. When the admin clicks the "change status"
button, the system checks if the current status is eligible
for status change. If it is eligible, the system updates the
status to the next status in the predefined order.
● Screen layout:

Figure 46:

● Function Details:
o Data explanation:
▪ Name of the cycle: This field displays the name of
the selected salary cycle.
▪ Start date: This field displays the start date of the
selected salary cycle.
▪ Created date: This field displays the date when the
salary cycle was created.

131 | Page
▪ Status: This field displays the current status of the
salary cycle
▪ Change status button: This button allows the admin
to change the status of the salary cycle to the next
status.
o Validation:
▪ The system validates the current status of the salary
cycle to ensure that it is eligible for status change.
▪ The system checks if the current status is in the
predefined order and can be changed to the next
status.
o Business rules:
▪ The status of the salary cycle can only be changed
to the next status in the predefined order.
▪ Only admin can change the status of the salary
cycle.
▪ The current status of the salary cycle must be
eligible for status change.
o Functionalities:
▪ Allows the admin to change the status of a salary
cycle to the next status.
▪ Validates the current status of the salary cycle to
ensure that it is eligible for status change.
o Workflow:
▪ The admin navigates to the view salary cycle detail
page.
▪ The admin clicks the "change status" button. The
system validates the current status of the salary
cycle.
▪ If the current status is eligible for status change, the
system updates the status to the next status in the
predefined order.
▪ The system tracks and records the status change for
future reference.

132 | Page
▪ The system displays the updated salary cycle status
on the view salary cycle detail page.
3.8.5 End cycle
● Function trigger: This function can be triggered by an admin
through the web application interface when they want to end a
salary cycle (reviewed all reports submitted by project managers).
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to end a salary cycle
and automatically calculate and pay benefits to
members based on their contribution to the cycle.
o Interface: The interface for this function includes a button
labelled "end cycle" on the view salary cycle detail page.
When the admin clicks the button, the status of the salary
cycle is changed to the end.
o Data processing: When the admin initiates the end of a
salary cycle, the system will perform the following
actions:
▪ Calculate the benefits for each member who has
contributed to the cycle.
▪ Update the status of the salary cycle to "end."

▪ Transfer the calculated benefits - point to each


member's wallet automatically.
● Screen layout:

133 | Page
Figure 47:

● Function Details:
o Data explanation:
▪ Name of the cycle: This field displays the name of
the selected salary cycle.
▪ Start date: This field displays the start date of the
selected salary cycle.
▪ Created date: This field displays the date when the
salary cycle was created.
▪ Status: This field displays the current status of the
salary cycle
▪ Change status button: This button allows the admin
to change the status of the salary cycle to the next
status.

134 | Page
o Validation:
▪ Only an admin can initiate this function.

▪ The salary cycle must have a status of "review" to


be eligible for this function.
▪ Al reports must have reviewed before cycle can be
ended.
o Business rules:
▪ The system will automatically calculate the benefits
for each member based on their contribution to the
cycle.
▪ The benefits will be transferred to each member's
account automatically.
o Functionalities:
▪ The function includes a button that initiates the end
of the cycle.
▪ The system automatically calculates the benefits for
each member based on their contribution to the
cycle.
▪ The benefits are transferred to each member's wallet
automatically.
▪ The status of the salary cycle is updated to "end.".
o Workflow:
▪ An admin logs into the web application and
navigates to the salary cycle management page.
▪ The admin selects the salary cycle that they want to
end.
▪ The system checks the eligibility of the salary cycle
for the end process.
▪ The admin initiates the end process by clicking the
end cycle button.
▪ The system automatically calculates and transfers
the benefits to each member's account.

135 | Page
▪ The system updates the status of the salary cycle to
"end.".

3.9 Report management

3.9.1 View list of report


● Function trigger: This function can be triggered by clicking on the
"reports" menu item. It can be accessed at any time and has no
specific timing frequency.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to display a list of
reports submitted by project managers for the
current salary cycle.
o Interface:
▪ The interface of this function is a table with
columns for project name, report name, total point,
P1 point, P2 point, P3 point, and report status.
▪ The table also displays a count of the number of
reports reviewed and not reviewed.
o Data processing: This function retrieves data from the
database for all reports submitted by project managers for
the current salary cycle. It then processes the data to
calculate the total point and the P1, P2, and P3 point for
each report. The function also checks the status of each
report to determine if it is pending or reviewed.
● Screen layout:

136 | Page
Figure 48:

● Function Details:
o Data explanation:
▪ Name of the project: This field displays the name of
the project which is developed in current cycle.
▪ Start date: This field displays the start date of the
selected salary cycle.
▪ Total point

▪ Total point for P1, P2, P3 attribute

▪ Status of the report


o Validation:
▪ This function validates the data retrieved from the
database to ensure that it is accurate and up-to-date.
It also checks the status of each report to ensure that
it is either pending or reviewed.
o Business rules:
▪ The business rules for this function include
ensuring that only admins have access to this

137 | Page
function, and that the data displayed is only for the
current salary cycle.
▪ The function also enforces a validation process to
ensure the accuracy of the data.
o Functionalities:
▪ The functionality of this function includes the
ability to sort and search the table by project name
or report name. It also displays a count of the
number of reports reviewed and not reviewed.
o Workflow:
▪ Admin navigates to the "List of Reports" page.

▪ Function retrieves data from the database for all


reports submitted by project managers for the
current salary cycle.
▪ Function processes the data to calculate the total
point and the P1, P2, and P3 point for each report.
▪ Function checks the status of each report to
determine if it is pending or reviewed.
▪ Function displays the data in a table with columns
for project name, report name, total point, P1 point,
P2 point, P3 point, and report status.
▪ Admin can sort and search the table by project
name or report name.
▪ Table displays a count of the number of reports
reviewed and not reviewed
3.9.2 Load report data
● Function trigger: This function can be triggered by a project
manager who is currently logged in to the system. The project
manager needs to navigate to the report management page, then
click on the "Load Report Data" button.
● Function description:
o Actors/Roles: admin
o Purpose:

138 | Page
▪ The purpose of this function is to allow project
managers to provide data for the report template
that they can download from the project detail page
in the report tab.
o Interface:
▪ The interface of this function is straightforward and
user-friendly, allowing project managers to upload
the report file quickly and easily.
o Data processing:
▪ When a project manager clicks on the load report
data button, the system checks that the required
fields are filled, including the project and cycle for
which the report is being submitted, and the report
file in Excel format.
▪ The system then processes the data by checking that
the uploaded report file matches the report template
format and all the required fields are filled. If the
report file is successfully validated, it is saved in the
system database, and the status of the report is
changed to "pending".
● Screen layout:

139 | Page
Figure 49:

● Function Details:
o Data explanation:
▪ This refers to a description of the data that is used in
the function. For example, for the "Load Report
Data" function, the data might include the name of
the project, the cycle, and the report file in Excel
format.
o Validation:
▪ This function validates the data retrieved from the
database to ensure that it is accurate and up-to-date.
▪ This refers to the checks that the system performs
on the data to ensure that it is valid and can be
processed correctly.
o Business rules:

140 | Page
▪ The business rules for this function include
ensuring that only project manager have access to
this function, and that the data loaded is only for the
current salary cycle.
▪ The function also enforces a validation process to
ensure the accuracy of the data.
▪ The uploaded report data is associated with the
specific project and cycle for which it is submitted,
ensuring that the data is correctly filed and easy to
retrieve.
▪ The uploaded report data is saved in the system
database, making it easy to access and track the
status of the report submission.
▪ The status of the report is changed to "pending,"
indicating that the report has been submitted and is
awaiting review.
▪ If the uploaded report data does not match the
report template format or if any required fields are
missing, an error message is displayed, and the
report is not saved in the system database.
o Functionalities:
▪ The load report data function is designed for project
managers to submit a report file in Excel format for
the project they manage.
o Workflow:
▪ The project manager navigates to the report
management page and clicks on the "Load Report
Data" button.
▪ The system displays a form for the project manager
to input the project name and cycle, and upload the
report file in Excel format.
▪ The project manager fills in the required
information and selects the report file to upload,
then clicks the "Submit" button.

141 | Page
▪ The system validates the report file to ensure it is in
the correct format and contains all the required
information.
▪ If the report file is valid, the system extracts the
data from the report file and stores it in the
database.
▪ The system marks the report as "Submitted" and
updates the project status to "Pending Review".
The report is now available for review by the
project supervisor and other members of the review
team.
▪ If the report file is not valid, the system displays an
error message and prompts the project manager to
correct the errors before resubmitting the report.
3.10 Voucher management

3.10.1 View list of vouchers


● Function trigger: This function can be triggered by navigating to
the "Voucher" section of the admin menu navigation. It can be
accessed at any time by the admin.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to provide the admin
with a list of all vouchers that members can redeem
using the points they have earned from their
projects.
o Interface:
▪ The interface for this function is a table that
displays the following information about each
voucher: voucher code, voucher name, point value,
EXP, number of vouchers.
o Data processing: The function retrieves the data on
available vouchers from the system's database and presents
it in the form of a table in the admin panel.
● Screen layout:

142 | Page
Figure 50:

● Function details:
o Data explanation: The data displayed in the table includes
the following information
▪ Voucher Name: The name of the voucher.

▪ Point Value: The number of points required to


redeem the voucher.
▪ Created date: The date when the voucher is created.

▪ EXP: The date when the voucher expires and can no


longer be redeemed.
▪ Number of vouchers
o Validation:
▪ This function validates the data retrieved from the
database to ensure that it is accurate and up-to-date.
▪ This refers to the checks that the system performs
on the data to ensure that it is valid and can be
processed correctly.
o Business rules:

143 | Page
▪ Vouchers can only be redeemed by members who
have earned enough points to meet the required
point value.
▪ Vouchers can only be redeemed during the period
between the start date and end date.
▪ Once a voucher has been redeemed, it cannot be
reused or refunded.
o Functionalities:
▪ Editing: The admin can edit the details of each
voucher in the table, including the voucher name,
point value, number of vouchers, and EXP.
▪ Adding: The admin can add new vouchers to the
system by specifying the number of vouchers,
voucher name, point value, and EXP.
▪ Deactivating: The admin can deactivate vouchers
that are no longer valid or have expired.
o Workflow:
▪ The admin navigates to the "Voucher" section of
the admin menu navigation.
▪ The system retrieves the data on available vouchers
from the database.
▪ The system displays the data in the form of a table
in the admin panel.
▪ The admin can edit the details of each voucher or
add new vouchers to the system.
▪ The admin can deactivate vouchers that are no
longer valid or have expired.
3.10.2 Create a new voucher
● Function trigger: This function can be triggered by an admin
through the navigation menu. The admin can access the voucher
management page and select the create new voucher button.
● Function description:
o Actors/Roles: admin
o Purpose:

144 | Page
▪ The purpose of this function is to allow admins to
create new vouchers for members to use as
compensation and benefits.
o Interface: The user interface for this function will be a
form that admins can fill out to create a new voucher. The
form will include fields for the following information:
▪ Voucher name

▪ EXP - Expiry date

▪ Point value

▪ Number of vouchers

▪ Image illustrating the voucher

▪ Description
o Data processing: When the admin submits the form, the
system will perform the following actions:
▪ Validate the data entered in the form to ensure that
it meets the required format and meets any business
rules.
▪ Create a new record in the database for the voucher
with the information entered in the form.
▪ Store the image illustrating the voucher in the
system's file storage.
▪ Notify the admin that the voucher has been
successfully created.
● Screen layout:

145 | Page
Figure 51:

● Function Details:
o Data explanation: The form that admins can fill out to
create a new voucher. It will include fields for the
following information:
▪ Voucher name

▪ EXP - Expiry date

▪ Point value

▪ Number of vouchers

▪ Image illustrating the voucher

▪ Description
o Validation:
▪ Voucher name: Required field, maximum 50
characters
▪ Expiry date: Required field, date format

▪ Point value: Required field, positive integer value

▪ Number of vouchers: Required field, positive


integer value

146 | Page
▪ Image Illustrating the Voucher: Required field,
image file type (png, jpg, jpeg), maximum file size
▪ Description: Optional field, maximum 1000
characters.
o Business rules:
▪ Voucher Name must be unique.

▪ Expiry Date must be a future date.

▪ Point Value must be greater than zero.


o Functionalities:
▪ Create a new voucher with the specified details.

▪ Store the image illustrating the voucher in the


system's file storage.
▪ Notify the admin that the voucher has been
successfully created.
o Workflow:
▪ Admin user navigates to the voucher management
page.
▪ Admin user selects the create new voucher button.

▪ Admin user fills out the form with the required


information and submits the form.
▪ System validates the data entered in the form.

▪ System creates a new record in the database for the


voucher with the information entered in the form.
▪ System stores the image illustrating the voucher in
the system's file storage.
▪ System notifies the admin that the voucher has been
successfully created.

147 | Page
3.10.3 Edit voucher
● Function trigger: This function can be triggered by navigating to
the voucher management page and selecting the "Edit" button for
a specific voucher. This function can only be accessed by admins.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow admins to
edit an existing voucher. Admins may need to
update information such as the voucher name,
expiration date, point value, number of vouchers,
image illustration, and description.
o Interface:
▪ Voucher management page: displays a list of
existing vouchers
▪ Edit voucher page: allows admins to update voucher
information such as name, expiration date, point
value, number of vouchers, image illustration, and
description.
o Data processing:
▪ When an admin selects the edit button for a specific
voucher, the edit voucher modal will be populated
with pre-existing data for that voucher.
▪ Admins can then update the voucher information
and save changes.
▪ Upon saving changes, the system will update the
voucher data in the database.
● Screen layout:

148 | Page
Figure 52:

● Function Details:
o Data explanation: The form that admin can fill out to edit a
new voucher. It will include fields for the following
information:
▪ Voucher name

▪ EXP - Expiry date

▪ Point value

▪ Number of vouchers

▪ Image illustrating the voucher

▪ Description
o Validation:
▪ Admins will be required to input all necessary
information such as the voucher name, expiration
date, point value, and number of vouchers.
▪ The system will validate that the expiration date is
in the future and that the point value and number of
vouchers are positive integers.
o Business rules:

149 | Page
▪ Admins can only edit existing vouchers and cannot
create new vouchers through this function.
▪ The voucher name must be unique.
o Functionalities:
▪ Data from the selected voucher will be displayed in
the Edit Voucher page.
▪ Admins can update voucher information such as
name, expiration date, point value, number of
vouchers, image illustration, and description.
▪ Admins can save changes to the voucher, which
will update the voucher data in the database.
o Workflow:
▪ Navigate to the voucher management page.

▪ Select the edit button for a specific voucher.

▪ Data for that voucher will be displayed in the Edit


voucher page.
▪ Update voucher information as needed.

▪ Save changes to the voucher.

▪ The voucher data in the database will be updated


with the new information.
3.10.4 View voucher
● Function trigger: This function is triggered when an admin
navigates to the voucher management page and selects a specific
voucher to view its details.
● Function description:
o Actors/Roles: admin
o Purpose:
▪ The purpose of this function is to allow admins to
review the details of a specific voucher, such as its
availability and description, in order to manage the
voucher program more effectively.
o Interface:

150 | Page
▪ The interface for this function displays the details of
the selected voucher in a clear and organized
manner. The voucher name, expiration date, point
value, and number of vouchers available are
displayed at the top of the interface, followed by an
image illustration of the voucher and a description
of its benefits.
o Data processing:
▪ When the admin selects a voucher to view its
details, the system retrieves the voucher data from
the database and displays it on the interface.
▪ The data is processed and organized to ensure that
the details are presented in a clear and readable
format.
● Screen layout:

Figure 53:

● Function Details
o Data explanation: The view modal admin can view detail
information of voucher. It will include fields for the
following information:
▪ Voucher name

151 | Page
▪ EXP - Expiry date

▪ Point value

▪ Number of vouchers

▪ Image illustrating the voucher

▪ Description
o Validation:
▪ This function validates that the admin has the
necessary privileges to view voucher details.
o Business rules:
▪ Only admins can access this function.

▪ The voucher must exist in the system's database in


order for its details to be viewed.
▪ The admin must have the necessary privileges to
access voucher details.
o Functionalities:
▪ Displaying the details of a selected voucher, such as
the voucher name, expiration date, point value,
number of vouchers available, image illustration,
and description.
▪ Providing a clear and organized interface for
admins to review voucher information.
▪ Ensuring that only authorized users can access
voucher details.
o Workflow:
▪ An admin navigates to the voucher management
page and selects a specific voucher to view its
details.
▪ The system retrieves the voucher data from the
database and displays it in a clear and organized
interface.

152 | Page
▪ The admin reviews the voucher details and can use
this information to manage the voucher program
more effectively.
3.11 Using point

3.11.1 Buy voucher


● Function trigger: This function is triggered when a member
navigates to the voucher store page in the WAGE mobile app and
selects the buy voucher option for a specific voucher.
● Function description:
o Actors/Roles: member
o Purpose:
▪ The purpose of this function is to allow members to
use their earned points to purchase vouchers from
the voucher store.
o Interface: The interface consists of the following elements:
▪ Voucher store screen: a screen in the WAGE
mobile app that displays a list of available vouchers
▪ Buy voucher button: a button next to each voucher
on the voucher store screen that members can select
to initiate the purchase process
▪ Confirmation screen: a screen that displays the
voucher details and prompts the member to confirm
the purchase
▪ Success screen: a screen that confirms the purchase
and displays the voucher code and instructions for
redemption.
o Data processing:
▪ When a member selects the buy voucher button for
a specific voucher, the app will initiate a deduction
of the required points from the member's account in
the point system.
▪ The voucher code and details will then be generated
and stored in the voucher store's database.

153 | Page
▪ The member will be shown a confirmation screen
with the voucher details, and they can confirm the
purchase or cancel the transaction.
▪ If confirmed, the voucher code and instructions for
redemption will be displayed on the success screen.
● Screen layout:

Figure 54:

● Function Details:
o Data explanation: The member can view list of vouchers to
buy, the information of voucher include:
▪ Voucher name

▪ EXP - Expiry date

▪ Point value

▪ Number of vouchers

154 | Page
▪ Image illustrating the voucher

▪ Description
o Validation:
▪ Before a member can purchase a voucher, the app
will validate that they have enough points in their
account to make the purchase. If not, they will be
prompted to earn more points before proceeding.
o Business rules:
▪ The voucher store will have a limited number of
each type of voucher available for purchase, and
once that limit is reached, the voucher will no
longer be available for purchase.
▪ Additionally, each voucher will have an expiration
date and cannot be redeemed after that date.
o Functionalities:
▪ The member will be able to view the available
vouchers in the voucher store and select the "Buy
voucher" button next to the voucher they want to
purchase. They will be prompted to confirm the
purchase, and upon confirmation, the required
points will be deducted from their account and the
voucher details will be displayed.
o Workflow:
▪ The member navigates to the voucher store screen
in the WAGE mobile app and selects the buy
voucher button next to the voucher they want to
purchase.
▪ They are prompted to confirm the purchase, and if
they confirm, the required points are deducted from
their account and the voucher details are displayed
on the success screen.
▪ The member can then redeem the voucher
according to the instructions provided.

155 | Page
3.11.2 Use voucher
● Function trigger: This function is triggered by the member
through the WAGE mobile app when they want to use a voucher.
● Function description:
o Actors/Roles: member
o Purpose:
▪ The purpose of this function is to allow members to
use the vouchers they have purchased through the
WAGE mobile app.
o Interface: The interface consists of the following elements:
▪ The member can access this function through the
voucher wallet screen in the WAGE mobile app.
▪ They can select the voucher they want to use, and a
gift code will appear on the screen.
▪ The member can use this gift code to avail the
benefit of the voucher.
o Data processing:
▪ When a member uses a voucher, the system will
check if the voucher is still valid, if the voucher has
already been used, and if the member has enough
points to use the voucher.
▪ If all the checks pass, the voucher will be marked as
used and the corresponding benefit will be provided
to the member.
● Screen layout:

156 | Page
Figure 55:

● Function Details:
o Data explanation: The voucher data will include the
voucher name, expiration date, point value, number of
vouchers available, and description.
o The gift code generated for each voucher will be unique
and tied to the member's account.
o Validation:
▪ The system will validate whether the voucher is
still valid, whether it has already been used, and
whether the member has enough points to use the
voucher.
o Business rules:
▪ A member can only use a voucher once, and the
voucher can only be used within its valid period.
The member must have enough points to use the
voucher.
o Functionalities:

157 | Page
▪ The member can view the voucher they have
purchased and select the voucher they want to use.
Once the member has used a voucher, it cannot be
used again.
o Workflow:
▪ The member opens the WAGE mobile app and goes
to the voucher wallet.
▪ They select the voucher they want to use and a gift
code appears on the screen.
▪ The member can then use this gift code to avail the
benefit of the voucher.
▪ Once the voucher is used, it will be marked as used
in the system and the corresponding benefit will be
provided to the member.

4. Non-Functional Requirements

4.1 External Interfaces

The external interfaces provide a way for users to interact with the
system and perform the required tasks to manage projects, submit reports,
and use their earned points to purchase vouchers:

● Login interface: This is the interface where users can enter their
login credentials (email and password) to access the system.
● Dashboard interface: This is the interface where users can view a
summary of projects, members, point wallet, and other relevant
information.
● Project management interface: This is the interface where project
managers can create and manage their projects, milestones,
submit and review project reports.
● Report management interface: This is the interface where project
managers can submit reports, view reports submitted by other
project managers, and review reports for approval.

158 | Page
● End salary cycle status interface: This is the interface where
admins can change the status of the salary cycle to "end" and pay
benefits to members automatically.
● View list of reports interface: This is the interface where admins
can view a list of reports for a particular cycle, including the
project name, report name, total points, total points off each
attribute indicator (P1, P2, P3), and the status of the report.
● Load report data interface: This is the interface where project
managers can load report data for a particular cycle, including the
project name, cycle, and report file in Excel format.
● View list of vouchers interface: This is the interface where
admins can view a list of available vouchers, including the
voucher name, expiration date, point value, number of vouchers,
image, and description.
● Create a new voucher interface: This is the interface where
admins can create a new voucher by entering the required
information, including the voucher name, expiration date, point
value, number of vouchers, image, and description.
● Edit voucher interface: This is the interface where admins can
edit an existing voucher by updating the required information,
including the voucher name, expiration date, point value, number
of vouchers, image, and description.
● View voucher detail interface: This is the interface where admins
can view the details of a particular voucher, including the voucher
name, expiration date, point value, number of vouchers, image,
and description.
● Buy voucher interface: This is the interface where members can
buy vouchers from the voucher store using the points they have
earned.
● Use voucher interface: This is the interface where members can
use a voucher, they have purchased by entering the gift code
displayed in their voucher wallet and marking the voucher as
used.

159 | Page
4.2 Quality Attributes

4.2.1 Usability
● The system shall have a user-friendly interface with clear
navigation paths and easy-to-use controls.
● The system shall provide clear instructions and feedback to
users. The system shall have consistent and intuitive user
interfaces across all modules and functions.
● The system shall support multiple languages and provide
translations for all user-facing content.
● The system shall provide accessible features to support users
with disabilities.
4.2.2 Reliability
● The system shall have a fast response time for all user actions.

● The system shall handle concurrent user requests without delays or errors.
The system shall have scalable architecture to handle increasing amounts
of data and users.
● The system shall have a maximum acceptable load time for each page and
function.
● The system shall provide reliable data transfer and storage to prevent data
loss or corruption.

4.2.3 Performance
● The system shall produce accurate and reliable output.

● The system shall adhere to industry standards for precision and


resolution.
● The system shall provide clear documentation and reference materials for
all calculations and data processing.

5 Requirement Appendix

5.1 Business rules

ID Rule Definition
BR- The system should have automated monitoring and alerting mechanisms in place to
01 detect performance issues and prevent downtime.
BR- All system transactions should be completed within 5 seconds.
02
BR- The system should be able to handle at least 500 simultaneous users without any

160 | Page
03 significant decrease in performance.
BR- The system should be able to process 100 voucher transactions per minute without any
04 errors or delays.
BR- The system should be able to generate reports within 10 seconds of the user's request.
05
BR- The system should have a 99% uptime rate, with scheduled maintenance and upgrades
06 planned outside of peak usage times.
BR- The system should have appropriate caching mechanisms in place to minimize the load
07 on the database.
BR- The system should be designed to handle unexpected spikes in usage, such as during a
08 promotion or special event.
BR- All transactions and data updates should be processed in queue to ensure accurate data
09 reporting and prevent data inconsistencies.
BR- The system should be able to scale horizontally to handle increased usage and data
10 storage needs.

5.2 Common Requirements

● Security: The system must have robust security measures in place to


protect sensitive data such as user information, payment details, and
voucher codes. This includes encryption of data, access controls, and
regular security audits.
● Scalability: The system must be designed to handle a large number of
users and transactions, and should be able to scale up or down as
needed.
● User-friendly interface: The system must have an intuitive and user-
friendly interface that is easy to navigate and use, both for
administrators and members.
● Integration with payment gateways: The system must integrate with
reliable payment gateways to facilitate secure and convenient
transactions.
● Error handling: The system must have robust error handling
mechanisms in place to detect and handle errors and prevent data loss.
● Compatibility: The system must be compatible with different
browsers, operating systems, and devices to ensure maximum
accessibility.
● Accessibility: The system must be designed to be accessible to users
with disabilities, conforming to relevant accessibility guidelines such
as WCAG.

161 | Page
● Performance: The system must be designed to have fast response
times and low latency, ensuring a seamless user experience.
● Reliability: The system must be reliable and available at all times,
with minimal downtime for maintenance or upgrades. This includes
regular backups and disaster recovery plans.
5.3 Application Messages List

Message Message Content Context


#
code Type
1 MSG01 In line Không tìm thấy kết quả No search results.
2 MSG02 In red, under Đây là những mục bắt buộc The * field is required.
the text box phải điền
3 MSG03 Toast Cập nhật thành công Update asset(s)
message successfully.
4 MSG04 Toast Tạo mới thành công Add asset successfully.
message
5 MSG05 Toast Email xác nhận đã được gửi A confirmation email has
message đến {email_address}. been sent to
{email_address}.
6 MSG06 Toast Đổi mã PIN thành công Change PIN successfully.
message
7 MSG07 Toast Đã xóa {number} {assets} Delete {number} asset(s)
message thành công successfully.
8 MSG08 In red, under Mã PIN / Mật khẩu / Mã xác Incorrect PIN / Password /
the text box thực không trùng khớp Validation number.
9 MSG09 In line Tên đăng nhập hoặc mật khẩu Incorrect user name or
không đúng password.
10 MSG10 Toast Bạn xác nhận muốn …? Confirm {action}
message

162 | Page
IV. Software Design Description
1. System Design

1.1 System Architecture

Figure 56:
1.2 Package Diagram

Figure 57:
Package Descriptions
No Package Description
01 Application This refers to the overall software system being developed.

163 | Page
02 Controllers Components responsible for receiving requests from external
sources, such as user interfaces or APIs. Controllers typically
handle input validation, authentication, and authorization
before passing requests to other components.
03 Services Services are responsible for implementing business logic and
performing operations on data. They can handle complex
computations and interact with data storage.
04 Repositories These are components responsible for managing the
persistence of data. They typically provide methods for
retrieving, saving, and deleting data from a data store such as a
database.
05 QueryParams These are parameters used to filter, sort, or paginate data
returned from a repository or service. They can be passed as
part of a request from a client to the application.
06 Helpers Helpers are utility classes or functions that provide commonly-
used functionality across the application. They can be used to
simplify code, encapsulate complex algorithms, or provide
convenience methods.
07 DTOs These are objects used to transport data between different
components of the application, such as between a controller
and a service. They typically contain only the necessary data
for the operation being performed, and may not necessarily
match the structure of the underlying data storage.

164 | Page
2. Database Design

Figure 58:
Table Descriptions
No Table Description
1 ProjectFiles PK: ProjectFileId
2 SystemFiles PK: SystemFileId
3 VoucherFiles PK: VoucherFileId
4 ProjectSponsor PK: ProjectSponsorId
5 Sponsors PK: SponsorId
6 ProjectSponsorTran PK: ProjectSponsorTransactionId
saction
7 Vouchers PK: VoucherId
8 MemberVouchers PK: MemberVoucherId
9 Member PK: MemberId
10 MemberLevel PK: LevelId, MemberId
11 Levels PK: LevelId
12 Users PK: UserId
13 Roles PK: RoleId
14 UserFCMTokens PK: UserId, Token
15 MemberWallets PK: MemberId, WalletId

165 | Page
16 Wallets PK: WalletId
17 Transaction PK: TransactionId
18 ProjectWallets PK: ProjectId, WalletId
19 Notification PK: NotificationId
20 Payslip PK: PayslipId
21 PayslipItems PK: PayslipItemId
22 SalaryCycles PK: SalaryCycleId
23 ProjectMembers PK: ProjectMemberId
24 Projects PK: ProjectId
25 ProjectReports PK: ReportId
26 ProjectMilestones PK: ProjectMilestoneId
27 ProjectReportMemb PK: ProjectReportMemberId
ers
28 ProjectReportMemb PK: ProjectReportMemberTaskId
erTasks
29 ProjectReportMemb PK: ProjectReportMemberId, AttributeId
erAttribute
30 ProjectMemberAttri PK: ProjectMemberId, AttributeId
butes
31 PayslipItemAttribut PK: PayslipId, AttributeId
e
32 MemberAttributes PK: MemberId, AttributeId
33 Attributes PK: AttributeId
34 AttributeGroups PK: AttributeGroupId
35 ProjectMembers PK: ProjectMemberId
36 ProjectMemberReq PK: RequestId
uests
37 SponsorFiles PK: SponsorFileId
38 PK:
39 PK:

3. Detailed Design

3.1 Manage project

3.1.1 Class Diagram

166 | Page
3.1.2 Create a new project [UC-04]

Figure 59:

167 | Page
Figure 60:
This diagram shows the interaction between the admin, the create a new project
function, and the database when creating a new project in the system.

● The sequence starts with the admin calling the "createanewproject()"


function, which then checks if the project already exists in the Database.
● If the project doesn't exist, a new project is created and recorded in the
database, and the "create a new project" function returns a "Success"
message to the project manager and notification for admin.
● If the project already exists, the function returns a "Fail" notification to
the admin.
3.1.3 Update project [UC-05]

Figure 61:

168 | Page
Figure 62:
In this diagram, both the project manager and admin actors can call the
updateProject() function on the system.

● The system then retrieves the project information from the


database using the retrieve(project) function.
● The admin then updates the project information, which is then
sent back to the database for updating.
● There is an alt group that checks if the admin or project manager
updated the project.
● If the Admin updated the project, then the database sends the
updated project information back to the admin.
● If the project manager updated the project, the alt group checks if
the status was updated to "start". If it was, then the database sends
the updated status back to the project manager. If it was not, then

169 | Page
the database sends a message back to the Admin saying that the
project status can only be updated to "start".
3.2 View project detail [UC-08]

3.2.1 Class Diagram

3.2.2 View project information: member, milestone, sponsor, point


transaction, report, payslip, task [UC-43]

In this diagram, we have three actors: member, project manager, and admin.

● They all interact with the "ViewProjectInformation" component in the


system, which interacts with the database to retrieve project
information.
● The diagram includes an "alt" group, which represents the two different
scenarios depending on whether the user wants to view just the member
and milestone data, or all project information.
● If the user is member - only views just the member and milestone data,
the component sends a request to the database, which returns the data,
and the component displays it to the member.
● If the user is project manager or admin to view all project information,
the component sends a request to the database, which returns all project
information data, and the component displays it to the appropriate user

170 | Page
3.2.3 Get list of projects [UC-11]

171 | Page
Figure 66:

● The actor user (admin, project manager, member) initiates the


request for a project list.
● The system receives the request and retrieves the project list from the
database.
● The database retrieves the project list and returns it to the System.

● The system returns the project list to the user.

172 | Page
3.2.4 Search project [UC-12]

Figure 67:
173 | Page
● In this diagram, the user enters the search criteria into the system.

● The system then checks which type of search is being performed (by
time create, name, status, or project manager name)
● The system sends a search request to the project database, passing
along the search criteria as parameters.
● The project database receives the search request and activates,
performing a search for projects that match the search criteria. The
project database sends the search results back to the system.
3.2.5 Request to join project [UC-13] and response request [UC-34]

174 | Page
Figure 68:

● The member actor clicks on the project list to select a specific


project.
● The project list sends the selected project information to the
project detail page.
● The project detail page displays the project milestones and allows
the member to check suitability before sending a request to join
the project.
● The project detail page sends the join request to the project
manager.
● The project manager queries the database for member information
and decides whether to accept or reject the request.
● If the request is accepted, the project manager adds the member to
the project in the database and sets the P1 and P2 attribute
indicators for the member.
● The project detail page displays a message indicating whether the
request was accepted or rejected.
3.2.6 Create a project milestone

175 | Page
Figure 69:

● In this diagram, the project manager creates a new milestone


by calling the createNewMilestone() function on the milestone
object.
● The milestone object then saves the new milestone to the
database by calling the saveMilestone() function on the
database object.
● Once the milestone is saved, the milestone object sends a
milestoneCreated() message to the project manager indicating
that the milestone has been successfully created.

176 | Page
3.2.7 View list of member in project [UC-39]

● In this diagram, the user actor (project manager, member, admin) sends a
request to view the list of members in a project to the project member list.
● The project member list then sends a query to the database member to retrieve
the member information.
● The database member returns the information, the project member list displays
it and sends it back to the user actor.

177 | Page
3.2.8 View detail of member in project [UC-37]

3.3 Change budget

3.3.1 Class diagram

178 | Page
3.3.2 Change project budget

Figure 70:

● In this sequence diagram, the admin actor initiates the process by


viewing the project report.
● The ProjectReport participant retrieves the current budget from the
ProjectWallet participant and displays it to the admin.
● If the budget is sufficient, the admin can update the budget by sending a
request to the ProjectWallet.
● The ProjectWallet then updates the budget and returns a success
message to the ProjectReport.
● The ProjectReport then notifies the ProjectManager of the budget
change, and the ProjectManager updates the project wallet accordingly.

179 | Page
● Finally, the ProjectReport returns a success message to the admin. If
there are any problems, the admin receives an error message from the
ProjectReport.
3.4 Get list of users [UC-15]

3.4.1 Class diagram

3.4.2 Search user [UC-17]

Figure 71:

● Admin opens the user management page in the system.

● System retrieves user data from the database.

● System displays the user list to the admin.

180 | Page
3.5 User management

3.5.1 Update user information [UC-18] + [UC-44]

The actor, either an Admin or a User, initiates the update profile information
function by selecting the profile to update.

181 | Page
● If it is an Admin, the system verifies their credentials and authorizes the
update process.
● The system retrieves the user's existing profile information from the
database.
● The actor modifies the profile information as required.
● The system updates the modified profile information in the database.
The system sends a confirmation message to the actor indicating that the
profile update is successful.

3.5.2 Create a new admin [UC-49]

In this sequence diagram, the admin initiates the process by calling the
createNewAdmin function on the AdminController object.

● The AdminController then calls the createNewAdmin function on


the AdminService object, passing in the admin information.
● The AdminService object then saves the admin by calling the
saveAdmin function on the AdminRepository object.
● The AdminRepository object then inserts the admin into the
database and returns a success or failure message back to the
AdminService.
● The AdminService then returns a success or failure message back
to the AdminController, which in turn returns a success or failure
message back to the admin.
3.5.3 Choose a list of users and delete user(s) [UC-20]

182 | Page
Figure 73:

● The admin logs in to the system and navigates to the user list.

● The system retrieves the user list from the database.

● The admin selects one or more users to delete.

● If user(s) selected, the admin confirms the deletion, and the system sends a
request to the database to delete the selected user(s).
● If the deletion is successful, the system sends a success message to the admin
and displays it on the screen.
● If no user is selected, the system displays an error message to the admin.

● The admin logs out from the system.

183 | Page
3.5.6 View the benefit of each level

Figure 74:
In this diagram, the admin logs in to the system and chooses the option to view
level benefits. The system retrieves the level benefits information from the
database and displays it to the admin.

184 | Page
3.5.7 Configure benefit of each level [UC-27]

● The admin opens the benefit configuration page in the System.

● The system retrieves the current benefit configuration from the database.

● The system displays the current benefit configuration to the admin.

● The admin modifies the benefit configuration in the system.

● The system updates the benefit configuration in the database.

● The system displays the updated benefit configuration to the admin.

3.5.8 View user information


[UC-19] + [UC-40] + [UC-41] + [UC-42] + [UC-63]

185 | Page
Because viewing payslips, viewing completed projects, and
viewing personal information all work similarly, so combine
them to view user details.
● In this diagram, the admin actor interacts with the user list and
user detail components to view detailed information about a
specific user.
● The admin opens the user list component and requests user data
from the database.
● The database responds with the user data, which is displayed in
the user list component.
● The admin then selects a specific user and requests the user's
information from the database.
● The database responds with the user's information, which is
displayed in the user detail component.
3.5.9 Input project member attribute [UC-33]

● In this diagram, the member actor sends a request to join the project to the
project manager actor.
● The project manager actor then responds to the request.

● If the request is approved, the project manager actor inputs the P1 and P2
indicator for the project member in the project.

186 | Page
● If the request is rejected, the Project Manager actor informs the Member actor
about the rejection.
3.5.10 Edit project member attribute [UC-07]

This diagram represents the sequence of events when a project manager wants to edit
the P1, P2 attributes for a project member in the system. The steps are:

● The project manager accesses the project detail page.

● The project manager views the project member list.

● The project manager edits the P1, P2 attributes for a project member.

● The project member list updates the project member data in the database.

● The database updates the project member data and sends a response to the
project member list.

187 | Page
3.5.11 View member payslip [UC-36]

● In this diagram, the admin and project manager access the project detail page to
view all member payslips.
● The project manager and admin request all member payslip data from the
database, and the system displays the data.
● The member accesses their profile page and selects a specific payslip to view.

● The member then requests the selected payslip data from the database and
displays it.

188 | Page
3.5.12 View user profile [UC-03]

● The User initiates the view profile function by calling viewProfile(userId) on


the UserProfile object.
● The userId parameter is the unique identifier of the user whose profile the User
wants to view.
● The UserProfile object receives the viewProfile() message and activates to
process it.
● The UserProfile object sends a getUserProfile(userId) message to the Database
object, requesting the user record for the given userId.
● The Database object receives the getUserProfile() message, retrieves the user
record for the specified userId, and sends the userRecord response back to the
UserProfile object.

189 | Page
● The UserProfile object receives the userRecord response, deactivates, and sends
a displayProfile(userRecord) message to the User object, passing the retrieved
user record.
● The User object receives the displayProfile() message and displays the user
record on the screen for the User to view.

3.6 Sponsor management

3.6.1 Add sponsor to a project [UC-22]

190 | Page
3.6.2 View list of sponsors [UC-21]

This diagram assumes that the admin has already logged into the system and is able to
access the list of sponsors through the user interface.

● The admin sends a request to the system to retrieve the list of sponsors, which
is then obtained from the Sponsor object.
● The system displays the sponsor list to the admin.

191 | Page
3.6.3 Create a new sponsor [UC-23]

● In this diagram, the admin actor logs in to the system and accesses the sponsor
dashboard.
● They click the create new sponsor button, which opens a form for entering the
sponsor details.
● After filling in the details and submitting the form, the system validates the
details and either creates a new sponsor or shows an error message if the
sponsor already exists.
● The system saves the sponsor details to database.

192 | Page
3.6.4 Add new sponsor transaction

193 | Page
● In this sequence diagram, the admin logs in to the system and navigates to the
sponsor dashboard.
● The system retrieves the list of sponsors from the database and displays it for
the admin to choose.
● The admin selects a sponsor and adds a new point sponsor transaction, filling in
the required details.
● The system saves the new action in the database and displays a success
message for the admin.

194 | Page
3.6.5 View sponsor detail [UC-25]

● In this diagram, the admin first logs into the system and goes to the sponsor
dashboard.
● From there, the admin can choose a specific sponsor to view details.

● The system retrieves the sponsor information, list of sponsored projects, and
point transaction history from the sponsor entity.
● The system shows the sponsor details to the admin.

195 | Page
3.6.6 Update sponsor detail [UC-24]

3.6.7 Delete sponsor [UC-26]

196 | Page
197 | Page
3.7 Cycle management

3.7.1 Class diagram


3.7.2 View list of cycle and view the cycle detail

198 | Page
● In this diagram, the admin logs into the system and requests to view the list of
project cycles.
● The system retrieves the project cycles from the database and displays them to
the admin.
● The admin can then select a project cycle to view its details, which are also
retrieved from the database and displayed by the system.

199 | Page
3.7.3 Create a new cycle [UC-28]

● In this sequence diagram, the admin first logs into the system and accesses the
project management page.
● They then choose to create a new project cycle, and the system presents them
with a form to fill out.
● Once the admin has filled out the form, the system adds the new project cycle
to the database and sends a success notification to the admin.

200 | Page
3.7.4 Change cycle status [UC-29]

● In this diagram, the admin first logs into the system and selects a project cycle.

● The system then retrieves the information about the selected project cycle and
displays it to the admin.
● The admin can then change the status of the project cycle, which the system
will validate and update in the database.

201 | Page
3.7.5 End cycle [UC-30]

● In this diagram, the admin initiates the end of a project cycle.

● The system then calculates the compensation and benefit for each member
based on their task performance and the project member attributes inputted by
the project manager.
● The system then transfers the point benefit to the member's wallet.

● Finally, the system notifies the admin of the completion of the cycle.

202 | Page
3.8 Report management

3.8.1 Class diagram


3.8.2 View list of report [UC-38]

This diagram shows the interaction between the admin and project manager when
reviewing and approving/rejecting submitted reports.

● The sequence starts with the admin logging into the system, going to the reports
page, and selecting a report to review.
● The admin can approve or reject the report.

● The sequence continues with the project manager logging into the system,
going to the reports page, and selecting the same report to review.
● The project manager can make changes to the report (if necessary) and submit
the report again.
● The admin will receive the updated report, review it, and either approve or
reject it, sending feedback to the Project Manager if necessary.

203 | Page
3.8.3 Load report data [UC-16]

● The ProjectManager actor navigates to the project detail page,


then clicks on the "upload report file" button.
● This activates the UploadFile participant, who prompts the
ProjectManager to select the report file.
● Once the report file is selected, the UploadFile participant
uploads the file, which activates the CreateTable participant.
● The CreateTable participant then creates a table of data from the
report file and saves it in the database.
● Finally, the Database participant returns the table data to the
DetailPage participant, who displays it to the ProjectManager
actor.

204 | Page
3.8.3 Submit report [UC-35] and review project report [UC-09]

● The sequence starts with the project manager submitting a project report to the
system using the submitReport() method.
● The admin then reviews the report using the reviewReport() method.
● After reviewing the report, the Admin has two options: accept or reject the
report. If the report is accepted, the Admin uses the acceptReport() method to
signal that it has been approved. If the report is rejected, the Admin uses the
rejectReport() method to signal that it needs to be revised.

205 | Page
3.8.4 Add new task indicator [UC-10]

The project manager is responsible for creating a new task indicator in a project report.
A project report is a report that provides statistics on the number of tasks completed by
each team member.

The sequence diagram starts with the project manager creating a new task indicator by
calling the "createTaskIndicator()" method on the project report object. The project
report object then communicates with the database to save the new task indicator.

206 | Page
3.9 Voucher management

3.9.1 Class diagram


3.9.2 View list of vouchers

207 | Page
In this sequence diagram, both the admin and member actors log in to the system and
view a list of vouchers.
The admin retrieves the voucher data from the database and displays the voucher list,
while the member retrieves the voucher data and displays their voucher list.

208 | Page
3.9.3 Create a new voucher [UC-58]

● In this diagram, the admin actor initiates the process by opening the voucher
form.
● The voucher form then renders the form for the admin to fill in.

● Once the admin has filled in the form, the voucher form validates the data
provided.
● If the validation is successful, the voucher database saves the voucher data and
returns the voucher information to the admin.
● The voucher form then shows a success notification to the admin.

● However, if the validation fails, the voucher form shows an error message to
the admin.

209 | Page
3.9.4 Edit voucher information [UC-59]

This diagram shows the following steps:

● The admin logs into the system.

● The voucher management system retrieves the voucher data from the voucher
database.
● The voucher management system displays the voucher data to the admin.

● The admin modifies the voucher data.

● The voucher management system updates the voucher data in the voucher
database.
● The voucher database returns a success message to the voucher management
system.
● The voucher management system notifies the admin of the successful update.

210 | Page
3.9.3 View voucher detail

211 | Page
● In this sequence diagram, the admin logs into the system and views the voucher
list. They select a specific voucher and view its details. If they need to edit the
voucher, they update its details and view the details again.
● The member logs into the system and views their voucher list in their wallet.
They select a specific voucher and view its details, which includes the gift code
to use.

212 | Page
3.10 Using point

3.10.1 View personal wallet [UC-31]

213 | Page
3.10.2 Buy voucher [UC-32]

214 | Page
● In this sequence diagram, the member opens the voucher shop on their mobile
app and requests the list of available vouchers.
● The mobile app sends this request to the voucher shop, which retrieves the list
from the voucher database and sends it back to the mobile app.
● The mobile app displays the list to the member, who selects a voucher to buy.

● The mobile app then requests the voucher detail from the voucher shop, which
retrieves it from the voucher database and sends it back to the mobile app.
● The mobile app displays the detail to the member, who confirms the purchase.

215 | Page
● The mobile app sends a request to the voucher shop to purchase the voucher,
which deducts the quantity of the voucher from the voucher database and sends
the gift code back to the mobile app.
● The mobile app displays the gift code to the member.

3.10.3 Use voucher [UC-60]

216 | Page
● In this sequence diagram, the member first opens the voucher wallet on the
mobile app.
● The mobile app requests the list of vouchers from the voucher wallet, which
retrieves the list from the system database.
● The voucher wallet sends the list to the mobile app, which allows the member
to view the details of a particular voucher.
● The voucher wallet retrieves the voucher detail from the system database and
sends it to the mobile app along with the gift code.
● The member can then mark the voucher as used on the mobile app, and the
voucher wallet updates the voucher status in the system database.
● The voucher wallet sends the updated voucher status to the mobile app.

217 | Page
3.10.4 Transfer point to other member [UC-56]

218 | Page
3.10.5 Receive point to other member [UC-57]
3.10.6 Get list all voucher [UC-61]

219 | Page
3.11 Authentication

3.11.1 Login [UC-01]

220 | Page
● The user begins by entering their email and password into the login component,
which they do using the enter mail/password() message.
● The user then initiates the login process by sending a login() message to the
login component.
● The login component receives the login() message and sends a retrieve(user)
message to the database component to look up the user's information.
● The database component receives the retrieve(user) message and searches for
the user's information.
● If the user's information is found in the database, the login component sends an
accepted message back to the user, indicating that the login was successful.
● If the user's information is not found in the database, the login component sends
an Invalid message back to the user, indicating that the login failed.
● The final step in the diagram is an alt block, which represents an "alternative"
flow of the sequence depending on whether or not the user's information was
found in the database.
● If the user's information exists, the login component sends an accepted message
to the user, and if not, it sends an invalid message.

221 | Page
3.11.2 Logout [UC-02]

● The user initiates the logout process by calling the logout() function, which
sends a message to the logout component.
● The logout component receives the logout() message and activates.
● The logout component sends a clearSession() message to itself to clear the
user's session data.
● The logout component then sends a redirect(LoginPage) message to the User,
indicating that they have been logged out and are being redirected to the login
page.

222 | Page
3.12 Manage project milestone

3.12.1 Create a new project milestone [UC-48]

3.12.2 Update project milestone [UC-06]

223 | Page
The process starts when the project manager selects a milestone to update and enters
the new milestone details (title and description). The project manager then initiates the
update process by clicking the "Update Milestone" button.

The milestone object receives the update request and sends a message to the Database
object to retrieve the current milestone information. The Database object retrieves the
current milestone details from the database and returns them to the Milestone object.

The milestone object then updates the milestone details with the new information
provided by the project manager and sends a message to the database object to update
the database with the new milestone details. The database object receives the update
request and updates the milestone details in the database.

Finally, the database object sends a message to the milestone object to confirm that the
update was successful, and the milestone object sends a message to the project
manager to notify them that the update was completed.

3.12.3 Delete project milestone

224 | Page
3.12.4 Get list of project milestone [UC-45]

225 | Page
V. Software testing document
1. Scope of testing

1.1 Features, functions, and non-functional requirements to be tested

No Function Name Number of test case Description


1 Authentication 10
2 Manage project 8
3 View project information detail 16
4 Get list of projects 4
5 Search project 4
6 Change point budget 8
7 Manage sponsor 8
8 Buy voucher 4
9 Request to join project 12
10 Response request to join project 4
11 Response report management 3
12 Manage voucher 8
13 Edit project budget 4
14 Manage task indicator 10
15 Manage project milestone 8
16 View profile 4
17 View payslip 6
18 Transfer point 4
19 Receive point 4
20 Update user information 6
21 Use voucher 4
22 Search user 2
23 Get list of users 3
24 Manage user 12
25 Manage member attributes 8
26 View the benefit specifics for each level 3
27 Manage level 8
28 Manage cycle 8
29 Manage report 10

1.2 Features, functions, and non-functional requirements not to be


tested

No Function Name Reason


1 Change PIN
2 Forgot PIN

1.3 Testing objective

1.3.1 Purpose of testing


Testing can be done to ensure that:

● The project manager can create and update projects without


encountering errors or issues.

226 | Page
● The admin can manage vouchers and voucher codes without errors or
discrepancies.
● Members can view and use vouchers without encountering technical
issues.
● The system can store and retrieve data correctly, including project
information, voucher information, and user information.
● The system can handle multiple users accessing and using it
simultaneously without any performance issues.
The testing objective should be specific and measurable, such as:

● To ensure that the system can handle at least 30 simultaneous users


without any performance issues.
● To verify that the project manager can create and update projects
without encountering any errors.
● To ensure that vouchers can be created, edited, and redeemed without
any discrepancies or errors.
● To test that the system can handle different types of voucher
templates and formats without any issues.
1.3.2 Define type of test

No System factor Manual test Screen live test GUI


1 Web Application x x
2 Mobile Application x x
3 APIs x

1.4 Assumptions and constraints

2. Test strategy

2.1 Testing type

2.1.1 Unit test


2.1.2 Integration test
2.1.3 Manual test
2.1.4 Screen live test Web GUI
# Operations Result Last test date
A Layout Check

227 | Page
1 Page properties
1.1 Check that layout fit well with defined minimal resolution screen Not pass 02/04/2023
1.2 Check window's title (spelling) for all application's languages Not pass 02/04/2023
1.3 Check that cache is disabled -> do back navigation to check refresh Pass 02/04/2023
Check keyboard shortcuts are working (for menu, toolbar, button …), should be
1.4 Pass 02/04/2023
defined in specification
1.5 Check resizing behavior (according to specification) Pass 02/04/2023
2 Item's size
2.1 Check the size of the items: font, button, text control, list control, frame… Pass 02/04/2023
Check tooltip is implemented correctly (should be defined in specification),
2.2 Pass 02/04/2023
tooltip should be available when item’s text can not fully displayed
3 Item's alignment
Check alignment for text field, numeric field, date field
3.1 Not pass 02/04/2023
(text field -> left, numeric field -> right, date field -> center)
3.2 Check alignment (vertical and horizontal) of fields within the layout Pass 02/04/2023
4 Read-only fields (should be defined globally in the project)
4.1 Check color (different color to input fields) Pass 02/04/2023
4.2 Check keyboard navigable (no keyboard navigation on read-only fields) Pass 02/04/2023

5 Default button (should be defined globally in the project)


Check existing a default button
Ex: “Enter” to select the default button on screen
5.1 Pass 08/04/2023
“Esc” to close the popup
When a confirmation popup is open, default focus on the default button.
6 Standard format (should be defined globally in the project)
Check standard formats:
- Entire numbers: ZZZ0
6.1 - Floating numbers: XXX0.X0 or X'XX0.X0 Pass 08/04/2023
- Date: The date is formatted correctly. The application works correctly
with the configured locale in customer environment.
7 Tabular
7.1 Check the tabular sequence Pass 08/04/2023
8 Menu
8.1 Check the operations of the menu items of the menu by mouse Pass 08/04/2023
8.2 Check if all menu options are visible and accessible according to access rights Pass 08/04/2023
9 Standard language
Check that page is compatible with chosen mark-up language (html4, xhtml1,
9.1 Pass 08/04/2023
etc…)
10 Multilingual text
Check GUI object text labels (fields buttons, menus, toolbar tool tips, labels, etc.)
10.1 Pass 08/04/2023
in all application's languages (D, F, E, I).
10.2 Check text of the messages Pass 08/04/2023
10.3 Check text of the reference data (combo box) Pass 08/04/2023
11 Messages
Check message title (error, warning, question, information) corresponding the
11.1 Pass 09/04/2023
specific case
11.2 Check icon, font, content , color Pass 09/04/2023
12 Search result list
12.1 Any list must be sorted by default Pass 09/04/2023
The search result list should return a limit amount of elements (e.g. max rows =
12.2 Pass 09/04/2023
300)
13 Focus
13.1 Check default focus when the screen is opened Pass 09/04/2023
14 Data sorting
14.1 Check data in list box, combo box, table is sorted by default Pass 09/04/2023

228 | Page
B General Operation Check
1 Default values
Check the default values of the items: text items, numeric items, list items, radio
1.1 Pass 09/04/2023
buttons, check boxes…
2 Max length
2.1 Check max length of the items: text items, numeric items, editable list items… Pass 09/04/2023
3 Mandatory fields
Check mandatory fields in Create and Update processes. In case of error, screen
3.1 Pass 09/04/2023
should indicate which field is missing.
4 Correct border data
4.1 Check that inputting HTML tags in fields has no effect on page rendering. Pass 09/04/2023
Check the correct border data for the items:
Number: min value, max value
4.2 Text: empty string, max length string, allowed character set (ex: A-Z) Not pass 09/04/2023
contains special character: ', %, _
Date: first date, last date
File upload component: check file type and size before processing.
4.3 File type: xls, xlsx, image file format (png, jpg ) Pass 09/04/2023
Max file size allowed: 10Mb
5 Incorrect data
Check the incorrect data for the items:
5.1 Number: < min value, > max value, text data Pass 09/04/2023
Date: 0/1, 32/1, 29/2, 30/2, 31/4, 31/6, 31/9, 31/11, null date
5.2 Check incorrect data cannot be input through copy/paste N/A N/A
5.3 Test that SQL-injection is impossible (security) Pass 09/04/2023
6 Date interval
6.1 Check with start date > end date Pass 09/04/2023
7 Web navigation (should be defined and implement globally in the project)
7.1 Check management of refresh button Pass 09/04/2023
7.2 Check management of back and forward buttons Pass 09/04/2023
8 Double submit
8.1 Check that it’s impossible to submit twice by error the form Pass 09/04/2023
9 Standard messages
9.1 Check save confirmation request when changing context Pass 09/04/2023
9.2 Check delete confirmation request Pass 09/04/2023
9.3 Check referential integrity error on delete Pass 09/04/2023
9.4 Check no data found error Pass 09/04/2023
9.5 Check concurrent update error Pass 09/04/2023

229 | Page
2.2 Test Levels

Type of Tests Test Level

Unit Integration System Acceptance

<Test Type1> X X X X

<Test Type2> X X

<Test Type3> X X

2.3 Supporting Tools

Purpose Tool Vendor/In-house Version

Browser testing 3h 2.0


LambdaTest

230 | Page
VI.

231 | Page

You might also like