UniCnB Document
UniCnB Document
AND TRAINING
FPT UNIVERSITY
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
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.
5 | Page
I. Project Introduction
1. Overview
2. Product Background
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
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
3. Existing Systems
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:
● 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:
4. Business Opportunity
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
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
● 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.
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:
● 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]
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
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 Authentication Feature 7
2 Authorization Feature 3
3 Project Management 23
3.5 Add a member to the project (in form of member requests Complex 3
to join)
18 | Page
3.16 Create project report Average 2
4 User Management 6
19 | Page
5.13 Update voucher Medium 1
6 Sponsor Management 6
7 Wallet Management 12
1 Reviewing
2 Unit Test
3 Integration Test
4 System Test
5 Acceptance Test
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.
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
● 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
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
26 | Page
Setting up the coding environment and dividing the project structure D S S R
(Mobile)
27 | Page
Implement Sponsor Management API D D R S
5. Project Communications
Weekly meeting All team Discuss the solution for Every week Discord
member each feature, plan to
build, design and
operate each specific
feature.
28 | Page
mentor and team
review and correct the
scope's flow if it
appears to be illogical.
6. Configuration 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
29 | Page
III. Software Requirement Specification
1. Product Overview
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.1 Diagram(s)
31 | Page
32 | Page
Figure 5: Use case diagram [https://i.imgur.com/T1fr7W3.png]
2.2.2 Description
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
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
2 System statistic Main dashboard Statistics on the number of Uni CnB system projects,
39 | Page
users, and sponsors
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
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.
17 Edit project Project editing Edit project name, description, budget, status
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
36 View project Project Info - View the project's transaction point through each cycle.
point transaction Point transaction
38 View project task Project Info - View the list of project's task indicator reports.
indicator Task
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
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.
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
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
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
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
15 Choose receive Receive point Choose this option to receive point points from other
point members.
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
20 Edit profile Profile detail - Edit user information: Name, email, phone number,
edit Facebook, …
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
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.
34 Use voucher Voucher Gift Open voucher gift code to use it.
code Using
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.
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
49 | Page
Feature System
# Description
Function
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)
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.
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.
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:
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.
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.
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
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.
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.
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.
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.
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.
● 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
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
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
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
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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.
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
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
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
▪ Joined date
113 | Page
Figure 39:
● Function Details:
o Data explanation: The sponsor profile includes the
following information:
▪ Name: the name of the sponsor.
114 | Page
▪ Only admins can view sponsor profiles.
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.
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
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
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
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.
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.
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.
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.
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."
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.
135 | Page
▪ The system updates the status of the salary cycle to
"end.".
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
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.
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
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.
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
▪ Point value
▪ Number of vouchers
▪ 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
▪ Point value
▪ Number of vouchers
▪ Description
o Validation:
▪ Voucher name: Required field, maximum 50
characters
▪ Expiry date: Required field, date format
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.
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
▪ Point value
▪ Number of vouchers
▪ 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.
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
▪ 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.
152 | Page
▪ The admin reviews the voucher details and can use
this information to manage the voucher program
more effectively.
3.11 Using point
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
▪ 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
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.
5 Requirement Appendix
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.
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
162 | Page
IV. Software Design Description
1. System Design
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
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.
Figure 61:
168 | Page
Figure 62:
In this diagram, both the project manager and admin actors can call the
updateProject() function on the system.
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]
In this diagram, we have three actors: member, project manager, and admin.
170 | Page
3.2.3 Get list of projects [UC-11]
171 | Page
Figure 66:
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:
175 | Page
Figure 69:
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]
178 | Page
3.3.2 Change project budget
Figure 70:
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]
Figure 71:
180 | Page
3.5 User management
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.
In this sequence diagram, the admin initiates the process by calling the
createNewAdmin function on the AdminController object.
182 | Page
Figure 73:
● The admin logs in to the system and navigates to the user list.
● 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.
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 system retrieves the current benefit configuration from the database.
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 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]
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.
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]
196 | Page
197 | Page
3.7 Cycle management
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]
● 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
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]
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
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]
● The voucher management system retrieves the voucher data from the voucher
database.
● The voucher management system displays the voucher data to the admin.
● 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
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.
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
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
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.
224 | Page
3.12.4 Get list of project milestone [UC-45]
225 | Page
V. Software testing document
1. Scope of testing
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:
2. Test strategy
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
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
<Test Type1> X X X X
<Test Type2> X X
<Test Type3> X X
230 | Page
VI.
231 | Page