2023.spring - Mobile Based CashFlow - Final Report
2023.spring - Mobile Based CashFlow - Final Report
TRAINING
FPT UNIVERSITY
GSP23SE27
Thái Đức Lợi – Team Leader – SE140060
Trịnh Gia Huy – Team Member – SE140059
Group Members
Nguyễn Phùng Công Danh – Team Member – SE140142
Dương Kim Long – Team Member – SE140175
Supervisor Mr. Nguyễn Thế Hoàng
Capstone Project code SE23SE37
Table of Contents 2
List of Tables 11
List of Figures 14
Acknowledgements 17
Definition and Acronyms 18
I. Project Introduction 19
1. Overview 19
1.1 Project Information 19
1.2 Project Team 19
a. Supervisors 19
b. Team Members 19
2. Product Background 19
3.1 Richdad 20
3.2 Business Tour 20
4. Business Opportunity 21
5. Software Product Vision 21
6. Project Scope & Limitations 21
6.1 Major Features 21
6.2 Limitations 22
II. Project Management Plan 23
1. Overview 23
2
1.1 Scope & Estimation 23
1.2 Project Objectives 24
1.3 Project Risks 25
2. Management Approach 25
2.1 Project Process 25
2.2 Quality Management 26
2.3 Training Plan 27
3. Project Deliverables 27
4. Responsibility Assignments 28
5. Project Communications 28
5.2 External Interface 29
a. FU Contacts 29
6. Configuration Management 29
6.1 Document Management 29
6.2 Source Code Management 30
6.3 Tools & Infrastructures 30
III. Software Requirements Specification 31
1. Product Overview 31
1.1 Guest Requirements 31
1.2 Player Requirements 31
1.3 Admin Requirements 31
2. User Requirements 32
2.1 Actors 32
3
2.2 Use Cases 33
2.2.1 Diagram 33
2.2.2 Use Case List with description 34
3. Functional Requirements 38
3.1 System Functional Overview 38
3.1.1 Screens Flow 38
3.1.2 Functional requirements 40
3.1.4 Non-Screen Functions 57
3.2 Entity Relationship Diagram 57
4. Non-Functional Requirements 66
4.1 External Interfaces 66
4.2 Quality Attributes 66
4.2.1 Usability 66
4.2.2 Reliability 66
4.2.3 Performance 67
4.2.4 Design constraints 67
4.2.5 Security 67
5. Requirement Appendix 67
5.1 Business Rules 67
5.2 Application Messages List 69
IV. Software Design Description 72
1. System Design 72
1.1 System Architecture Overview 72
4
1.2 Package Diagram 73
1.2.1 Web API Package Diagram 73
73
1.2.2 Web Application Package Diagram 74
1.2.3 Game Application Package Diagram 75
2. Database Design 76
3. Detailed Design 86
3.1 Start game match Feature 86
3.1.1 Class Diagram 86
3.1.2 Class Specification 87
3.1.3 Start Game Sequence Diagram 88
3.1.4 Join Room Sequence Diagram 89
3.1.5 Host Room Sequence Diagram 90
3.2 Buy Item In Shop Feature 91
3.2.1 Class Diagram 91
3.2.2 Class Specification 91
3.2.3 Get Asset in Shop Sequence Diagram 92
3.2.4 Buy Character Sequence Diagram 93
3.3 Change outfit Feature 94
3.3.1 Class Diagram 94
3.3.2 Class Specification 94
3.3.3 Get Player Asset Sequence Diagram 95
3.3.4 Update Character Selected Sequence Diagram 96
5
3.4 Change Job Feature 97
3.4.1 Class Diagram 97
3.4.2 Class Specification 97
3.4.3 Get Job Sequence Diagram 98
3.4.3 Update Player Job Sequence Diagram 99
3.5 Play Game Match Feature 100
3.5.1 Class Diagram 100
3.5.2 Class Specification 100
3.5.3 Get Title Sequence Diagram 103
3.5.4 Get Dreams Sequence Diagram 104
3.5.5 Get Event Card Sequence Diagram 105
3.6 Manage Event Card Feature 106
3.6.1 Class Diagram 106
3.6.2 Class Specification 106
3.6.3 Create event card Sequence Diagram 107
3.6.4 Update event card Sequence Diagram 108
3.6.5 InActive event card Sequence Diagram 109
3.7 Manage Dream Feature 110
3.7.1 Class Diagram 110
3.7.2 Class Specification 110
3.7.3 Update dream Sequence Diagram 111
3.8 Manage Game Account Feature 112
3.8.1 Class Diagram 112
6
3.8.2 Class Specification 112
3.8.3 Create game account Sequence Diagram 113
3.8.4 Update game account Sequence Diagram 114
3.8.5 Inactive game account Sequence Diagram 115
3.9 Manage Job Feature 116
3.9.1 Class Diagram 116
3.9.2 Class Specification 116
3.9.3 Update Job Sequence Diagram 117
3.10 Match History Feature 118
3.10.1 View History Sequence Diagram 118
3.10.2 Create Match History 119
3.10.3 Update Match History 120
3.11 Manage Asset Feature 121
3.11.1 Class Diagram 121
3.11.2 Class Specification 121
3.11.3 Manage asset Sequence Diagram 122
4. Game Design 123
4.1 Concept Board 123
4.2 Art 123
4.2.1 Art Button 123
4.2.2 Art UI 127
4.2.3 Art Character 130
4.3 Game Feature 132
7
4.3.1 Control Character 132
4.3.2 Create an online match 134
4.3.3 Play Game 134
4.3.4 Owning and changing outfits 140
4.3.5 Change Job 143
4.3.6 Build map and chessboards 143
4.3.7 Make UI for game 144
4.3.8 Add sounds 147
4.3.8 Game optimization 148
V. Software Testing Documentation 149
1. Overall Description 149
1.1 Test Scope 149
1.2 Test Model 149
1.3 Testing Levels 149
2. Test Plan 149
2.1 Test Stages 149
2.2 Resources 149
2.3 Test Milestones 150
3. Test Cases and Test Reports 150
VI. Release Package & User Guides 151
1. Deliverable Package 151
1.1 Source codes & documents 151
1.2 Known Issues, Limitations & Restrictions 151
8
2. Installation Guides 152
2.1 System Requirements 152
2.1.1 Web application 152
2.1.2 Game application 152
2.2 Setup Files 152
2.3 Installation Instruction 153
2.3.1 Setup Database 153
2.3.2 Setup Backend API 153
2.3.3 Setup Management Web 155
3 User Manual 157
3.1 Overview 157
3.2 Application Usage 157
3.2.1 Guest register account 157
3.2.2 Player login into game 159
3.2.3 Create name and choose job 159
3.2.3 Talk npc to switch scene lobby 160
3.2.4 Player View list room and join or create room 160
3.2.5 Play game 161
3.2.6 Roll Dice 162
3.2.7 Do Ratrace event 162
3.2.8 View financial report 164
3.2.9 Move out Fasttrack 165
3.2.10 Do event in Fasttrack 165
9
3.2.11 View financial report in Fasttrack 166
3.2.12 Finish game 167
3.2.13 View match history 169
3.2.14 Buy item 170
3.2.15 Change outfit 171
3.2.16 Admin login 173
3.2.17 Admin Create Event Card 174
3.2.18 Admin update event card 175
3.2.19 Admin delete event card 177
3.2.20 Admin update job 178
3.2.21 Admin update dream 179
3.2.22 Admin create game account 180
3.2.23 Admin update game account 182
3.2.24 Admin delete game account 183
3.2.25 Admin Update asset 184
10
List of Tables
11
Table 21 - Dream Management Function 45
Table 22 - Event Card Management Function 50
Table 23 - Game Account Management Function 51
Table 24 - Asset Management Function 52
Table 25 - View Match History Function 52
Table 26 - Invitation Management Function 53
Table 27 - Invitation Management Function 53
Table 28 - Play Game Function 54
Table 29 - Change Outfit Function 54
Table 30 - Edit Settings Function 55
Table 31 - Change Job Function 55
Table 32 <Screen authorization> Web application and Game application 57
Table 33 - Non-screen functions 57
Table 34 - Logic entities and attributes description 66
Table 35 - Business rules 69
Table 36 - Application messages 71
Table 37 - Table Data Descriptions 78
Table 38 - Attribute Data Description 86
Table 39 - Start Game Service Class Specification 87
Table 40 - Buy Item Service Class Specification 92
Table 41 - Change outfit Service Class Specification 95
Table 42 - Change job Service Class Specification 98
Table 43 - Play game Service Class Specification 101
12
Table 44 - Player Service Class Specification 102
Table 45 - Game board Service Class Specification 103
Table 46 - Manage event card Service Class Specification 107
Table 47 - Mange dream Service Class Specification 110
Table 48 - Manage game account Service Class Specification 112
Table 49 - Mange Job Service Class Specification 116
Table 50 - Manage Asset Service Class Specification 121
Table 51 - Test Stages 149
Table 52 - Resources 150
Table 53 - Test Milestones 150
Table 54 - Source codes & documents 151
Table 55 - <System Requirements> Web application 152
Table 56 - <System Requirements> Software requirement 152
13
List of Figures
14
Figure 22 - Get Player Asset Sequence Diagram 95
Figure 23 - Update Character Selected Sequence Diagram 96
Figure 24 - Change Job Feature Class Diagram 97
Figure 25 - Get Job Sequence Diagram 98
Figure 26 - Update Player Job Sequence Diagram 99
Figure 27 - Play Game Match Feature Class Diagram 100
Figure 28 - Get Title Sequence Diagram 103
Figure 29 - Get Dreams Sequence Diagram 104
Figure 30 - Get Event Cards Sequence Diagram 105
Figure 31 - <Class Diagram> Admin manage event card 106
Figure 32 <Sequence Diagram> Admin create event card 107
Figure 33 - <Sequence Diagram> Admin update event card 108
Figure 34 - <Sequence Diagram> Admin inactive event card 109
Figure 35 - <Class Diagram> Admin manage dream 110
Figure 36 - <Sequence Diagram> Admin update dream 111
Figure 37 - <Class Diagram> Admin manage game account 112
Figure 38 - <Sequence Diagram> Admin create game account 113
Figure 39 - <Sequence Diagram> Admin update game account 114
Figure 40 - <Sequence Diagram> Admin inactive game account 115
Figure 41 - <Class Diagram> Admin update job 116
Figure 42 - <Sequence Diagram> Admin update job 117
Figure 43 - <Sequence Diagram> view history 118
Figure 44 - <Sequence Diagram> Create Match history 119
15
Figure 45 - <Sequence Diagram> Update Match history 120
Figure 46 - <Class Diagram> Mange asset feature 121
Figure 47 - <Sequence Diagram> Admin update asset 122
Figure 48 - Setup Backend API 153
Figure 49 - Setup Backend API 154
Figure 50 - Setup Backend API 154
Figure 51 - Setup Backend API 155
Figure 52 - Setup Management Web 155
Figure 53 - Setup Management Web 156
Figure 54 - Setup Management Web 156
16
Acknowledgements
First, we would like to express our greatest gratitude to our supervisor Mr. Nguyễn Thế
Hoàng for their guidance throughout the whole project. Their suggestions and
recommendations have elevated the overall quality of the project.
Secondly, we would like to express our sincere thanks to Mr. Lâm Hữu Khánh Phương
for his support as well as enthusiastically answering the team's questions about the
technical issues of the project.
Through the process of completing this capstone project, we would like to pay respect
to:
- FPT University Lecturers who have shared us with precious knowledge and guided
us when we
first stepped into FPT University.
- Thanks to Mr. Thế Hoàng, Mr. Khánh Phương, Ms. Hương, Ms. Hồng and all other
lecturers for pointing out the flaw in our project and providing constructive feedback
to improve the project's quality.
- Finally, special thanks to Mr. Hoàng the direct supervisors who helps us a lot about
technologies, business, and documents.
Last but not least, we want to say thank you to our family and friends who helped us
to complete this project.
Due to the lack of experience and unfamiliarity with some technology using in the
project, mistakes are inevitable. We hope people will overlook and forgive us for our
mistakes.
17
Definition and Acronyms
Acronym Definition
BA Business Analysis
BR Business Rule
PM Project Manager
UC Use Case
BE Backend
FE Frontend
Table 1 - Definition and Acronyms
18
I. Project Introduction
1. Overview
1.1 Project Information
• Project name: Moblie-based Cashflow Boardgame
• Project code: SE23SE37
• Group name: GSP23SE27
• Software type: Game Application
Table 2 - Supervisors
b. Team Members
2. Product Background
The Mobile-based Cashflow Board Game is a game that involves learning to manage
the player’s money and wealth by playing a game almost like billionaire chess and the
19
player must learn how to use their money wisely. most reasonable to win. The game
will be updated with many versions and constantly adjusted to make it best suited for
new and old players. And in the future, the game will aim to create a community that
allows players to help each other develop in the game and in real life.
3. Existing Systems
3.1 Richdad
● Link: https://www.richdad.com/promotions/cashflow-classic-evergreen
● Description: The website richdad.com is the website of the author of the book
"Rich Dad, Poor Dad" by author Robert Kiyosaki. An aggregate website
including blogs, sales, courses... and even the game Cashflow for users to
experience before buying the board game of the same name.
● System actor:
+ Users: Go to see the services you need to use.
● Features:
+ Users: view and buy in shop, view blog, play game, view course.
● Advantage and Disadvantage
+ Advantages: Safe, diverse products, have many features, friendly interface.
+ Disadvantages: There is no comment section for users to exchange with each
other.
3.2 Business Tour
● Link: Business Tour - Board Game with Online Multiplayer on Steam
(steampowered.com)
● Description: The Game Business Tour is a free online game. with gameplay
similar to the billionaire board game, and can change the pieces, dice and
collect items to redeem in-game rewards.
● System actor:
+ Player: Play game.
● Features:
+ Player: Play game, change character, change dice, choose chessboard...
20
● Advantage and Disadvantage
+ Advantages: Free to play, easy to play, have many features, friendly interface.
+ Disadvantages: There is not many game mod, Player can use real money to
buy support items in the match that makes the game unbalanced.
4. Business Opportunity
Currently, in the World in general and Vietnam in particular, the mobile game market is
growing rapidly and the number of young people who want to learn how to control
money has increased quite a lot. So now is a good opportunity to make a game that is
both entertaining and has practical applications to apply to live. Then this game is the
first step to targeting this potential market.
5. Software Product Vision
Learns knowledge and has practical applications to apply to live. And to do this, first of
all, this game will try to roll out more updates and new modes for the game that is
more suitable for real life. Second, create a youtube channel to post tutorial videos
and analyses for every player. And finally, create communities on social networking
sites to connect people, help each other, exchange and share their own experiences
and learn from the experiences of other players.
6. Project Scope & Limitations
6.1 Major Features
● Guest:
+ FE-01: Register account
● Moderator:
+ FE-02: Manage event cards
+ FE-03: Manage users
+ FE-04: Manage game mod
+ FE-05: Manage job
+ FE-06: Manage dream
+ FE-07: Manage asset
+ FE-08: Manage game account
● Player:
21
+ FE-09: Create room
+ FE-10: Join room
+ FE-11: Play game
+ FE-12: View history
+ FE-13: View shop
+ FE-14: Buy outfit in shop
+ FE-15: Change outfit
+ FE-16: Change job
6.2 Limitations
# Limitations
LI-01 The server can only accommodate up to 20 people
LI-02 There are not many skins and no chessboard concepts for players
to change
LI-03 Some unimportant features are still incomplete
Table 4 - Limitations
22
II. Project Management Plan
1. Overview
1.1 Scope & Estimation
# WBS Item Complexity Est. Effort
(man-days)
1 Requirement analysis 12
1.1 Define background and context of product Complex 7
1.2 Find problems of users Medium 2
1.3 Existed system analysis Simple 1
1.4 Business opportunity analysis Medium 2
2 Technology training 42
2.1 Learn .Net API framework Complex 6
2.2 Learn ReactJS framework Complex 6
2.3 Learn Unity and Photon fusion Complex 30
3 Workspace setup 7
3.1 Setup resources storage workspace Medium 3
3.2 Setup resources and version control Medium 4
4 Document writing 35
4.1 Write project introduction Medium 2
4.2 Write project management plan Medium 3
4.3 Write software requirement specification Complex 6
4.4 Write software design document Complex 6
4.5 Write test document Medium 4
4.6 Write user guide document Medium 4
4.7 Write final document Complex 10
5 Interface design 45
5.1 Design web application interface Complex 25
23
5.2 Design game application interface Complex 20
6 Implementation 97
6.1 Implement authentication/authorization Complex 7
features
6.2 Implement admin features Complex 40
6.5 Implement player features Complex 50
7 Testing 24
7.1 Unit Test Complex 8
7.2 Integration Test Complex 8
7.3 System Test Complex 8
8 Closing 8
8.1 Maintenance Medium 5
8.2 Prepare slides for thesis defence Medium 3
Total Estimated Effort (man-days) 270
Table 5 - Scope & Estimation
1 Reviewing 12 20
2 System Test 42 70
3 Acceptance Test 6 10
Total 60 100%
Table 6 - Project Objectives
24
1.3 Project Risks
# Risk Description Impact Possibility Response Plans
1 High weight points Critical Medium Assign more members and spend
are skewed to more time doing frontend tasks.
Frontend
Table 7 - Project Risks
2. Management Approach
2.1 Project Process
References: https://www.scrum.org/
Figure 1 - Scum process
25
+ Our team does not have any experience in working on the website for patients
which is why we need to directly communicate, research and work to deliver to
customers as soon as possible so that we can get improvement feedback.
● API convention:
o Name the API Route that maps to the entity in the system
o Each API response must return the following general information:
▪ Status code: 200, 204, 400, 401, 404, ...
▪ Status text: fail, success
▪ Total: number of data items have been returned
▪ Data: an array that contains all data items
● Coding convention:
o Set the meaningful names for variables
o Add comments to code can be confusing
o Use Pascal casing for naming Enum, Class and Interface
● Unit Testing: Each member has the responsibility to write a unit test to ensure a
function/method works appropriately.
● Integration Testing: After finishing coding one module/screen both members
working on the client-side and server-side need to execute integration testing to
ensure the module/screen can work smoothly from client-side to server-side.
● System Testing: After finishing coding for whole systems, all team members need
to re-execute all test cases and free tests to ensure the system is working stable.
26
2.3 Training Plan
Training Area Participants When, Duration Waiver Criteria
3. Project Deliverables
Sprint # Sprint objective Duration Deliverable
Authentication Module,
3 User Module, Role Module, 14 days Code & System test cases
Team Module
Donation/Donation
Campaign Module,
5 14 days Code & System test cases
Payment Method Module,
Task Module
Table 9 - Project deliverables
27
4. Responsibility Assignments
Responsibility Thái Đức Lợi Trịnh Gia Huy Dương Kim Long Nguyễn Phùng
Công Danh
Backend for x x
system
Server x x
Game x x x
Other x x x x
Table 10 - Responsibility Assignments
5. Project Communications
● Review
Supervisor 1 documentation Face to
(Nguyen The face,
Working with ● Demonstrate 1 time per
Hoang) and Google
advisor features week
team Meet,
members ● Evaluate progress Messenger
and result
28
members problems Face,
● Ask for help from Messenger,
other members Discord,
● Report working
status to leader
Table 11 - Project Communications
6. Configuration Management
6.1 Document Management
29
6.2 Source Code Management
We choose GitHub to manage our source code. The version control system allows
members to collaboratively work on a source code efficiently, conveniently, and easily
to resolve conflict, especially helpful for looking back in time and quickly identifying
changes a collaborator made.
Source Version
GitHub
Control
Project
Google Drive
Management Tool
Programming
C#
Languages
30
III. Software Requirements Specification
1. Product Overview
1.1 Guest Requirements
For Guests requesting a game involving learning finance. Our game supports the
Vietnamese language to make it easy for players to grasp everything in the game. And
will build a large community of players in the future.
1.2 Player Requirements
For Players who require a game that is more than just a regular board game. A game
can control the character to visit the scene in the game. Create a playroom to play with
other players. Can change job, outfit…
1.3 Admin Requirements
For Admins who require a site to manage in-game resources and players. The admin
website is a website that provides screens to view the list of player accounts. Unlike
normal resource management, our website manages resources according to the game
version and when changing information about resources will not affect the experience.
31
2. User Requirements
2.1 Actors
# Actor Description
2 Player The customers who are responsible for managing projects and
managing payment. Moreover, they can chat and view history
ratings.
3 Guest Guests are customers who can visit the web pages.
Table 14 - Actors list and description
32
2.2 Use Cases
2.2.1 Diagram
33
2.2.2 Use Case List with description
UC02 Login Admin, Player Unauthenticated player login to Cashflow game to verify
role, and give them access to more features in the game.
UC03 Logout Admin, Player This feature allows all players logout the game
UC04 View Profile Admin, Player This feature allows all players view their profile
UC05 Edit Profile Admin, Player This feature allows players update their profile
UC06 View Shop Player This feature allows players view shop
UC07 Buy Item Player This feature allows players buy items in shop
34
UC08 Create Room Player This feature allows players create game room
UC09 Play Game Player This feature allows players can play game when create
room finish
UC10 Change Job Player This feature allows players change job
UC11 Edit Settings Player This feature allows players edit settings in game
UC12 View Inventory Player This feature allows players view inventory
UC13 Change Outfit Player This feature allows players change outfit for character
UC14 View Match History Player This feature allows players view match history
35
UC15 View Asset Admin, Player This feature allows player and admin view asset in game
for player and web for admin
UC16 Edit Asset Admin This feature allows admin edit assets.
UC17 View Game Account Admin, Player This feature allows player and admin view game account
Create Game Admin This feature allows admin create new game account
UC18 Account
UC19 Edit Game Account Admin This feature allows admin edit game account
UC20 View Event Card Admin, Player This feature allows player and admin view event card
UC21 Create Event Card Admin This feature allows admin create new event card
UC22 Edit Event Card Admin This feature allows admin edit event card
36
UC23 View Dream Admin, Player This feature allows player and admin view dream
UC24 Edit Dream Admin This feature allows admin edit dream
UC25 View User Admin This feature allows admin view user
UC26 View Job Admin, Player This feature allows player and admin view job
UC27 Edit Job Admin This feature allows admin edit job
UC28 Join Room Player This feature allows player join already room
UC29 Play Game Player This feature allows players play game
37
3. Functional Requirements
3.1 System Functional Overview
3.1.1 Screens Flow
3.1.1.1 Game Application Screen Flow
38
3.1.1.2 <Admin> Web Application Screen Flow
39
3.1.2 Functional requirements
3.1.2.1 User Management
40
Credit card loan payments Image url:
Shopping costs + Type: Text field (string)
Other costs + Max Length= 200
Child rearing costs Salary:
Cash + Type: Text field (double)
Mortgage debt Tax:
Car debt + Type: Text field (double)
Credit card debt Paying home loan interest:
Instalment purchase debt + Type: Text field (double)
Car loan payment:
+ Type: Text field (double)
Credit card loan payments:
+ Type: Text field (double)
Shopping costs:
+ Type: Text field (double)
Other costs:
+ Type: Text field (double)
Child rearing costs:
+ Type: Text field (double)
Cash:
+ Type: Text field (double)
Mortgage debt:
41
+ Type: Text field (double)
Car debt:
+ Type: Text field (double)
Credit card debt:
+ Type: Text field (double)
Instalment purchase debt:
+ Type: Text field (double)
Table 17 - Job Manage Function
3.1.2.3 Authenticate
42
Password:
+ Type: text field(string)
+ Max Length= 20
Table 18 - Authenticate Function
43
+ Max Length= 20
Address:
+ Type: text field(string)
+ Max Length= 300
Phone:
+ Type: text field(string)
+ Max Length= 10
Table 19 - Profile Management Function
3.1.2.5 Register
44
+ Max Length= 20
Confirm password:
+ Type: text field(string)
+ Equal with password
Table 20 - Register Function
45
3.1.2.7 Event Card Management
46
Down pay:
+ Type: text field (double)
Dept:
+ Type: text field (double)
Cash flow:
+ Type: text field (double)
Trading range:
+ Type: text field (string)
+ Max Length= 50
Event description
+ Type: text field (string)
+ Max Length= 500
Event type:
+ Type: text field (decimal)
+ Max Length = 50
Action:
47
+ Type: text field (int)
3 Admin Update event Update event id id: BR-34
card card
Event name + Type: text field(string) BR-32
Image url + Max Length= 24 BR-37
Account Name Event name: BR-36
Cost + Type: text field(string)
Down pay + Max Length= 50
Dept Image url:
Cash flow + Type: text field(string)
Trading range + Max Length= 200
Event description Account Name:
Event type + Type: text field(string)
Action + Max Length= 50
Game mod id Cost:
+ Type: text field (decimal)
Down pay:
48
+ Type: text field (decimal)
Dept:
+ Type: text field (decimal)
Cash flow:
+ Type: text field (decimal)
Trading range:
+ Type: text field (string)
+ Max Length= 50
Event description
+ Type: text field (string)
+ Max Length= 500
Event type:
+ Type: text field (decimal)
Action:
+ Type: text field (int)
Game mod id:
49
+ Type: text field (int)
4 Admin Delete event card Delete event id BR-37
card
Table 22 - Event Card Management Function
50
account account Account type + Type: text field(string) BR-38
+ Max Length= 50
Account type:
+ Type: text field(string)
+ Max Length= 50
Table 23 - Game Account Management Function
51
+ Type: text field(double)
Description:
+ Type: text field(string)
+ Max Length= 500
Table 24 - Asset Management Function
3.1.2.11 Shop
52
2 Player Buy item Buy item in shop BR-20
BR-07
Table 26 - Invitation Management Function
3.1.2.12 Lobby
53
player create BR-14
room or join BR-15
room BR-19
BR-21
BR-24
BR-25
BR-26
BR-27
BR-28
Table 28 - Play Game Function
54
3.1.2.15 Edit settings
55
3.1.3 Screen Authorization
3.1.3.1 Web and Game Application Screen Authorization
Register(Game) x
Login(Web) x
Login(Game) x
Dashboard(Web) x
Job selection(Game) x
Lobby(Game) x
History(Game) x
Achievement(Game) x
Shop(Game) x
Inventory(Game) x
View dashboard(Web) x
Information(Game) x
56
List job(Web) x
List dream(Web) x
57
Figure 6 - Conceptual Entity Relationship Diagram
● Logical ERD
58
Figure 7 - Logical Entity Relationship Diagram
59
address Address of user
60
update_by Unique identifier of user
61
trading_range Trading of event card
62
Game_match match_id {PK} Unique identifier of achievement
63
create_at Game report creation date
64
update_by Unique identifier of user
65
value value of job account
4. Non-Functional Requirements
4.1 External Interfaces
4.1.1 User Interfaces
66
4.2.3 Performance
- All common response time is under 5 seconds (except define pickup points
feature).
4.2.4 Design constraints
- Application use Vietnamese
- Website use English
4.2.5 Security
- Each role of user has a specific permission to interact with system
5. Requirement Appendix
5.1 Business Rules
ID Rule Definition
BR-03 When first login game, player obligatory create name and job first
BR-04 Player and admin can view profile after login to system
67
BR-11 Email must be true format Ex: [email protected]
BR-13 Player have to wait other player end turn to continue roll dice
BR-19 Player or other player cannot start match if don’t ready in room
BR-22 Player
. must be talk to npc to create/join room
BR-23 Player only one way to have money when finish match
BR-30 Player only change job if choose job and create name before
68
BR-31 Game account name must be unique
3 MSG03 Toast Input username fields are Tên đăng nhập không
69
message invalid được bé hơn 6 và lớn
hơn 20
6 MSG06 Toast Input password fields are Mật khâu không được
message invalid bé hơn 8
70
13 MSG13 Toast Update game account Update game account
message successfully successfully
71
IV. Software Design Description
1. System Design
1.1 System Architecture Overview
- The Cashflow Board game system consists of two components, the .NET Core
web server provides APIs, Reactjs is used for the web application. Web
application is provide for admin.
- Cashflow Boardgame System uses several third-party services such as FireBase
Storage to store Image Ui in game. Use Unity to build overall game , use photon
to build server for game.
72
1.2 Package Diagram
1.2.1 Web API Package Diagram
73
1.2.2 Web Application Package Diagram
74
1.2.3 Game Application Package
Diagram
75
2. Database Design
76
Figure 13 - MongoDB Database Design
Table Descriptions
No Table Description
01 User_role Describe role in the system
02 Game_server Describe game server in the system
03 Game Describe game in the system
04 Game_mod Describe game mod in the system
05 User_account Describe user account in the system
06 Asset_type Describe asset type in the system
07 Asset Describe asset in the system
08 User_asset Describe user asset in the system
77
09 Game_match Describe game match in the system
10 Participant Describe participant in the system
11 Game_report Describe game report in the system
12 Event_card Describe event card in the system
13 Job_card Describe job card in the system
14 Dream Describe dream in the system
15 Tile Describe tile in the system
16 Game_account Describe game account in the system
Table 37 - Table Data Descriptions
78
create_at Game create date datetime No
79
game_id {FK} Foreign key, game int No
identifier
80
date
81
asset_type_id{FK} Unique identifier of int No
asset type
82
account
83
event card
84
race_type Type of tile race string No
85
status Status of job card bool No
3. Detailed Design
3.1 Start game match Feature
3.1.1 Class Diagram
86
3.1.2 Class Specification
a. Start Game Service
No Method Description
1 JoinLobby(NetworkRunner runner) handles join lobby
2 JoinRoom(string roomName) handles join room
3 OnSessionListUpdated(NetworkRun handles update list rooms
ner runner, List<SessionInfo> information
sessionList)
4 OnPlayerJoined(NetworkRunner handles player joined room
runner, PlayerRef player)
5 OnPlayerLeft(NetworkRunner handles player left room
runner, PlayerRef player)
6 CheckAllPlayerIsReady() handle all players is ready
7 UpdatePlayerList() handles start game
8 SetPlayerNetworkData() handles set player information
9 Spawned() handles player data after spawned
10 SetPlayerName_RPC(string name) handles player name
11 SetReady_RPC(bool isReady) handles player ready
12 LeftRoom_RPC(bool isLeftRoom) handles player left room
Table 39 - Start Game Service Class Specification
87
3.1.3 Start Game Sequence Diagram
88
3.1.4 Join Room Sequence Diagram
89
3.1.5 Host Room Sequence Diagram
90
3.2 Buy Item In Shop Feature
3.2.1 Class Diagram
91
No Method Description
1 Purchase() Send request to server for buy the
item
Table 40- Buy Item Service Class Specification
92
3.2.4 Buy Character Sequence Diagram
93
3.3 Change outfit Feature
3.3.1 Class Diagram
94
No Method Description
1 Load_All_My_Assets() Send request to server to get all player’s asset
2 SelectCharacter() Send request to server to update lasted
character (outfit) selected
3 ChangeOutfit(Character_Item) Update 3D model in scene and apply
animation to new model.
Table 41 - Change outfit Service Class Specification
95
3.3.4 Update Character Selected Sequence Diagram
96
3.4 Change Job Feature
3.4.1 Class Diagram
No Method Description
1 Loading_Job_Data() send request to API to get Job
information
97
2 UpdateLastJobSelected() send update request to API to
update last job user selected
3 UpdateAccount() send update request to API to
update player information
Table 42 - Change job Service Class Specification
98
3.4.3 Update Player Job Sequence Diagram
99
3.5 Play Game Match Feature
3.5.1 Class Diagram
No Method Description
1 ApplyBigDeal_FatRace(Big_Deal_Card) Apply the deal when player click to
button accept during play time
100
2 ApplyJobToFinancial(Job_Card) Apply the Job when player click to
button accept after load in to
scene
3 ApplySmallDeal(Small_Deal_Card,int Apply the deal when player click to
amount) button accept during play time
4 LoadAllDeal() Send request to API to get all event
card and filter the event card
5 CheckPlayerWinner() Checking the winner, if exist,
EndGame Flag will set to true.
6 UpdateProfilePlayer() Update information each player in
UI
7 RPC_nextTurn(Turn playerTurn) Handles check to next turn
8 SpawnAllPlayers() Handles spawn all player
Table 43 - Play game Service Class Specification
b. Player Service
No Method Description
1 OnRollDice() handles player click roll dice
2 RollTheDice() handles start roll dice
3 SelectJoB() handles player’s job
4 MoveCameraOnCirle() handles camera on board game
5 MoveToFatRace() handles player move rat race to fat race
6 OnStepChanged() handles player’s step changed
7 ShowResult() handles show player’s result
8 Move(Player player, int step, handles player’s move
101
BoardType boardType)
9 isDreamTile(Tile tile) handles check dream tile
10 RPC_MovingToFatRace(RpcInfo info = handles player move to fat race in
default) multiplayer
11 MoveFatRace(Player player) handles player move rat race to fat race
12 RPC_Moving(BoardType boardType , handles player move in multiplayer
RpcInfo info = default)
13 MoveToNextTiles(Vector3 nextTiles) handles player move to next tile
14 PopupPanel(Tile tile) handles show popup of event
15 Dream(int pos) handles player’s dream
16 Divorce() handles player's divorce
17 CashFlowDay() handles player's cash flow day
18 Accused() handles player's accused
19 Taxes() handles player's taxes
20 Paycheck() handles player's paycheck
21 Doodads() handles player's doodads event
22 DownSize() handles player's downsize event
23 Charity() handles player's charity event
24 Baby() handles player’s baby
Table 44 - Player Service Class Specification
No Method Description
1 SpawnTiles() Spawn the tile to create the board
102
2 Set_Tiles_Type() Set the event type of Tile
3 Spawn_Rat_Race(int NumberTiles_Rat_Race) Spawn the tile in Rat Race with
parameter
4 Load_Dream() Send request to API to get all dream
in match and set dream to tile
5 Spawn_Fat_Race(int NumberTiles_Fat_Race) Spawn the tile in Fat Race with
parameter
Table 45 - Game board Service Class Specification
103
3.5.4 Get Dreams Sequence Diagram
104
3.5.5 Get Event Card Sequence Diagram
105
3.6 Manage Event Card Feature
3.6.1 Class Diagram
No Method Description
1 GetByModIdAsync(id) handles view list of by mod id
106
2 CreateAsync(EventCard) handles create event card
3 UpdateAsync(id, EventCard) handles update event card by id
4 InActiveAsync(id) handles update status of event card to false
Table 46 - Manage event card Service Class Specification
107
3.6.4 Update event card Sequence Diagram
108
3.6.5 Delete event card Sequence Diagram
109
3.7 Manage Dream Feature
3.7.1 Class Diagram
No Method Description
1 GetDreamByModId(id) handles view list of dream by mod id
2 UpdateAsync(id, Dream) handles update a dream
Table 47 - Mange dream Service Class Specification
110
3.7.3 Update dream Sequence Diagram
111
3.8 Manage Game Account Feature
3.8.1 Class Diagram
No Method Description
1 GetAllAsync() handles view list of game account
2 CreateAsync(GameAccount) handles create game account
3 UpdateAsync(id, GameAccount) handles update game account
4 InActiveAsync(id) handles update status of dream to false
Table 48- Manage game account Service Class Specification
112
3.8.3 Create game account Sequence Diagram
113
3.8.4 Update game account Sequence Diagram
114
3.8.5 Delete game account Sequence Diagram
115
3.9 Manage Job Feature
3.9.1 Class Diagram
No Method Description
1 GetAllAsync() handles view list of job card
2 UpdateAsync(id, JobCard) handles update job card
Table 49- Mange Job Service Class Specification
116
3.9.3 Update Job Sequence Diagram
117
3.10 Match History Feature
3.10.1 View History Sequence Diagram
118
3.10.2 Create Match History
119
3.10.3 Update Match History
120
3.11 Manage Asset Feature
3.11.1 Class Diagram
No Method Description
1 GetAllAsync() handles view list of asset
2 UpdateAsync(id, Asset) handles update asset
Table 50 - Manage Asset Service Class Specification
121
3.11.3 Update Asset Sequence Diagram
122
4. Game Design
https://docs.google.com/document/d/1I8RrIUQ4vokPDTAnUo6cf-1owmzkzguPYsv0b-
6ZOnw/edit?usp=sharing
4.1 Concept Board
4.2 Art
4.2.1 Art Button
Drawing button pictures:
123
Image 2: Invetory button
124
Image 5: Achievement button
125
Image 8: Match history button
126
Image 11: Roll dice button
4.2.2 Art UI
● Some picture was make by AI
● Drawing UI picture:
127
Image 15: Background login/register
128
Image 17:Some of the pictures are used as event card in the match
Image 18: Some of the pictures are used as dream in the match
129
Image 19: Art show basic info player
130
Image 22: Player outfit
● Player job:
131
● Npc: NPCs will appear in the map so players can interact or do quests:
132
4.3.1.2 Player's fast running
Description: Player will run quickly towards the joystick when pressing the button on
the screen.
Content: Made for the player to run fast in the direction of the joystick that the player
controls, if not, the player will not run
Image 26: The character runs when the run button is pressed
Image 27: The character runs when the jump button is pressed
133
4.3.2 Create an online match
4.3.2.1 Create a playroom or join a playroom
Description: Players can create or enter an existing playroom to start the match.
Content: Use Photon fusion to make a game server, and use it to create a playroom.
Some pictures:
134
Image 30: Roll the dice and move
135
Image 32: Make a Market event
136
Image 34: Conditions to get out of Fasttrack
137
Image 36: Make an opportunity event
138
Image 38: Earn enough income to win
139
Image 40: Image of players win or lose
140
Image 41: Shop before and after buying outfit
141
Image 42: Before changing outfit
142
Image 44: After changing outfit
143
Image 46: Overall map
4.3.6.2 Chessboard
Description: This is where chess pieces and events appear.
Content: Build a chessboard in the classroom selected in the map.
144
● Making setting UI
● Making match history UI
● Making the job selection screen and create a name for the first player created in
account
● Some UI in game and match
Content: The function buttons are all done.
Image 48:Login UI
145
Image 49:Register UI
146
Image 51:Shop UI
147
4.3.8 Game optimization
Description:
● Optimize UI interface to suit more phone devices.
● Optimize 3D models in the game to reduce capacity and optimize performance.
Content: Adjusted UI to suit many devices.
148
V. Software Testing Documentation
1. Overall Description
1.1 Test Scope
We plan to define test cases in main flow only.
1.2 Test Model
We use Incremental testing for some approaches:
● Each module is required a role to use clearly
● Each module could test at the early stage of the develop process
1.3 Testing Levels
● Testing Level: User Acceptance Test
● Testing Types: Functional Testing, User Interface Testing
2. Test Plan
2.1 Test Stages
Test Level
Type of Test
Unit Integration System Acceptance
Function Testing X
2.2 Resources
Worker Role Specific Responsibilities
149
Nguyễn Phùng Công
Member Planning, execute, verify test result
Danh
TestDocuments\2023.Spring-_-
User Acceptance Test iTranslator-_-Capstone-Project-_-
Test-Report.xlsx
TestCase
Table 56 - Test Cases and Test Reports
150
VI. Release Package & User Guides
1. Deliverable Package
1.1 Source codes & documents
151
2. Installation Guides
2.1 System Requirements
2.1.1 Web application
PC Minimum Recommend
152
2.3 Installation Instruction
2.3.1 Setup Database
Install Sql Server 2019 by following guidelines link:
https://www.thegioididong.com/game-app/huong-dan-cai-dat-sql-server-2019-cuc-
don-gian-chi-1312926
2.3.2 Setup Backend API
+ Install Visual Studio by following guidelines link:
https://thuthuatphanmem.vn/huong-dan-tai-va-cai-dat-visual-studio/
+ Extracting: MobileBasedCashFlowAPI.zip
153
Figure 49 - Setup Backend API
+ Run project
154
Figure 51 - Setup Backend API
155
Figure 53 - Setup Management Web
156
3 User Manual
3.1 Overview
- Admin manage dream, game account, asset , event card and user
- Player can play game, create room, join room, change outfit, view history,
shopping, change job,.
3.2 Application Usage
3.2.1 Guest register account
157
1. Click “đăng ký” button in login scene
2. Enter username: Longdklong
3. Enter email: [email protected]
4. Enter password: 123465789
5. Enter confirm password: 123465789
6. Click “đăng ký” button
158
3.2.2 Player login into game
159
3.2.3 Talk npc to switch scene lobby
160
1. Click “Tham gia” button to join room
2. Click “ Sẵn Sàng “ to start the match
161
3.2.6 Roll Dice
162
1. Click “Chấp Nhận” button to accept envent card
2. Only big deal/small deal card player can click “Từ chối” button to cancel event
163
3.2.8 View financial report
164
3.2.9 Move out Fasttrack
165
1. Click “Chấp nhận” or “Ok” button to do event card in Fasttrack
166
3.2.12 Finish game
167
2. Or player can win game by buy dream
3. Click “Muốn” button to buy dream
168
4. Click “Ok” button to finish match
169
3.2.14 Buy item
170
2. Click button have icon shop
3. Click button “Get” to buy item
4. Item has been purchased will be disappear in shop
171
172
1. Click button have icon Inventory
2. Click button have outfit picture
3. Click back button to see outfit change
173
3.2.17 Admin Create Event Card
174
3. Fill all information
4. Click “Create” button
175
1. Click “edit” icon button on the row want to update
2. Fill all information
3. Click “Update”
176
3.2.19 Admin delete event card
177
3.2.20 Admin update job
178
3. Fill all information
4. Click “Update” button
179
1. Click Dream button in navbar
2. Click “edit” icon button on the row want to update
3. Fill all information
4. Click “Update” button
180
1. Click Game account button in navbar
2. Click “New Game Account” button
3. FIll all information
4. Click “Create” button
181
3.2.23 Admin update game account
182
3.2.24 Admin delete game account
183
2. Click “Yes” button to delete or “No” to cancel
184
1. Click Asset button in navbar
2. Click “edit” icon button on the row want to update
3. Fill all information
4. Click “Update” button
185