KEMBAR78
Capstone: Second-Hand Market | PDF | Software Testing | Use Case
0% found this document useful (0 votes)
32 views204 pages

Capstone: Second-Hand Market

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views204 pages

Capstone: Second-Hand Market

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

MINISTRY OF EDUCATION AND TRAINING

FPT UNIVERSITY

Capstone Project Document


SECOND-HAND MARKET

<2HMarket>
Diep The Sang - Leader - DE140025
Nguyen Phuc Ngoc Thanh - Member- DE140120
Group Members
Hoang Hai Đang - Member - DE140112
Tran Thanh Long - Member - DE140145
Vo Duc Hoang – HoangVD7
Supervisor
Ly Quynh Tran – TranLQ
Capstone Project code SCH

- DaNang, December 2022 –

1|Page
Table of Contents
I. Acknowledgement ................................................................................................................ 11
II. Definition and Acronyms .................................................................................................... 12
III. Project Introduction ........................................................................................................... 12
1. Overview .......................................................................................................................... 12
1.1. Project Information .................................................................................................... 12
1.2. Project team ............................................................................................................... 13
2. Product Background ......................................................................................................... 14
3. Existing Systems .............................................................................................................. 14
3.1 ChoTot ........................................................................................................................ 14
3.2 Chodocu.com .............................................................................................................. 15
4. Business Opportunity ....................................................................................................... 16
5. Software Product Vision .................................................................................................. 16
6. Project Scope & Limitations ............................................................................................ 17
6.1 Major Features ............................................................................................................ 17
6.2 Limitations & Exclusions ........................................................................................... 18
IV. Project Management Plan .................................................................................................. 19
1. Overview .......................................................................................................................... 19
1.1 Scope & Estimation .................................................................................................... 19
1.2 Project Objectives ....................................................................................................... 19
1.3 Project Risks ............................................................................................................... 20
2. Management Approach .................................................................................................... 20
2.1 Project Process ............................................................................................................ 20
2.2 Quality Management .................................................................................................. 21
2.3 Training Plan .............................................................................................................. 22
3. Project Deliverables ......................................................................................................... 22
4. Responsibility Assignments ............................................................................................. 23
4.1 Team & Structures ...................................................................................................... 23
4.2 Responsibility Assignments ....................................................................................... 23
5. Project Communications .................................................................................................. 24
6. Configuration Management.............................................................................................. 25
6.1 Document Management .............................................................................................. 25
6.2 Source Code Management .......................................................................................... 26
6.3 Tools & Infrastructures ............................................................................................... 27
V. Software Requirement Specification .................................................................................. 28

2|Page
1. Product Overview ............................................................................................................. 28
2. User Requirements ........................................................................................................... 28
2.1 Actors.......................................................................................................................... 28
2.2 Use Cases .................................................................................................................... 28
3. Functional Requirements ................................................................................................. 52
3.1 System Functional Overview...................................................................................... 52
3.2 Account services ......................................................................................................... 57
3.3 Profile ......................................................................................................................... 58
3.4 Buyer services............................................................................................................. 62
3.5 Seller services ............................................................................................................. 69
4. Non-Functional Requirements ......................................................................................... 73
4.1 External Interfaces: ..................................................................................................... 73
4.2 Quality Attributes ....................................................................................................... 73
5. Requirement Appendix .................................................................................................... 74
5.1 Business Rules ............................................................................................................ 74
5.2 Common Requirements .............................................................................................. 75
5.3 Application Messages List.......................................................................................... 75
VI. Software Design Document ............................................................................................... 76
1. System Design .................................................................................................................. 76
1.1 System Architecture ................................................................................................... 77
1.2 Package Diagram ........................................................................................................ 85
2. Database Design ............................................................................................................... 87
3. Detailed Design ................................................................................................................ 89
3.1 Class Diagram............................................................................................................ 89
3.2 Class Specifications ................................................................................................... 90
3.3 Sequence Diagrams .................................................................................................... 97
VII. Testing Documentation .................................................................................................. 119
1. Scope of Testing ............................................................................................................. 119
2. Test Strategy................................................................................................................... 119
2.1 Testing Types ........................................................................................................... 119
2.2 Test Levels ................................................................................................................... 120
2.3 Supporting Tools ...................................................................................................... 120
2.4 Test Processes ........................................................................................................... 121
3. Test Plan ......................................................................................................................... 121
3.1 Human Resources ..................................................................................................... 121

3|Page
3.2 Test Environment ..................................................................................................... 122
3.3 Test Milestones ......................................................................................................... 122
4. Test Cases ....................................................................................................................... 123
4.1 Integration and System Test ..................................................................................... 123
5. Detect Log: ..................................................................................................................... 124
6. Test Reports.................................................................................................................... 124
6.1 Unit Test Report 1 .................................................................................................... 124
6.2 API Testing ............................................................................................................... 132
6.3 System Test Case Reports ........................................................................................ 134
VIII. Release Package & User Guides ................................................................................... 136
1. Deliverable Package ....................................................................................................... 136
2. Installation Guides.......................................................................................................... 136
2.1 System Requirements ............................................................................................... 136
2.2 Installation Instruction .............................................................................................. 136
3. User Manual ................................................................................................................... 137
3.1 Web Feature ................................................................................................................. 137
3.1.2 Register .................................................................................................................. 137
3.1.1 Login ...................................................................................................................... 139
3.1.3 Logout .................................................................................................................... 140
3.1.4 Search Product ....................................................................................................... 140
3.1.5 View Product ......................................................................................................... 142
3.1.6 Filter product ......................................................................................................... 145
3.1.7 Manage product to sell .......................................................................................... 152
3.1.8 Post product to sell ................................................................................................ 167
3.1.9 Create auction ........................................................................................................ 170
3.1.10 Manage auction product ...................................................................................... 177
3.1.11 Schedule product auction..................................................................................... 185
3.1.12 View other user’s account ................................................................................... 190
3.1.13 Manage order ....................................................................................................... 192
3.1.15 Buy product ......................................................................................................... 194
3.1.16 Payment ............................................................................................................... 196
3.1.17 Add Favourite product ......................................................................................... 199
3.1.18 Manage favourite product list .............................................................................. 200
3.1.19 Admin manage account ....................................................................................... 202
IX. Conclusion ....................................................................................................................... 203

4|Page
1.Summary of the results of the project have been achieved ............................................. 203
2. Advantages and disadvantages of the software/solution compared to the set goals ...... 203
2.1 Advantages ............................................................................................................... 203
2.2 Disadvantages ........................................................................................................... 203
3. In the next stage.............................................................................................................. 203
X. Appendix References ........................................................................................................ 204

Table of Tables
Table 1: Defition and Acronyms.............................................................................................. 12
Table 2: Supervior.................................................................................................................... 13
Table 3: Team Members .......................................................................................................... 13
Table 4: Project Objectives ...................................................................................................... 19
Table 5: Project Risks .............................................................................................................. 20
Table 6: Tranning Plan............................................................................................................. 22
Table 7: Project Deliverables ................................................................................................... 23
Table 8: Responsibility Assignments....................................................................................... 24
Table 9: Project Communications ............................................................................................ 24
Table 10: Document Management ........................................................................................... 26
Table 11: Tools & Infrastructures ............................................................................................ 27
Table 12: Actors ....................................................................................................................... 28
Table 13: Use cases list ............................................................................................................ 37
Table 14: UC 01 Register ........................................................................................................ 37
Table 15: UC 02 Login ............................................................................................................ 38
Table 16: UC 03 Search product by name ............................................................................... 39
Table 17: UC 04 View product ................................................................................................ 40
Table 18: UC 05 Filter product by category ............................................................................ 40
Table 19: UC 06 Filter product by location ............................................................................. 41
Table 20: UC 07 Manage product to sell ................................................................................. 42
Table 21: UC 08 Post product to sell ....................................................................................... 43
Table 22: UC 09 Manage auction product ............................................................................... 43
Table 23: UC 10 Schedule product auction ............................................................................. 44
Table 24: UC 11 Create auction............................................................................................... 45
Table 25: UC 12 View other user's account information......................................................... 45
Table 26: UC 13 View money in account ................................................................................ 46
Table 27: UC 14 Deposit money into your account ................................................................ 46
Table 28: UC 15 Manage order ............................................................................................... 47
Table 29: UC 16 Buy product .................................................................................................. 48
Table 30: UC 17 Payment ........................................................................................................ 48
Table 31: UC 18 Mange favourite product list ........................................................................ 49
Table 32: UC 19 Add favourite product .................................................................................. 49
Table 33: UC 20 Manage messages ......................................................................................... 50
Table 34: UC 21 Manage account ........................................................................................... 50

5|Page
Table 35: UC 22 Manage category .......................................................................................... 51
Table 36: UC 23 Manage all posting ....................................................................................... 51
Table 37: UC 24 Statistics and Report ..................................................................................... 52
Table 38: UC 25 Manger all account ....................................................................................... 52
Table 39: Screen Descriptions ................................................................................................. 54
Table 40: Screen Authoriztion ................................................................................................. 55
Table 41: Non-Screen Functions ............................................................................................. 56
Table 42: Entities Description ................................................................................................. 57
Table 43: Domanin bussiness rules.......................................................................................... 74
Table 44: Specific bussiness rule ............................................................................................. 75
Table 45: Application Messages List ....................................................................................... 75
Table 46: Table Descriptions ................................................................................................... 88
Table 47: Users ........................................................................................................................ 90
Table 48: Posts ......................................................................................................................... 92
Table 49: Origins ..................................................................................................................... 92
Table 50: PostImages ............................................................................................................... 92
Table 51: Categories ................................................................................................................ 93
Table 52: Likes ........................................................................................................................ 93
Table 53: PostCondition .......................................................................................................... 94
Table 54: PostActive ................................................................................................................ 94
Table 55: Warranties ................................................................................................................ 94
Table 56: Carts ......................................................................................................................... 95
Table 57: Transactions ............................................................................................................. 95
Table 58: Order ........................................................................................................................ 96
Table 59: BidOrder .................................................................................................................. 97
Table 60: Scope of Testing .................................................................................................... 119
Table 61: Test Levels ............................................................................................................. 120
Table 62: Hardware................................................................................................................ 120
Table 63: Software ................................................................................................................. 121
Table 64: Human Resources .................................................................................................. 122
Table 65: Test Environment................................................................................................... 122
Table 66: Test Milestones ...................................................................................................... 123
Table 67: Integration and System Test .................................................................................. 123
Table 68: Detect Log ............................................................................................................. 124
Table 69: Unit Test Report 1 ................................................................................................. 132
Table 70: Open API UI .......................................................................................................... 132
Table 71: Open API Reques UI ............................................................................................. 133
Table 72: Deliverable Package .............................................................................................. 136
Table 73: Hardware Requirements ........................................................................................ 136
Table 74: Software Requirement ........................................................................................... 136

Table of Figures
Figure 1: ChoTot System ......................................................................................................... 14
Figure 2: Chodocu.com System ............................................................................................... 15
Figure 3: Major Features .......................................................................................................... 18

6|Page
Figure 4: Project Process ......................................................................................................... 21
Figure 5: Quality Management ................................................................................................ 22
Figure 6: Project Deliverables ................................................................................................. 22
Figure 7: Project Organization ................................................................................................. 23
Figure 8: Document Management 1 ........................................................................................ 25
Figure 9: Document Management 2 ........................................................................................ 25
Figure 10: Second-Hand Market Subsystem ........................................................................... 29
Figure 11: Use case for Manage Account ................................................................................ 30
Figure 12: Use case for Manage product posts ........................................................................ 31
Figure 13: Use case for Manage Messages .............................................................................. 32
Figure 14: Use case for Manage Order .................................................................................... 33
Figure 15: Use case for Manage E-wallet ................................................................................ 34
Figure 16: Use case for System Management.......................................................................... 35
Figure 17: Screens Flow .......................................................................................................... 53
Figure 18: Entity Relationship Diagram .................................................................................. 56
Figure 19: Login ...................................................................................................................... 57
Figure 20: Register ................................................................................................................... 58
Figure 21: Change password .................................................................................................... 59
Figure 22: View Profile ........................................................................................................... 60
Figure 23: Edit Profile ............................................................................................................. 60
Figure 24: Manage favourite product list................................................................................. 61
Figure 25: View other user's account profile ........................................................................... 62
Figure 26: View all product to buy .......................................................................................... 63
Figure 27: Search product ....................................................................................................... 64
Figure 28: Filter product by category ...................................................................................... 64
Figure 29: Filter product by location ....................................................................................... 65
Figure 30: View product detail ................................................................................................ 66
Figure 31: Buy product ............................................................................................................ 67
Figure 32: Auction product ...................................................................................................... 68
Figure 33: Manage order .......................................................................................................... 69
Figure 34: Create post to sell ................................................................................................... 70
Figure 35: Create post to auction ............................................................................................. 70
Figure 36: Manage product to sell ........................................................................................... 71
Figure 37: Manage post auction ............................................................................................... 72
Figure 38: Schedule auction..................................................................................................... 73
Figure 39:User interface .......................................................................................................... 76
Figure 40: Application Architecture ........................................................................................ 77
Figure 41: Serverless Architecture........................................................................................... 78
Figure 42: Cognito ................................................................................................................... 78
Figure 43: SQS Service ............................................................................................................ 79
Figure 44: SES Service ............................................................................................................ 79
Figure 45: Lambda function..................................................................................................... 80
Figure 46: Type Graphql .......................................................................................................... 80
Figure 47: Apollo server .......................................................................................................... 81
Figure 48: MySQL ................................................................................................................... 82
Figure 49: NodeJS.................................................................................................................... 82

7|Page
Figure 50: JavaScript ............................................................................................................... 83
Figure 51: Flow of recommendation system ........................................................................... 83
Figure 52: Flow of building model .......................................................................................... 84
Figure 53: System Architecture ............................................................................................... 84
Figure 54: Package Diagram .................................................................................................... 85
Figure 55: Database Design ..................................................................................................... 87
Figure 56: Class Diagrams ....................................................................................................... 89
Figure 57: Guest Register ........................................................................................................ 97
Figure 58: Guest Search product by name ............................................................................... 97
Figure 59: Guest View product ................................................................................................ 98
Figure 60: User Login/Register ............................................................................................... 99
Figure 61: User Forgot password ........................................................................................... 100
Figure 62: User Logout .......................................................................................................... 100
Figure 63: User View product................................................................................................ 101
Figure 64: User Search product by name ............................................................................... 101
Figure 65: User Manage product to sell ................................................................................. 102
Figure 66: User Post product to sell ....................................................................................... 102
Figure 67: User Create auction .............................................................................................. 103
Figure 68: User Manage auction product............................................................................... 103
Figure 69: User View other user's account infomation .......................................................... 104
Figure 70: User Manage order ............................................................................................... 104
Figure 71: User Buy product.................................................................................................. 105
Figure 72: User Payment ....................................................................................................... 105
Figure 73: User Add favourite product .................................................................................. 106
Figure 74: User Manage favourite product list ...................................................................... 106
Figure 75: User Manage account ........................................................................................... 107
Figure 76: Manager Login ..................................................................................................... 107
Figure 77: Manager Logout ................................................................................................... 108
Figure 78: Manage View category ......................................................................................... 108
Figure 79: Manage Create category ....................................................................................... 109
Figure 80: Manager Update category .................................................................................... 109
Figure 81: Manager Delete category...................................................................................... 110
Figure 82: Manager View all posting .................................................................................... 110
Figure 83: Manager Create posting........................................................................................ 111
Figure 84: Manager Update posting ...................................................................................... 111
Figure 85: Manager Delete posting........................................................................................ 112
Figure 86: Admin Login ........................................................................................................ 112
Figure 87: Manager Logout ................................................................................................... 113
Figure 88: Admin View category .......................................................................................... 113
Figure 89: Admin Create category ......................................................................................... 114
Figure 90: Admin Update category........................................................................................ 114
Figure 91: Admin Delete Category ........................................................................................ 115
Figure 92: Admin View all posting ....................................................................................... 115
Figure 93: Admin Create posting........................................................................................... 116
Figure 94: Admin Update posting.......................................................................................... 116
Figure 95: Admin Delete posting........................................................................................... 117

8|Page
Figure 96: Admin Create Account ......................................................................................... 117
Figure 97: Admin Update account role .................................................................................. 118
Figure 98: Admin Ban Account ............................................................................................. 118
Figure 99: Test model ............................................................................................................ 119
Figure 100: Test Processes..................................................................................................... 121
Figure 101: Open API Responses UI ..................................................................................... 133
Figure 102: Intergration System Test Report......................................................................... 134
Figure 103: Intergration System Test Report......................................................................... 134
Figure 104: Intergration System Test Report......................................................................... 134
Figure 105: Step 1 in the Register.......................................................................................... 137
Figure 106: Step 4 in the Register.......................................................................................... 138
Figure 107: Step 5 in the Reigster.......................................................................................... 139
Figure 108: Step 2 in the Login ............................................................................................. 140
Figure 109: Step 3 in the Search product ............................................................................... 141
Figure 110: Step 1 in the View product ................................................................................. 142
Figure 111: Step 2 in the View product ................................................................................. 143
Figure 112: Step 3 in the View product ................................................................................. 144
Figure 113: Filter product by location ................................................................................... 145
Figure 114: Step 1 in the Filter product by category 1 .......................................................... 146
Figure 115: Step 1 in the Filter product by category 2 .......................................................... 147
Figure 116: Step 2 in the Filter product by category ............................................................. 147
Figure 117: Step 3 in the Filter product by category ............................................................. 148
Figure 118: Step 4 in the Filter product by category 1 .......................................................... 149
Figure 119: Step 4 in the Filter by category 2 ....................................................................... 150
Figure 120: Step 4 in the Filter by category 3 ....................................................................... 151
Figure 121: Step 5 in the Filter by category .......................................................................... 151
Figure 122: Step 1 in the Post management of Product management for sale ...................... 152
Figure 123: Step 2 in the Post management of Product management for sale ...................... 153
Figure 124: Step 3 in the Post management of Product management for sale ...................... 154
Figure 125: Step 3 in the Manage Post of Product management for sale 1 ........................... 155
Figure 126: Step 3 in the Manage Post of Product management for sale 2 ........................... 156
Figure 127: Step 3 in the Manage Post of Product management for sale 3 ........................... 157
Figure 128: Step 3 in the Manage Post of Product management for sale 4 ........................... 158
Figure 129: Step 3 in the Manage Post of Product management for sale 5 ........................... 159
Figure 130: Step 1 in the Manage auction of Product management for sale ......................... 160
Figure 131: Step 2 in the Manage auction of Product management for sale ......................... 160
Figure 132: Step 3 in the Manage auction of Product management for sale 1 ...................... 161
Figure 133: Step 3 in the Manage auction of Product management for sale 2 ...................... 162
Figure 134: Step 3 in the Manage auction of Product management for sale 3 ...................... 163
Figure 135: Step 3 in the Manage auction of Product management for sale 4 ...................... 164
Figure 136: Step 3 in the Manage auction of Product management for sale 5 ...................... 165
Figure 137: Step 1 in the Manage hide post of Product management for sale ...................... 166
Figure 138: Step 2 in the Manage hide post of Product management for sale ...................... 166
Figure 139: Step 2 in the Post product to selll ....................................................................... 167
Figure 140: Step 3 Post product to sell 1 ............................................................................... 168
Figure 141: Step 3 Post product to sell 2 ............................................................................... 168

9|Page
Figure 142: Step 4 in the Post product to sell 1 ..................................................................... 169
Figure 143: Step 4 in the Post product to sell 2 ..................................................................... 170
Figure 144: Step 2 in the Create auction 1 ............................................................................. 171
Figure 145: Step 2 in the Create auction 2 ............................................................................. 172
Figure 146: Step 3 in the Create auction 1 ............................................................................. 173
Figure 147: Step 3 in the Create auction 2 ............................................................................. 174
Figure 148: Step 4 in the Create auction 1 ............................................................................. 175
Figure 149: Step 4 in the Create auction 2 ............................................................................. 176
Figure 150: Step 1 in the Manage auction product ................................................................ 177
Figure 151: Step 2 in the Manage auction product ................................................................ 178
Figure 152: Step 3 in the Manage auction product 1 ............................................................. 179
Figure 153: Step 3 in the Manage auction product 2 ............................................................. 180
Figure 154: Step 3 in the Manage auction product 3 ............................................................. 181
Figure 155: Step 3 in the Manage auction product 4 ............................................................. 182
Figure 156: Step 3 in the Manage auction product 5 ............................................................. 183
Figure 157: Step 3 in the Manage auction product 6 ............................................................. 184
Figure 158: Step 1 in the Schedule product auction .............................................................. 185
Figure 159: Step 2 in the Schedule product auction .............................................................. 186
Figure 160: Step 3 in the Schedule product auction 1 ........................................................... 187
Figure 161: Step 3 in the Schedule product auction 2 ........................................................... 188
Figure 162: Step 3 in the Schedule product auction 3 ........................................................... 189
Figure 163: Step 3 in the Schedule product auction 4 ........................................................... 190
Figure 164: View other user's account ................................................................................... 191
Figure 165: Step 1 in the Manage order................................................................................. 192
Figure 166: Step 2 in the Manage order................................................................................. 192
Figure 167: Step 3 in the Manage order................................................................................. 193
Figure 168: Step 4 in the Manage order................................................................................. 193
Figure 169: Step 1 in the Buy product ................................................................................... 194
Figure 170: Step 3 in the Buy product ................................................................................... 195
Figure 171: Step 4 in the Buy product ................................................................................... 196
Figure 172: Step 1 in the Payment ......................................................................................... 196
Figure 173: Step 2 in the Payment ......................................................................................... 197
Figure 174: Step 5 in the Payment ......................................................................................... 198
Figure 175: Step 6 in the Payment ......................................................................................... 199
Figure 176: Step 2 in the Add favourite product ................................................................... 200
Figure 177: Step 1 in the Manage favorite product list ......................................................... 201
Figure 178: Step 2 in the Manage favourite product list ....................................................... 201
Figure 179: Step 3 in the Manage favourite product list ....................................................... 202
Figure 180: Step 1 in the Admin manage account ................................................................. 202
Figure 181: Step 2 in the Admin manage account ................................................................. 202
Figure 182: Step 3 in the Admin manage account ................................................................. 203

10 | P a g e
I. Acknowledgement
- We would like to express our special thanks to Mr.Vo Duc Hoang and Ms.Ly Quynh
Tran – our supervisor, for their enthusiastic guidance and support in completing our project.
Their guidance and the motivation conveyer lessons for us not only about technique but also
on how to work as a team on a real project.

11 | P a g e
- Without their, we may not be able to provide this best project for a limited time.
- We also want to send my thanks to our families and friends. They encouraged and
helped us to overcome many pressures during implementation. And thanks to them for
providing us with all the resources needed for this project.

II. Definition and Acronyms


Acronym Definition

PWM Psychology website

AWS Amazon Web Services

BA Business Analysis

BR Business Rule

ERD Entity Relationship Diagram

GUI Graphical User Interface

PM Project Manager

SDD Software Design Description

SPMP Software Project Management Plan

SRS Software Requirement Specification

UAT User Acceptance Test

UC Use Case

API Application Program Interface


Table 1: Defition and Acronyms

III. Project Introduction


1. Overview
1.1. Project Information
• Project name: Secondhand Market
• Project code: SCH
• Group name: 2Hmarket Team
• Software type: Web Application, Mobile App

12 | P a g e
1.2. Project team

1.2.1 Supervisor
Full Name Role Email Phone

Võ Đức Hoàng Lecturer hoangvd7@fe.edu.vn 0906477283

Lý Quỳnh Trân Lecturer tranlq@fe.edu.vn 0934915655


Table 2: Supervior

1.2.3 Team Members

Full Name Role Student Code E-mail Phone

03456978
Diệp Thế Sang Leader DE140025 sangdtde140025@fpt.edu.vn
33
Memb 088867127
Nguyễn Phúc Ngọc Thành DE140120 thanhnpnde140120@fpt.edu.vn
er 8
Memb 039336652
Hoàng Hải Đăng DE140112 danghhde140112@fpt.edu.vn
er 3
Memb 093783444
Trần Thành Long DE140145 longttde140145@fpt.edu.vn
er 6
Table 3: Team Members

13 | P a g e
2. Product Background
With the current situation of life being so chaotic, shopping is an indispensable thing in
human life, buying and selling a lot will create a surplus of many things that we do not use. It
is not difficult for us to come across second hand stalls on the street or in the market, but
many inadequacies are happening.
For sellers: difficult to find premises for sale, expensive to rent.
For buyers: it takes a lot of time to find the items they need to buy, limited the products
they need to search for, it is difficult for shoppers to find the best quality products at the most
reasonable prices.
From those inadequacies, Second-hand market was born with the mission to solve the
above difficulties of second-hand buyers and sellers. Second-hand Market is a system that
allows buyers and sellers to connect to secure transactions. The system is a place specializing
in trading, buying and selling old and used products, with a variety of categories from
electronic devices such as laptops, phones ... to home appliances such as televisions, fans, rice
cookers…etc. Anyone can easily buy, search for the product they want as a buyer or can post
to sell products as a seller. The system will provide Vietnamese users with a simple and easy-
to-use platform.

3. Existing Systems
3.1 ChoTot
- Chotot is a leading buying and selling website in Vietnam, this website allows users to post
to sell second-hand goods, or can create new orders, allowing users to directly exchange
prices, locations. transaction point
- Link: https://www.chotot.com/

Figure 1: ChoTot System

- System actor:
14 | P a g e
+ Admin system
+ User
- Advantage:
+ Friendly interface, beautiful, full display of information related to the item for
sale
+ Variety of goods, a large number of items for sale at various prices
+ There is a chat function so that users can communicate with each other more
carefully, supporting the post to be put on the front page if the user needs it.
+ The approved items posted on Chotot are all reputable and highly tradable items
- Disavantage:
+ Selling products on Chotot is not really easy to use, posting on sales is difficult
to show up on the front page without paying a fee.
+ Payment on chotot also has many disadvantages
3.2 Chodocu.com
- Chodocu.com is a reliable address for you to choose from used and unused goods with
good quality. A useful information site for people with limited financial resources. More
simply, Chodocu.com helps you find unique items, strange items, and antiques at the
best prices.
- Link: https://chodocu.com/

Figure 2: Chodocu.com System

- System actor:
+ Admin system
+ User
- Advantage:
+ Provide a huge amount of information about products and goods in people's lives
+ Providing the best products and services, enabling buyers and sellers to
exchange and transact

15 | P a g e
+ Help those who need to find and buy satisfactory products and goods when they
have limited financial resources, or simply search for unique items at the best
prices.
- Disavantage:
+ Buying goods in the form of a bid will make users less interested in buying on
the system
+ Customers will not know how much the product competitors have paid.
+ It can make buyers regret and depressed when they can't own the product
because the price is too low compared to others

4. Business Opportunity
Currently, when the world is in the process of "digital transformation". Many e-commerce
sites appeared, leading to changes in people's shopping needs. Currently, people are gradually
turning to online shopping, but websites for selling second-hand goods online are still very
limited despite the high demand for second-hand goods. Seizing that opportunity, we created
a Secondhand market to make it easy for people to buy essential items at cheap prices.
through which we will have a large number of users and mine and make money based on that
number of users.

5. Software Product Vision


Today, buying and selling between people is an essential issue, although there have been
websites, and e-commerce sites to help us buy and sell, those websites are still not enough.
enough demand for the function makes it difficult or impossible for people to use, so many
sellers still have to choose a location to create a direct trading market. Moreover, after the
corona pandemic (covid - 19) we can see the danger when we come into contact with each
other in large numbers. Therefore, the birth of the Second-hand market is a necessary and
useful answer to solve this problem of buying and selling.
- Vision (Brief, inspiring goal for the product encapsulating the big idea & motivations):
+ Replacing the traditional form of buying and selling also brings many
inadequacies, optimizing prices and types of goods, providing many choices for
people who want to buy and sell, and making it easier for users to buy and sell
goods. by shopping online, thereby contributing to the world's "digital
transformation" of business models
- Target group (Who will the product serve?):
+ Buyers and sellers have a need to find and sell used items
- Needs (What problems should the product solve for the target group?):
+ There will be many items to choose from people, thereby helping people to
choose the right product, can optimize the price and time by being able to
negotiate with each other on the application.
- Product (How will our product meet the needs of the target group?):
+ Analyze the user's location, thereby recommending the products closest to the
user
+ Integrated chat feature to help users exchange information easily
+ pay money via online payment methods
+ Allows users to top up the website to push their listings to the front page

16 | P a g e
+ users can easily log in to the website and authenticate via google, facebook....
making it more convenient for users to use
+ added voting feature to increase the prestige of those who have confirmed the
transaction successfully
- Business Goals (How will the product benefit the company?):
+ Second-hand market will become the largest second hand e-commerce site in
Vietnam

6. Project Scope & Limitations


- Our products are aimed at solving the buying and selling of people, specifically those
who want to resell their used things, and who need to find themselves items at a
reasonable price. . In addition, our products help people chat with each other like a
popular social networking site today to negotiate with each other, or take a closer look
at products to buy and sell. After finding out, there are sellers and buyers who transact
with each other or can transact by paying on the website and the money will be
transferred directly to the seller.
6.1 Major Features
6.1.1. Second-Hand Market Seller Site
● FE-01: Posting to sell products
● FE-02: Post management: view, edit and delete posts
● FE-03: Personal information management: view, edit, and delete personal information
● FE-04: Message to contact the buyer directly
● FE-05: Create auction
● FE-06: Block Other Users
● FE-07: Pay to push your product post to a higher position to easily reach buyers
6.1.2. Second-Hand Market Buyner Site
● FE-01: Search for products by (category, category, product name, product location)
● FE-02: Save your favorite posts so you can buy them later
● FE-03: Manage the list of products they have purchased: view, delete purchased
products
● FE-04: Personal information management: view, edit, and delete personal information
● FE-05: Message to contact the seller directly
● FE-06: Auction
● FE-07: Block Other Users
6.1.3. Second-Hand Market Admin Site
● FE-01: User account management: View and delete the account of the offending User
● FE-02: Manage User Posts: see which user's post to delete when it's violated
● FE-03: Auction manager

17 | P a g e
Figure 3: Major Features

6.2 Limitations & Exclusions


● LI-01: Do not cooperate with 3rd party delivery

18 | P a g e
IV. Project Management Plan
1. Overview
1.1 Scope & Estimation
● Details of the group's WBS & Estimation file by accessing the link: Work Breakdown
Structure
1.2 Project Objectives
● Learn new technologies: NodeJS, ReactJS, Figma, CI/CD, microservices,...
● Build communication and time management skills when working in groups.
● Learn to manage source code with Git, and Github.
● Drawing lessons, and experiences and fostering knowledge about the process of
building and managing a project, creating a good foundation for work after graduation
● Allocated effort (person - day): 2000 hours

# Testing Stage No. of % of Notes


Defects Defect

1 Requirement 5 25 In the process of building a website, not fully


understanding the requirements makes the development
sometimes go wrong and make mistakes.

2 Design 2 10 Developing a website in a short time, so it is difficult to


have the most perfect interface in terms of overview,
colors, fonts, ...

3 Code 3 15 There are many techniques that have never been


encountered and draw Gantt chart takes up most of the
project time.

4 Review 5 25 Review tasks and functions to make sure the code is clear
and working correctly.

5 Test 5 25 Too many cases occurred, taking up a lot of the project's


time to execute the test.

Table 4: Project Objectives

19 | P a g e
1.3 Project Risks
# Risk Description Impact Possibility Response Plans

1 Lack of clarity in High High Be careful in defining Project purpose, need from the
Project purpose beginning

and need

2 Scope of project High High Review of scope and revision along the timeline of the
project. Define prioritization of topics done. Ability to trim
project as progression due to open nature of the project.

3 Poor Project Medium Medium Define Project schedule clearly and everyone must follow
schedule

4 Spending time on Medium Medium Cut low-priority tasks and focus on high priority tasks
project is
interrupted by
member’s work

5 Technical High High Prepare deep knowledge, attend training meeting,


difficulties members are encouraged to share knowledge about the
technical, help others

Table 5: Project Risks

2. Management Approach
2.1 Project Process
In this project, our team agreed to use the Agile methodology to approach the project.
The reasons why we chose this approach:
- More adaptability (and less risky): This means that the project can respond to change,
even at the last minute, and can adapt to it without much disruption. Project deliverables
are not pre-set, so the team can easily reevaluate the plan and adjust priorities to align
with updated goals. Teams can consistently deliver and manage change requests and ideas
efficiently.
- Continuous improvement: Agile encourages team members to work, exchange, and
provide their feedback so that different stages of the end product can be tested and
improved as many times as needed.
- Faster handovers: Breaking projects down allows the team to test pieces, and identify
and fix issues faster, resulting in more consistent and successful handovers.
- Happier teams: Agile groups are more autonomous. That is, they are often given the
freedom to propose new ideas, innovate, and problem-solve that may be lacking in
traditional project management methodologies.

20 | P a g e
Figure 4: Project Process

2.2 Quality Management


The PDCA cycle is a cycle of continuous improvement in the quality management system.
So with the expectation of ensuring the best possible project quality outcome, we decided to
use the PDCA cycle for project quality management.
The PDCA cycle includes Plan - Do - Check - Act. In there :

● Plan: Set up a plan.


● Do: Implementation of the established plan.
● Check: Evaluate actual implementation results.
● Act: Change, improve.

21 | P a g e
Figure 5: Quality Management

2.3 Training Plan


Training Area Participants When, Duration Waiver Criteria

NodeJs All members 21-08-2022, 3 weeks Mandatory

ReactJS All members 11-09-2022, 2 weeks Mandatory

Git, Github All members 22-09-2022, 3 days Mandatory


Table 6: Tranning Plan

3. Project Deliverables

Figure 6: Project Deliverables

# Deliverable Due Date Notes

1 Report1_Project Introduction 11-Sep-2022

22 | P a g e
2 Report2_Project Management Plan 25-Sep-2022

3 Report3_Software Requirement Specification 09-Oct-2022

4 Report4_Software Design Document 23-Oct-2022

5 Report5_Test Report 27-Nov-2022

6 Report6_Software User Guides 04-Dec -202

7 Report7_Final Project Report 11-Dec-2022

Table 7: Project Deliverables

4. Responsibility Assignments
4.1 Team & Structures

Figure 7: Project Organization

4.2 Responsibility Assignments


D~Do; R~Review; S~Support; I~Informed; <blank>- Omitted

23 | P a g e
Responsibility SangDT DangHH ThanhNPN LongTT

Project Planning & Tracking D, R, I S S S

Prepare Project Introduction Document D, R D D, I D

Prepare Project Management Plan S, R D S, I S

Prepare SRS Document D, R S S, I S

Prepare Use Case Specifications D, R D D, I D

Prepare Software Design Document S, R D S, I S

Coding Front end D, R D, R, I D, R D, R

Coding Back end D, R, I D, R D, R D, R

Prepare Software Test Documentation S, R S S, I D

Prepare Unit Test Document D, R D, R D, R D, R

Testing D, R D, R D, R D, R

Prepare Software User Guides S, R S D, I S

Deployment D R R R

Prepare Project Report D R R S

Prepare Presentation Slide S, R S D S


Table 8: Responsibility Assignments

5. Project Communications
Communication Item Who/ Target Purpose When, Type, Tool,
Frequency Method(s)

Online Meeting All Members Tracking plan, planning task 20h30 Monday Google Meet
for the next sprint, review
product

Online Meeting All Members Tracking plan, planning task 20h30 Friday Google Meet
for the next sprint, review
product

Stand-up meeting All Members Tracking status, issue 15 minutes at Google Meet
20h All day

Table 9: Project Communications

24 | P a g e
6. Configuration Management
6.1 Document Management
All documents will be organized and saved in Google Drive, which only members and
supervisors of the group have permission to add or edit. In addition, we always prepare a
backup when needed or the original is unfortunately deleted.

Figure 8: Document Management 1

Figure 9: Document Management 2

Folder Description

25 | P a g e
Second Hand Market Store all documents of the Second Hand Market project.

WIP Store documents are in progress.

Report Store reports.

Diagram Store diagrams.

Release Store completed documents.

References Store all resources used as references.

Template Stores template of all documents.

SWP490-Training Store all documents of the mock project.

Implementation Store all documents about implementation.

Back End Store all documents about back-end implementation.

Front End Store all documents about front-end implementation.

Table 10: Document Management

6.2 Source Code Management


6.2.1. Convention
- All coding branches must be reviewed by leader before merging to default branch.
- There is only one person who can merge branches to default branch.
- All developers must implement unit test and review code before create merge request.
6.2.2. Management
- All source code will be stored on Github.
- Only team members can access the repository on Github.

26 | P a g e
6.3 Tools & Infrastructures
Category Tools / Infrastructure

Development process Agile methodology

Programming languages Javascript

Framework/Library ReactJS, Sequelize

Software architecture MVC

Version control Git, Github

IDEs/Editors Visual Studio Code, Postman

UML tools Draw.io, Visual Paradigm Online

Design UX/UI Figma

Web server NodeJs

DBMS MySQL

Deployment server Amazon Web Services

Project management tool Google Sheets

Communication Discord, Google Meet, Messenger, Gmail

Table 11: Tools & Infrastructures

27 | P a g e
V. Software Requirement Specification
1. Product Overview
The purpose of this document describes in detail the functions of the “website for buying and
selling two-handed items”. It illustrates the functions in detail and builds a complete system.
It clearly explains the system's constraints, providing an overview of the interface and
interactions with the system or other external applications. This document uses the
description presented for the customer to better understand the website
- The web-based project management and deployment management system "2hand
market" helps the management and implementation of registrations to be done
quickly, conveniently and with the least cost. The system was born to sell used
products to people in need.
- The service system helps to sell the main objects: Most items from electrical
appliances to phones or vehicles.
- The site allows users to register to participate in buying and sell by logging into the
system. After registering, customers will be moderated to post their used products for
sale or buy products sold on the website.

2. User Requirements
2.1 Actors

# Actor Description

1 Guest As a user accessing the website (not logged in). They can view product an
search product,...

2 User As the user accessing the website (logged in). They can bid, post products
they want to sell, ....

3 Manager As the manager of posts related to the auction,.....

4 Admin As a system administrator who has the right to manage all and has the
right to ban accounts that show signs of violating the rules of the auction
site

Table 12: Actors

2.2 Use Cases


The system has 4 actors, including Guest, User and Admin.

28 | P a g e
2.2.1 Diagram(s)

Figure 10: Second-Hand Market Subsystem

29 | P a g e
Figure 11: Use case for Manage Account

30 | P a g e
Figure 12: Use case for Manage product posts

31 | P a g e
Figure 13: Use case for Manage Messages

32 | P a g e
Figure 14: Use case for Manage Order

33 | P a g e
Figure 15: Use case for Manage E-wallet

34 | P a g e
Figure 16: Use case for System Management

2.2.2 Use Cases List


ID Use Case Actors User Case Description

UC - 01 Register Guest Create new account

UC - 02 Login User/ Login on system


Admin/manager
UC - 03 Search product by name Guest/User Search to find product

UC - 04 View product Guest/User View all product

UC - 05 Filter product by category Guest/User View product by filter

35 | P a g e
UC - 06 Filter product by location User/Guest View product by filter

UC - 07 Forgot password User User reset password

UC - 08 Logout User/Admin/Mana Log out system


ger
UC - 09 Manage Product to sell User Manage product

UC - 10 Post product to sell User Post product

UC - 11 Manage auctioned product User Users with the seller role manage
auction
UC - 12 Schedule product auction User Users with the buyer role Join and
watch the auction
UC - 13 Create auction User Users with the seller role create
auction posts
UC - 14 View other user’s account User Users view other users' personal
information information
UC - 15 View money in account User Users view their money on the
system
UC - 16 Deposit money into your User Users deposit money into their
account accounts
UC - 17 Manage order User View and delete product

UC - 18 Buy product User Users view posts describing the


product and add it to the cart then
checkout
UC - 19 Payment User The user makes payment via
Paypal after receiving an order
confirmation from the seller
UC - 20 Mange favorite product list User View and delete favorite product

UC - 21 Add favorite product User Can add favorite posts and be


saved in the favorite products list
UC - 22 Manage messages User View, delete and message to other
user
UC - 23 Manage account User View, update account

UC - 24 Manage category Admin/Manager Create, update, delete, view


category

36 | P a g e
UC - 25 Manage all posting Admin/Manager View,delete post

UC - 26 Statistics and Report Admin/Manager Statistical analysis of data using


tables and graphs
UC - 27 Mange all account User and Admin Ban,view,update,create account
Admin
Table 13: Use cases list

2.2.3 Descriptions
2.2.3.1 Register
UC ID and Name: UC 01 - Register

Created By:

Primary Actor: Guest

Trigger: Guests must be on the "home page" screen.

Description: Guests want to register a new account to Order

Preconditions: Guest does not have an account


POST-1: Register Successfully
Post-conditions:
POST-2: The Guest is taken to the “Home page” screen.
1. Click the “Register” button at home screen
2. Redirect to the “Register” screen
3. Fill in register form
Normal Flow:
4. Click “Register” button
5. an OTP is sent to Gmail
6. Enter the OTP to verify the account
Alternative Flows: N/A
EX-01: Username is existed in the database
Exceptions: EX-02: Email is existed in the database
EX-03: Enter incorrect patterns of fields
Priority: High

Frequency of Use: High

Business Rules:

Other Information: N/A

Assumptions: N/A
Table 14: UC 01 Register

37 | P a g e
2.2.3.2 Login
UC ID and Name: UC 02 - Login

Created By:

Primary Actor: User, Admin,Manager

Trigger: Click the "login" button on the login page.

Description: Actor logs in to the system with an existing account.

Preconditions: PRE-01: Must have a User account.


POST-1: Login Successfully
Post-conditions:
POST-2: The user is taken to the home page.
1. Click the “Login” at home screen
2. Redirect to the “Login” screen
3. Fill in username, email and password
Normal Flow:
4. Click “Login” button
5. When login succeeds, the user is taken to the user home page.
6. When login fails, the system requests them to login again.
Alternative Flows: N/A
1.User logged in with the wrong username:
The system displays "Account does not exist".
Exceptions:
2. User logged in with wrong password:
The system displays “Password is not correct”
Priority: High

Frequency of Use: High

Business Rules:

Other Information: N/A

Assumptions: N/A
Table 15: UC 02 Login

2.2.3.3 Serch product by name:


UC ID and Name: UC 03 – Search product by name

Created By:

Primary Actor: User, guest

Trigger: User, guest must press the search bar.

38 | P a g e
Description: User, guest want to search for a product

Preconditions: PRE-01: Must press the search bar.

Post-conditions: POST-01: Show the products you want to search for


1. Go to the home screen
2. Must click on the search bar
Normal Flow:
3. Press the product name
4. Show searched products
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 16: UC 03 Search product by name

2.2.3.4 View Product:


UC ID and Name: UC 04 – View product

Created By:

Primary Actor: User, guest

Trigger: User, guest must press the product.

Description: User, guest want to view for a product

Preconditions: PRE-01: Must press picture image.


POST-01: Show the information and pricec products you want to
Post-conditions:
search for.
1. Go to the home screen
Normal Flow: 2. Must click on the product
3. Show products
Alternative Flows: N/A

Exceptions: N/A

39 | P a g e
Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 17: UC 04 View product

2.2.3.5 Filter product by category


UC ID and Name: UC 05 - Filter product by category

Created By:

Primary Actor: Guest,User

Trigger: The guest/user must prees category they want to find.

Description: The guest/user who visits the website can see the list of products
PRE – 01: When the guest/user they will use the search by category
Preconditions:
and see products.
Post-conditions: POST-01: The list of products by category names will appear.
1. User, Guest standing at home screen
Normal Flow: 2. When the user,guest click on the category,the list of products with
related names will appear in the table below.
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 18: UC 05 Filter product by category

2.2.3.6 Filter product by location


UC ID and Name: UC 06 - Filter product by location

40 | P a g e
Created By:

Primary Actor: User, Guest

Trigger: The user/guest choose search by location.

Description: The guest/user who visits the website can see the list of products
PRE – 01: When the guest/user they will use the search by category
Preconditions:
and see products.
Post-conditions: POST-01: The list of products by category names will appear.
1. User, Guest standing at home screen
Normal Flow: 2. When the user, guest click on the category ,the list of products with
related names will appear in the table below.
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 19: UC 06 Filter product by location

2.2.3.7 Manager product to sell


UC ID and Name: UC 07 – Manage Product to sell

Created By:

Primary Actor: User

Trigger: User will post the products to sell


After the user post products the products will up to the manager to
Description:
censorship and the products will up to sell
PRE-1: Users must log in to the system.
Preconditions:
PRE-2: The product must be suitable and not on the prohibited list.
POST-01: User will waiting the product will be evaluated and
Post-conditions:
approved.
1. Click to download product image and select item of product type
Normal Flow:
2. Update product price

41 | P a g e
3. Wait for the administrator to approve
4. Products will be updated to selected categories.
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 20: UC 07 Manage product to sell

2.2.3.8 Post products to sell


UC ID and Name: UC 08 – Post product to sell

Created By:

Primary Actor: User

Trigger: User will post the products to sell.


After the user post products the products will up to the manager to
Description:
censorship and the products will up to sell
PRE-1: Users must log in to the system.
Preconditions: PRE-2:
PRE-3: The product must be suitable and not on the prohibited list.
POST-01: User will waiting the product will be evaluated and
Post-conditions:
approved.
1. Click to download product image and select item of product type
2. Update product price
Normal Flow:
3. Wait for the administrator to approve
4. Products will be updated to selected categories.
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A

42 | P a g e
Other
N/A
Information:
Assumptions: N/A
Table 21: UC 08 Post product to sell

2.2.3.9 Manage acoutioned products


UC ID and Name: UC 09 – Manage auction product

Created By:

Primary Actor: User

Trigger: User must post auction item

Description: User wants to see all his/her auctioned product.


PRE-01: Must have a user account.
Preconditions:
PRE-02: Must login to the system as User
Post-conditions: POST-01: View all auctioned product have post.
1. Click the “My auctioned product” on the sidebar.
Normal Flow:
2. Redirect to the “My auctioned product” screen.
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 22: UC 09 Manage auction product

2.2.3.10 Schedule production auction


UC ID and Name: UC – 10: Schedule product auction

Created By:

Primary Actor: User

Trigger: User must be on the 'auction' screen

43 | P a g e
Description: User wants to schedule product auction

Preconditions: PRE-01: Must have a user account.


PRE-02: Must login to the system as User.
PRE-03: Add notifications for upcoming auctions
Post-conditions: POST-01: View notifications for upcoming.

Normal Flow: 1. Tap the notification


2. Select notification of scheduled auction
Alternative Flows: N/A

Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A

Other N/A
Information:
Assumptions: N/A

Table 23: UC 10 Schedule product auction

2.2.3.11 Create aution


UC ID and Name: UC – 11 : Create aution

Created By:

Primary Actor: User

Trigger: User must be on the “Aution” screen.

Description: User want to create an auction.


PRE-01: User must download the auction product.
Preconditions: PRE-02: Select the desired starting price

Post-conditions: POST-01: Wait for the manager to confirm the auction.

Normal Flow: 1. The product must be prepared in the posted condition…

Alternative Flows: N/A

44 | P a g e
Exceptions: N/A

Priority: High

Frequency of Use: High

Business Rules: N/A


Other
N/A
Information:
Assumptions: N/A
Table 24: UC 11 Create auction

2.2.3.12 View other user’s account information


UC ID and UC-12 View other user’s account information
Name:
Created By:
Primary Actor: User
Trigger: User must go to another User's Profile page
Description: User wants to see other User's information
Preconditions: Use phải vào trang Profile của User khác
Post- User must go to another User's Profile page
conditions:
Normal Flow: 1. User enters someone else's User page
2. User proceeds to view other people's information
3. View success
Alternative N/A
Flows:
Exceptions: 1.Actor login with wrong username:
The system displays "Account does not exist".
2. Actor login with wrong password:
The system displays “Invalid Password”
Priority: High
Frequency of High
Use:
Business Rules:
Other N/A
Information:
Assumptions: N/A
Table 25: UC 12 View other user's account information

2.2.3.13 View money in account


UC ID and UC-13 View money in account
Name:
Created By:
Primary Actor: User
Trigger: User must go to the personal information page to see the money in his
account

45 | P a g e
Description: User wants to see the money in his account
Preconditions: User adds money to the account
Post- User successfully added money to the account
conditions:
Normal Flow: 1.User clicks on Profile
2. User proceeds to see the amount of money in the account
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules:
Other N/A
Information:
Assumptions: N/A
Table 26: UC 13 View money in account

2.2.3.14 Deposit money into your account

UC ID and UC- 14 Deposit money into your account


Name:
Created By:
Primary Actor: User
Trigger: User must go to the page to pay money to their account
Description: User wants to add money to his account
Preconditions: User must add money to the account
Post- User successfully added money to the account
conditions:
Normal Flow: 1. User clicks on adding money to the account
2. Enter personal information, card information, amount you want to add
3. More success
4. Press the save button
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 27: UC 14 Deposit money into your account

46 | P a g e
2.2.3.15 Manage order
UC ID and UC- 15 Manage order
Name:
Created By:
Primary Actor: User
Trigger: User must go to product order page
Description: User wants to manage ordered products.
Preconditions: User must order the product
Post- POST-01: Order successful
conditions:
Normal Flow: 1. User clicks on the ordered product page
2. User can view, delete, update ordered products
3. User view, delete, update ordered products
successful
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 28: UC 15 Manage order

2.2.3.16 Buy product


UC ID and UC- 16 Buy product
Name:
Created By:
Primary Actor: User
Trigger: User must go to the product purchase and sale page
Description: User wants to buy product
Preconditions: PRE: User must go to product purchase page

Post- User successfully purchased product page


conditions:
Normal Flow: 1. User enters the product purchase and sale page
2. User proceeds to buy the product
3. After successful product purchase
4. Press the pay button
Alternative N/A
Flows:
Exceptions: N/A

47 | P a g e
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 29: UC 16 Buy product

2.2.3.17 Payment
UC ID and UC- 17 Payment
Name:
Created By:
Primary Actor: User
Trigger: User accesses the payment page
Description: User wants to pay
Preconditions: PRE – 01: User must pay
Post- POST-01: User made payment successfully
conditions:
Normal Flow: 1. User on the product purchase and sale page and buy the product
successfully
2. Process product payment
3. Successful payment
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 30: UC 17 Payment

2.2.3.18 Mange favourite product list


UC ID and UC- 18 Mange favourite product list
Name:
Created By:
Primary Actor: User
Trigger: User must go to the favorite product list page
Description: User wants to manage the list of favorite products
Preconditions: PRE – 01: User wants to manage the list of favorite products
Post- POST-01: User managed successfully
conditions:
Normal Flow: 1. User must go to the favorite product list page
2. User proceed to view, delete product
3. Press the save button

48 | P a g e
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 31: UC 18 Mange favourite product list

2.2.3.19 Add favourite product


UC ID and UC- 19 Add favourite product
Name:
Created By:
Primary Actor: User
Trigger: User must go to favorite product page
Description: User wants to add favorite products
Preconditions: PRE – 01: User adds a favorite product

Post- POST-01: User successfully added favorite product


conditions:
Normal Flow: 1. User enters favorite product page.
2. User successfully added favorite product
3. Press the save button
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 32: UC 19 Add favourite product

2.2.3.20 Manage messages


UC ID and UC- 20 Manage messages
Name:
Created By:
Primary Actor: User
Trigger: Users must go to the chat box to manage their messages
Description: User wants to manage his messages
Preconditions: PRE-1: User must successfully enter the chat box

Post- POST-01:User managed successfully.


conditions:

49 | P a g e
Normal Flow: 1. User clicks on the chat box.
2. User managed chat box successfully
3. Press the save button
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 33: UC 20 Manage messages

2.2.3.21 Manage account


UC ID and UC- 21 Manage account
Name:
Created By:
Primary Actor: User
Trigger: User must go to his Profile page
Description: User wants to view, update, edit user information
Preconditions: PRE-01: User can access Profile page
Post-conditions: POST-01: User successfully updated information
Normal Flow: 1. User clicks on his Profile page
2. User proceed to view, update, edit his information
3. After viewing, updating, editing my information successfully
4. Press the save button.
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 34: UC 21 Manage account

2.2.3.22 Manage category


UC ID and UC- 22 Manage category
Name:
Created By:
Primary Actor: Admin/ Manager
Trigger: Admin/Manager must go to product catalog management page
Description: Admin/Manager wants to manage product catalog
Preconditions: PRE-01: Admin/Manager successfully entered the product catalog
management page

50 | P a g e
Post-conditions POST-01: Admin/Manager can view the product catalog.
Normal Flow: 1. Admin/ Manager go to product catalog management.
2. Approving the products posted by users
3. Admin/Manager approved successfully.
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 35: UC 22 Manage category

2.2.3.23 Manage all posting


UC ID and UC-23 Manage all posting
Name:
Created By:
Primary Actor: Admin/ Manager
Trigger: Admin/Manager wants to manage user's post list
Description: Admin /Manager approved the post successfully
Preconditions: PRE-1: Admin/Manager must go to user's post management page

Post- POST-01: Admin/Manager successfully entered user's post management


conditions: page
Normal Flow: 1. On the Admin homepage, Admin clicks on the list of user posts
2. Admin/Manager approves each user's post
3. Click the save button.
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 36: UC 23 Manage all posting

2.2.3.24 Statistics and Report


UC ID and UC- 24 Statistics and Report
Name:
Created By:
Primary Actor: Admin/Manager
Trigger: Admin/Manager must be on the “Order confirmation” screen.

51 | P a g e
Description: User wants to create an order.
Preconditions: PRE-01: Must have a user account.
PRE-02: Must login to the system as User
Post- POST-01: View all Orders of current user
conditions:
Normal Flow: 1. Choose delivery address and payment method.
2. Enter voucher code (if available)
3. Click on “Paypal payer” button or chose QR code payment
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 37: UC 24 Statistics and Report

2.2.3.25 Manger all account


UC ID and UC- 25 Manger all account
Name:
Created By:
Primary Actor: Admin
Trigger: Admin go to "Admin homepage" to manage account
Description: Admin wants to add, delete, edit, update account
Preconditions: PRE-01: Admin must go to the account management page.
Post- POST-01: Admin successfully added, deleted, edited and updated account
conditions:
Normal Flow: 1. Admin must go to the account management page.
2. Admin adds, deletes, edits and updates accounts
3. Admin click on save button.
Alternative N/A
Flows:
Exceptions: N/A
Priority: High
Frequency of High
Use:
Business Rules: N/A
Other N/A
Information:
Assumptions: N/A
Table 38: UC 25 Manger all account

3. Functional Requirements
3.1 System Functional Overview
3.1.1 Screens Flow

52 | P a g e
Figure 17: Screens Flow

3.1.2 Screen Descriptions


Web-app’s screen descriptions:

53 | P a g e
No Feature Screen Description
1 Common Login Login to system
2 Common Register Create an account to access the system
Reset your new password when you forgot your
3 Common Forgot Password
old password
View/update personal information and change
4 Common My profile
password
5 Common Create Post Create posts to sell products
6 Common View post details See a post selling product description
7 Common Product Auction View / bid in the auction to own the product
8 Common Favorite Posts Add/remove favorite posts
9 Common Manage order Manage purchase/sale orders on the system
Common Manage created posts (product sale posts,
10 Manage Posts
CRUD auction posts, hidden posts, favorite posts)
11 Common View Other's Profile View other users' personal information
Shopping cart stores posts to make product
12 Common Cart
purchases
13 Common Payment Make payment via paypal
Common Manage all account
14 Manage all accounts on the system
CRUD User/Manager
Common
15 Manage category Manage post categories for products
CRUD
Common
16 Manage all posting Manage all posts on the system
CRUD
Analyze and make reports on the system on the
17 Common Dashboard
number of users, number of posts,...
Table 39: Screen Descriptions

3.1.3 Screen Authorization

Screen
Screen Guest User Manage Admin
Activity
Query Own
Login x x x x
Data
Query Own
Profile x x x
Data
Query Own
Change password x x x
Data
Query Own
Dashboard x x x
Data
Query Own
Manage manager Data + x
CRUD Data

54 | P a g e
Query Own
Manage User Data + x x
CRUD Data
Query Own
Manage Post Data + x x
CRUD Data
Query Own
Manage post Data + x x
CRUD Data
Query Own
Manage auction Data + x x
CRUD Data
Query Own
Manage category Data + x x
CRUD Data
Query Own
Upload posts to sell Data + x x
Update Data
View all post Query Own
x x x x
product Data
Table 40: Screen Authoriztion

3.1.4 Non-Screen Functions


No Feature System Function Description
1 Login /login Login to system
2 Logout /logout Logout of system
3 Change password /changepassword Change password of an account
4 Input OTP /sentOTP Input OTP for register
5 Add new account /register Register account
6 Post Product /post Post product
7 Get detail /post/:_postId Get detail the product already created
8 Manage Post /managePosting Manage posts of product
Delete subject Update the product already created
9 /edit/post/:postId

10 Get category /category/:categoryParentId Get category


Update
11 /cart Get list of category
specialization
12 Get profile /profile/user/:userId Get Profile of user

55 | P a g e
13 Update profile /editProfile Update profile of user
14 Get all item /cart Get all item that have type of category
15 Create oder /order/buy Add item to payment
16 Get all classes /class (GET) Get all classes in system
17 Update payment /payment/success Update item to buy
Table 41: Non-Screen Functions

3.1.5 Entity Relationship Diagram

Figure 18: Entity Relationship Diagram

Entities Description

No Entity Description

1 User with buyer role Users with the buyer role view posts and place orders to acquire
products

2 User as the seller User as the seller creates posts to sell products

3 Posts Posts describing products. 2 types of posts are auction posts and
regular posts

4 Product Post Regular post available price and detailed product description

5 Auction Post The auction post will have a detailed description of the product,
and the starting price for the auction. Other users will participate
in the auction for a chance to own the product.

56 | P a g e
No Entity Description

1 User with buyer role Users with the buyer role view posts and place orders to acquire
products

6 Category Posts will be categorized by product category: Fashion, home


appliances, electronics...

7 Post Details Store all information about product details: Product name, price,
origin,...

8 Favorite post Users can add posts to their favorites list for purchase later

9 Carts Store products for a purchase payment

10 Order Store all information about orders

11 Payment Make payments and save payment information

Table 42: Entities Description

3.2 Account services


3.2.1 Login
- Trigger: the guest want to login to system
- Description: Provide a page for guests to log in to the Second hand market system
- Function detail:
+ Validation: User must fill all field to log in to the Second hand market system
+ Functionality: Log in to the system
- Screen layout:

Figure 19: Login

3.2.2 Register
- Trigger: The Guest want to register an account to use the Second hand market system

57 | P a g e
- Description: Provide a page for guests register an account to use the Second hand
market system
- Function detail:
+ Validation: User must fill all field to register an account.
+ Functionality: Register an account
- Screen layout:

Figure 20: Register

3.2.3 Forgot password


- Trigger: User forgot password and want to reset the new password.
- Description:Provide a page for user who want to get the link resetting password from
user email or username
- Function detail:
+ Validation: User must fill email or username to get link for reset the password,
username or email must be registered in system.
+ Functionality: Reset the password
- Screen layout:

3.3 Profile
3.3.1 Change password
- Trigger: User, manager want to change password.
- Description:Provide a page for user, manager to change password
- Function detail:
+ Validation: User, Manager must fill all filed to change the password, new
password and confirm password must be the same, the old password must be
the same as the current password.
+ Functionality: Change the password

58 | P a g e
- Screen layout:

Figure 21: Change password

3.3.2 View Profile


- Trigger: User want to view themself profile
- Description:Provide a page for User can view all information of themselves such as
fullname, email, age, gender, profession, phone number, address.
- Function detail: Show all information for current

59 | P a g e
- Screen layout:

Figure 22: View Profile

3.3.3 Edit Profile


- Trigger: User want to edit themself profile
- Description:Provide a page for User can themself profile
- Function detail: Edit information of user
- Screen layout:

Figure 23: Edit Profile

60 | P a g e
3.3.4 Manage favorite product list
- Trigger: User want to manage favorite product list in themself cart
- Description:Provide a page for User can manage favorite product list in themself cart
- Function detail: Manage favorite product list in themself cart
- Screen layout:

Figure 24: Manage favourite product list

3.3.5 View other user’s account profile


- Trigger: User want to view other user’s profile
- Description:Provide a page for User can view all information of other user’s profile
such as fullname, email, age, gender, profession, phone number, address.
- Function detail: Show all information for current

61 | P a g e
- Screen layout:

Figure 25: View other user's account profile

3.4 Buyer services


3.4.1 View all product to buy
- Trigger: User, Guest want to view list product current in Secondhand market system.
- Description:Provide a page for User, Guest can view list product
- Function detail: Show all list product.

62 | P a g e
- Screen layout:

Figure 26: View all product to buy

3.4.2 Search product


- Trigger: User, Guest want to search list product current in Secondhand market system.
- Description: Provide a page for User, Guest can search list product
- Function detail: Show all list product that same the name User, Guest search.

63 | P a g e
- Screen layout:

Figure 27: Search product

3.4.3 Filter product by category


- Trigger: User, Guest want to filter list product current in Secondhand market system.
- Description:Provide a page for User, Guest can filter list product
- Function detail: Show all list product that same the name User, Guest filter.
- Screen layout:

Figure 28: Filter product by category

3.4.3 Filter product by location


- Trigger: User, Guest want to filter list product current in Secondhand market system.

64 | P a g e
- Description:Provide a page for User, Guest can filter list product
- Function detail: Show all list product that same the name User, Guest filter.
- Screen layout:

Figure 29: Filter product by location

3.4.4 View product detail


- Trigger: User, Guest want to view detail product in Secondhand market system.
- Description:Provide a page for User, Guest can view product detail
- Function detail: Show all list product that same the name User, Guest search.

65 | P a g e
- Screen layout:

Figure 30: View product detail

3.4.5 Buy product


- Trigger: User want to buy product in Secondhand market system.
- Description:Provide a page for User can buy product in Secondhand market system.
- Function detail: Buy product for user

66 | P a g e
- Screen layout:

Figure 31: Buy product

3.4.5 Auction product


- Trigger: User want to auction product in Secondhand market system.
- Description:Provide a page for User can auction product in Secondhand market
system.
- Function detail: auction product for user

67 | P a g e
- Screen layout:

Figure 32: Auction product

3.4.6 Manage order


- Trigger: User want to manage order in Secondhand market system.
- Description:Provide a page for User can manage order in Secondhand market system.
- Function detail: manage order for user

68 | P a g e
- Screen layout:

Figure 33: Manage order

3.5 Seller services


3.5.1 Create post to sell
- Trigger: User want to create product to sell in Secondhand market system.
- Description:Provide a page for User can create product to sell
- Function detail: Create product to sell

69 | P a g e
- Screen layout:

Figure 34: Create post to sell

3.5.2 Create post to auction


- Trigger: User want to create product to auction in Secondhand market system.
- Description:Provide a page for User can create product to auction
- Function detail: Create product to auction
- Screen layout:

Figure 35: Create post to auction

70 | P a g e
3.5.3 Manage product to sell
- Trigger: User want to manage product to sell in Secondhand market system.
- Description:Provide a page for User can manage product to sell
- Function detail: Manage product to sell
- Screen layout:

Figure 36: Manage product to sell

3.5.4 Manage post auction


- Trigger: User want to create product to auction in Secondhand market system.
71 | P a g e
- Description:Provide a page for User can create product to auction
- Function detail: Create product to auction
- Screen layout:

Figure 37: Manage post auction

3.5.4 Schedule auction


- Trigger: User want to create product to auction in Secondhand market system.
- Description:Provide a page for User can create product to auction
- Function detail: Create product to auction

72 | P a g e
- Screen layout:

Figure 38: Schedule auction

4. Non-Functional Requirements
4.1 External Interfaces:
- Our product has no external interfaces.
4.2 Quality Attributes
4.2.1 Usability
- The user interface should be friendly, simple, logical, and easy to use.
- All the texts and messages should be precise, consistent, and easy to understand.
- Buttons and checkboxes should be made easy for the user to tap.

73 | P a g e
4.2.2 Security
- The system must use JSON Web Token (JWT) authentication, in which the
authentication server returns an access token after the user logs in with an email and
password. Then the client will include the access token in the subsequent requests to
access protected resources.
- The system must use HTTPS to encrypt the information transferred between clients
and servers.
- Password must be hashed before inserted into the database.

4.2.3 Performance
- Front end using React JS, which was designed to provide high performance in mind.
The core of the framework offers a virtual DOM program and server-side rendering,
which makes complex apps run extremely fast.
- Back-end system uses NodeJS to develop fast web server.

4.2.4 Maintainability & Scalability


- Using RESTful API for the backend architect to help improve scalability.
- We use some stuffs on GitHub Apps is Codacy, CodeCov to check coding quality. In
a single merge request, they can run automatically to check our codes. Though we
only merge code when all checks passed (we can restrict who can push to matching
branches without passing all CI)

5. Requirement Appendix
5.1 Business Rules
Domain business rules:

No Description
BR-1 Only admin can manage manager
BR-2 Guests can only buy products when they have registered an account
BR-3 Guests can only view items that are listed for sale

BR-4 User can view and buy or bid on any item


BR-5 All users can post for sale or auction
BR-6 User can view information of other users
BR-7 User can rate the product quality after purchasing from another account
When admin or Manager accounts have been disabled an account, this account will
BR-8
automatically log out from the system and cannot log in again.
BR-9 Manager has the right to show and hide posts that violate the policy
BR-10 Manager can ban accounts that violate the policy
Table 43: Domanin bussiness rules

Specific business rule:

No Description

74 | P a g e
BI-1 The field must be filled by 10 numbers.
The field must be filled, followed by format “X@X.Y”, where X is characters and Y is
BI-2
alphabets. X and Y are at least 1 character.
Table 44: Specific bussiness rule

5.2 Common Requirements

5.3 Application Messages List


# Message Message Type Context Content
code
1 MSG01 Under the text Input-required fields are empty Please fill out this field.
box
2 MSG02 Toast message Updating asset(s) information Update asset(s) successfully.
successfully
3 MSG03 Toast message Adding new asset successfully Add asset successfully.
4 MSG04 Toast message Deleting asset information Delete asset(s) successfully.
successfully
5 MSG05 Toast message Updating asset(s) information Update asset(s) failed.
failed
6 MSG06 Toast message Adding new asset failed Add asset failed.
7 MSG07 Toast message Deleting asset information Delete asset(s) failed.
failed
8 MSG08 Under input Username or password is not Incorrect user name or password.
field correct when clicking sign-in Please check again.
9 MSG09 Under input Input an invalid information Invalid asset
field
10 MSG10 Toast message Take attendance successfully Take attendance successfully for
[username]
11 MSG11 Toast message The face recognized is not the Wrong face detected
same with the face registered
12 MSG11 Toast message Upload photo successfully Image is successfully trained for
[userid]
Table 45: Application Messages List

75 | P a g e
VI. Software Design Document
1. System Design
The project has successfully applied a data analysis method to make suggestions. Basically,
these suggestions are based on location parameters (the city the customer lives in).
As for the client side, the recommendations online system has been developed in web
applications. The web application used the framework NodeJS built on top of React which
provided a short page load time and fast scan of the data taken from the user.
As for the server side, the recommendations online system have been developed with the
ReactJS web framework, the Rest API and the database management system MySQL is a
database management system that allows you to manage relational databases.

Figure 39:User interface

76 | P a g e
1.1 System Architecture
1.1.1 Client
Reactjs is an open-source Javascript library that helps build user interface components
quickly and easily. Usually, programmers will embed javascript into HTML code through
attributes like AngularJS but Reactjs works as a library that allows embedding HTML into
javascript through JSX. You can easily nest HTML snippets into JSX making components
easier to understand and use.
The basic components of React are called components. Syntax to write HTML using
Javascript to render. You can create a component by calling the createClass method of the
React object, the starting point when accessing this library. Multiple components can be
nested through the return statement of the render method.
Benefits of using Reactjs
● ReactJS makes it easier to write Javascript code because it uses a special syntax that is
the JSX syntax. Through JSX allows embedding HTML and Javascript code.
● ReactJS allows Developers to break complex UI structures into independent
components. Devs won't have to worry about the overall web application, now it's
easier for developers to break down complex UI/UX structures into simpler
components.
● Included with ReactJS are many development tools that make debugging code easier.
● One of the more advantages of ReactJS is its SEO friendliness. Most of the JS
Frameworks are not search-friendly, although much improved, but with the help of
rendering data returned in the form of web pages, it helps to make SEO more

Figure 40: Application Architecture

standard.

77 | P a g e
1.1.2 Server
1.1.2.1 Serverless
Serverless (also known as a serverless platform) is a platform that creates an environment that
allows programmers to code applications or services without having to worry too much about
server problems. Serverless application can be understood as a server that takes care of
internal system operations such as allocation, system resource management, upgrade and
security.

Figure 41: Serverless Architecture

1.1.2.1.1 Cognito
Amazon Cognito allows you to quickly and easily add registration, sign-in, and user access
control to websites and mobile apps. Amazon Cognito scales to millions of users and supports
logins through social identity providers such as Apple, Facebook, Google, and Amazon, as
well as enterprise identity providers through SAML 2.0 and OpenID Connect.

Figure 42: Cognito

78 | P a g e
1.1.2.1.2 SQS Service
Amazon Simple Queue Service (SQS) is a fully managed message queue service that allows
you to unlink and scale your microservices, distributed systems, and serverless applications.
SQS eliminates the complexity and indirect costs associated with managing and operating
message-oriented middleware and allows developers to focus on other things. Using SQS,
you can send, store, and receive messages between software components at any volume,
without losing messages or forcing other services to be available at all times.

Figure 43: SQS Service

1.1.2.1.3 SES Service


Amazon Simple Email Service (SES) is a cost-effective, flexible, and scalable email service
that allows developers to send email from within any application. You can quickly configure
Amazon SES to support a number of email use cases including mass email communications,
marketing, or transactions. Amazon SES' flexible IP deployment and email authentication
options help drive greater deliverability and protect sender reputation, while delivery
analytics measure the impact of individual emails. With Amazon SES, you can securely send
email globally at scale.

Figure 44: SES Service

1.1.2.2 Lambda function


AWS Lambda is a computer service where you can upload your code, and the AWS Lambda
service helps you run that code using available AWS resources. After you upload your code,
and you create a Lambda function, AWS provision and manage the servers that you use to run
the code. As for using AWS, you can do the following:

79 | P a g e
● An event-driven compute service where AWS Lambda runs your code and returns
events, data changes pushed into an Amazon S3 bucket or an Amazon DynamoDB
table. (you can learn more about Amazon DynamoDB)
● A computer service to run code and return HTTP requests using Amazon API
Gateway or APIs using AWS SDKs.

Figure 45: Lambda function

1.1.2.3 Type Graphql


GraphQL is a query language for APIs that provides a complete description of the data in
your API, allowing the client side to request exactly the data it needs without being redundant
or missing. In other words, it provides a common interface between the client and the server
for retrieving and manipulating data.

Figure 46: Type Graphql

1.1.2.4 Apollo server


Apollo Server is a GraphQL server implementation for JavaScript, specifically for the
Node.js platform.It supports many popular Node.js frameworks, including:
● Express
● Hapi
● Koa
● Adjust

80 | P a g e
Apollo Server provides us with 3 basic things:
● Gives us a way to describe our data with schema.
● Provides a framework for resolvers, which are functions we write to fetch the data
needed to make a request.
● Facilitate authentication processing for our API.

Figure 47: Apollo server

1.1.2.5 PostgreSQL
PostgreSQL is a general-purpose object-relational database management system, the most
advanced open source database system available today.PostgreSQL is designed to run on
UNIX-like platforms. However, PostgreSQL was also dynamically adapted to run on many
different platforms such as Mac OS X, Solaris, and Windows.

81 | P a g e
Figure 48: MySQL

1.1.2.6 NodeJS & JavaScript


NodeJS is an open-source and cross-platform JavaScript runtime environment that is used to
run web applications outside of the client's browser. This platform, developed by Ryan Dahl
in 2009, is considered a perfect solution for data-intensive applications thanks to its
asynchronous event-driven model.

Figure 49: NodeJS

JavaScript is a scripting or programming language that allows you to implement complex


features on web pages — every time a web page does more than just sit there and display
static information for you to look at — displaying timely content updates, interactive maps,
animated 2D/3D graphics, scrolling video jukeboxes, etc. — you can bet that JavaScript is
probably involved.

82 | P a g e
Figure 50: JavaScript

1.1.3 Recommendation System


1.1.3.1 Overview of recommendation system

Figure 51: Flow of recommendation system

Health and fitness is the area that users are most concerned and worried about, so we build a
recommendation system based on each user's desire and self-improvement criteria through a
survey, because so we used a Collaborative Filtering System (Item-Item Filtering) for the
suggestion and it had to respond to the following location parameters.

1.1.3.2 The setting up steps of the recommendation System


The suggestion system provides value to customers by understanding individual user behavior
and then recommending foods & exercises that they may find appropriate. First, the system
collects data from the survey, from which the system calculates the BMI data and sends to the
customer the most suitable suggestions

83 | P a g e
Figure 52: Flow of building model

1.1.4 System Architecture

Figure 53: System Architecture

84 | P a g e
1.2 Package Diagram

Figure 54: Package Diagram

• Package Descriptions

85 | P a g e
No Package Description

01 Controller Contains controller classes which are responsible for processing


incoming REST API requests, preparing a model, and returning the
view to be rendered as a response.

02 Suggestions Contains suggestion classes that are used to write business logic in
another layer, separate from the controller

03 Schedule, Contains schedule, event classes that are used to write business logic in
Event another layer, separate from the controller

04 Utility Contains entity classes which are the persistence objects stores as a
record in the database

05 Security Implements authentication, authorization, and protection against


common attacks

06 Exception Provides a mechanism to treat exceptions that are thrown during


execution of handlers

07 Data Source A factory for connections to the PostgreSQL database

08 Bean Exploits the Inversion of Control feature by which an object defines its
dependencies without creating them

86 | P a g e
2. Database Design

Figure 55: Database Design

• Table Descriptions
No Table Description

87 | P a g e
01 Users - Primary keys: userid
- Foreign keys: None
02 Posts - Primary keys: id
- Foreign keys: cateId,statusId,warrantyId,originId,activeId,userId
03 Origins - Primary keys: id
- Foreign keys: none
04 Postmages - Primary keys: id
- Foreign keys: postId,userId
05 Categories - Primary keys: id
- Foreign keys: cateParentId
06 Likes - Primary keys: id
- Foreign keys: postId,userId
07 PostCondition - Primary keys: id
- Foreign keys: none
08 PostActive - Primary keys: id
- Foreign keys: None
09 Waranties - Primary keys: id
- Foreign keys: None
10 Carts - Primary keys: id
- Foreign keys: postId,userId
11 Transactions - Primary keys: id
- Foreign keys: userid
12 Order - Primary keys: id
- Foreign keys: postId,transactionId
13 BidOrder - Primary keys: id
- Foreign keys: postId,userId

Table 46: Table Descriptions

88 | P a g e
3. Detailed Design
3.1 Class Diagram

Figure 56: Class Diagrams

89 | P a g e
3.2 Class Specifications
3.2.1 Users
No Attributes Type Description

01 id int Unique identifier, auto increment

02 UserID uuid Unique identifier by userlist ,auto increment

03 email string email of user

04 emailType string type of user email

05 Password string password

06 FirstName string User Firstname

07 LastName string User Lastname

08 avataImagePath string link to avata image

09 addressID int address of user

10 phone String phone number of user

11 starrating int average starpoint of user

12 roleid int role of user

13 accountBan int number for ban/unban user

14 createAT datetime create time

15 updateAT datetime update time

Table 47: Users

90 | P a g e
3.2.2 Posts
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 title String Title of product

03 CateID int Unique identifier by category, auto increment

04 StatusId int status of product

05 warrantyId int status warranty of product

06 originId int origin of product

07 description string description

08 free boolean free or no

09 price bigint price of product

10 activeId int

11 street string address of user who post the product

12 ward string address of user who post the product

13 district string address of user who post the product

14 city string address of user who post the product

15 userId int id of user post

16 likeCount int total likes of post

17 createdAt datetime time create post

91 | P a g e
18 updateAt datetime time update post

Table 48: Posts

3.2.3 Origins
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 countryName string country of manufacture of the product

03 RoleID int Unique identifier by role, auto increment

04 createdAt datetime time create post

05 updateAt datetime time update post

Table 49: Origins

3.2.4 PostImages
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 imagePath int link to image

03 postId int Unique identifier by post list

04 userId id Unique identifier by user list

05 createdAt datetime time create post

06 updateAt datetime time update post

Table 50: PostImages

92 | P a g e
3.2.5 Categories
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 Name string Name of category

03 cateImagePath string path of image category

04 cateParentId int Unique identifier by post list

05 createdAt datetime time create post

06 updateAt datetime time update post

Table 51: Categories

3.2.6 Likes
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 userId string Unique identifier by user list

03 postId int Unique identifier by post list

05 createdAt datetime time create post

06 updateAt datetime time update post

Table 52: Likes

93 | P a g e
3.2.7 PostCondition
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 Status int Status condition of product

03 createdAt datetime time create post

04 updateAt datetime time update post

Table 53: PostCondition

3.2.8 PostActive
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 Status int Status active of product

03 createdAt datetime time create post

04 updateAt datetime time update post

Table 54: PostActive

3.2.9 Warranties
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 Status int Status warranties of product

03 createdAt datetime time create post

04 updateAt datetime time update post

Table 55: Warranties

3.2.10 Carts
No Attributes Type Description

94 | P a g e
01 ID int Unique identifier, auto increment

02 userId string Unique identifier by user list

03 postId int Unique identifier by post list

05 createdAt datetime time create post

06 updateAt datetime time update post

Table 56: Carts

3.2.11 Transactions
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 status boolean Status Transaction of product

03 userId string Unique identifier by user list

04 amount bigint amount product transaction

05 payment string Status of payment

06 paymentInfo string information of payment

07 message string message of user for product

08 createdAt datetime time create post

09 updateAt datetime time update post

Table 57: Transactions

95 | P a g e
3.2.12 Order
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 transactionId int Unique identifier by transaction

03 postId int Unique identifier by post

04 amount string amount product order

05 status string Status order of product

08 createdAt datetime time create post

09 updateAt datetime time update post

Table 58: Order

3.2.13 BidOrder
No Attributes Type Description

01 ID int Unique identifier, auto increment

02 userId string Unique identifier by user list

03 postId int Unique identifier by post list

04 bidStartTime timestamp time start auctions

05 bidEndTime timestamp time end auctions

06 priceStart bigint price start auctions

07 priceCurrent bigint price current auctions

96 | P a g e
08 createdAt datetime time create post

09 updateAt datetime time update post

Table 59: BidOrder

3.3 Sequence Diagrams


3.3.1 Guest
3.3.1.1 Register

Figure 57: Guest Register

3.3.1.2 Search product by name

Figure 58: Guest Search product by name

97 | P a g e
3.3.1.3 View product

Figure 59: Guest View product

98 | P a g e
3.3.2 User
3.3.2.1 Login/Register

Figure 60: User Login/Register

99 | P a g e
3.3.2.2 Forgot password

Figure 61: User Forgot password

3.3.2.3 Logout

Figure 62: User Logout

100 | P a g e
3.3.2.4 View product

Figure 63: User View product

3.3.2.5 Search product by name

Figure 64: User Search product by name

101 | P a g e
3.3.2.6 Manage product to sell

Figure 65: User Manage product to sell

3.3.2.7 Post product to sell

Figure 66: User Post product to sell

102 | P a g e
3.3.2.8 Create auction

Figure 67: User Create auction

3.3.2.9 Manage auction product

Figure 68: User Manage auction product

103 | P a g e
3.3.2.10 View other user's account information

Figure 69: User View other user's account infomation

3.3.2.11 Manage order

Figure 70: User Manage order

104 | P a g e
3.3.2.12 Buy product

Figure 71: User Buy product

3.3.2.13 Payment

Figure 72: User Payment

105 | P a g e
3.3.2.14 Add favorite product

Figure 73: User Add favourite product

3.3.2.15 Mange favorite product list

Figure 74: User Manage favourite product list

106 | P a g e
3.3.2.16 Manage account

Figure 75: User Manage account

3.3.3 Manager
3.3.3.1 Login

Figure 76: Manager Login

107 | P a g e
3.3.3.1 Logout

Figure 77: Manager Logout

3.3.3.1 Manage category

3.3.3.1.1 View Category

Figure 78: Manage View category

108 | P a g e
3.3.3.1.2 Create Category

Figure 79: Manage Create category

3.3.3.1.3 Update Category

Figure 80: Manager Update category

109 | P a g e
3.3.3.1.4 Delete Category

Figure 81: Manager Delete category

3.3.3.1 Manage all posting

3.3.3.1.1 View all posting

Figure 82: Manager View all posting

110 | P a g e
3.3.3.1.2 Create posting

Figure 83: Manager Create posting

3.3.3.1.3 Update posting

Figure 84: Manager Update posting

111 | P a g e
3.3.3.1.4 Delete posting

Figure 85: Manager Delete posting

3.3.4 Admin
3.3.4.1 Login

Figure 86: Admin Login

112 | P a g e
3.3.4.2 Logout

Figure 87: Manager Logout

3.3.4.3 Manage Category

3.3.4.3.1 View Category

Figure 88: Admin View category

113 | P a g e
3.3.4.3.2 Create Category

Figure 89: Admin Create category

3.3.4.3.3 Update Category

Figure 90: Admin Update category

114 | P a g e
3.3.4.3.4 Delete Category

Figure 91: Admin Delete Category

3.3.4.4 Manage all posting

3.3.4.4.1 View all posting

Figure 92: Admin View all posting

115 | P a g e
3.3.4.4.2 Create posting

Figure 93: Admin Create posting

3.3.4.4.3 Update posting

Figure 94: Admin Update posting

116 | P a g e
3.3.4.4.4 Delete posting

Figure 95: Admin Delete posting

3.3.4.5 Manage all account User and Manager

3.3.4.5.1 Create Account

Figure 96: Admin Create Account

117 | P a g e
3.3.4.5.2 Update Account Role

Figure 97: Admin Update account role

3.3.4.5.3 Ban Account

Figure 98: Admin Ban Account

118 | P a g e
VII. Testing Documentation
1. Scope of Testing
In the scope of the project, there are 3 testing phases: Unit testing, Integration testing, and
System testing.

No. Test stages Description Implementer

1 Unit testing Unit testing is written and executed by developers. Developers

2 Integration Integration testing allows a tester to combine several units Testers


testing and test them as a group. We use this testing level to
expose faults in the interaction between integrated
components. It is advantageous to evaluate how efficiently
the units are running together.

3 System System testing is the level of testing in which the complete Testers, Technical
testing application is tested as a whole. The goal is to evaluate the Leader
system’s compliance with its specified requirements.

4 Acceptance In this stage, customers verify if the system meets their Customer, BA
testing actual needs.

Table 60: Scope of Testing

2. Test Strategy
2.1 Testing Types

Figure 99: Test model

119 | P a g e
The V-model is an extension of the waterfall model. V model Testing is done in parallel to
development. It is also called a Validation and Verification Model.

Advantage:

● Simple and easy to use.


● Testing activities like planning, test designing happens before coding. Consequently,
we can avoid several defects in the system.
● Works well for our projects where requirements are easily understood.

2.2 Test Levels


Type of Tests Test Level

Unit Integration System Acceptance

Unit Test X

Integration Test X

System Testing X X

Acceptance Testing X X

Table 61: Test Levels

2.3 Supporting Tools


2.3.1 Hardware
Purpose Tool Vendor/In-house Detail

Device excuting Dell XPS 9550 15inch Dell • CPU: i7 7700HQ 3.6 GHz

test
• RAM: 16GB

• SSD: 512GB + HDD 1TB

• GPU: GTX 1060 4GB

Device excuting Huawei Nova 3i Huawei • CPU: Kirin 710 8

test
• RAM: 4GB

Table 62: Hardware

120 | P a g e
2.3.2 Software
Purpose Tool Vendor/In-house Version

Keep tracking detects Excel Microsoft 2020.10.1.14395-production

Test plan Microsoft Word Microsoft 2016

Test case, Test Report Microsoft Excel Microsoft 2016

Test recoverage Visual Studio code IBM 4.23.0


IDE

Table 63: Software

2.4 Test Processes

Figure 100: Test Processes

3. Test Plan
3.1 Human Resources
Worker/Doer Role Specific Responsibilities/Comments

Diệp Thế Sang Frontend Developer, Leader • Reviewing test case and report.

Hoàng Hải Đăng FrontEnd Developer, Tester • Performing system testing.

• Managing test resource and assign


test tasks.

• Creating a test plan.

• Creating test cases.

• Creating a test report.

• Executing test and log defect.

121 | P a g e
Nguyễn Phúc Ngọc Thành BackEnd Developer • Writing and executing unit test.

• Fixing bugs

Trần Thành Long FrontEnd Developer • Writing and executing unit test.

• Fixing bugs

Table 64: Human Resources

3.2 Test Environment

Purpose Tool Provider Version

System Testing Windows Microsoft Window 10

Detect Log Bug Excel Microsoft 2016

Table 65: Test Environment

3.3 Test Milestones

Milestone Task Start Date End Date

Iteration 1: 15/11/2022 18/11/2022

Unit Testing 15/11/2022 16/11/2022

Intergration Testing 15/11/2022 16/11/2022

System testing 17/11/2022 18/11/2022

Accepting testing 17/11/2022 18/11/2022

Iteration 2: 22/11/2022 27/11/2022

Unit Testing 22/11/2022 23/11/2022

Intergration Testing 23/11/2022 24/11/2022

System testing 24/11/2022 26/11/2022

122 | P a g e
Accepting testing 26/11/2022 27/11/2022

Table 66: Test Milestones

4. Test Cases
4.1 Integration and System Test
Detail test cases will be described in [SCH] Test Case - v1.5.xlsx file.

As a standard definition, SPCS defines that a test case is:

− A set of test data and their expected results. A test case validates one or more system
requirements and generates a pass or fail.
− A good test case should follow two basic aspects, the Contents and the Style. Test cases
for functional testing are derived from the target of test's use cases Test cases should be
developed for each use case scenario. The use case scenarios are identified by
describing the paths through the use case that traverse the basic flow and alternate flows
start to finish through the use case.

Table 67: Integration and System Test

123 | P a g e
5. Detect Log:
Excel is used to manage bugs, more details: [SCH] Integration and System Bug Log.xlsx

Processes:

− During the testing process, when a bug is found, testers access Defect Log file to
log it. The bug must be described as detailed as possible with screenshots. The
issue is then assigned to a developer, who is in charge of developing that module.
− Assigned developer checks out the issue in Defect Log file and fixes it. Once the
bug is resolved, the assigned developer changes the issue status to “DONE” and
assigns it to a tester, whose responsibility is to check the bug again.
− Tester will then verify if the bug is completely resolved. If the bug is fixed, tester
will change the status to “DONE”. If the bug is not fixed, tester will change the
status to “NOT DONE” and assign it to developer again.

Table 68: Detect Log

6. Test Reports
6.1 Unit Test Report 1

Module Class Method Status Date Done By

AccountController AccountController getCurrentAccountInformation() OK 22/03/2022 SangDT

AccountController AccountController inactiveAcount(accountIds) OK 22/03/2022 SangDT

124 | P a g e
AccountController AccountController getActiveAccount() OK 22/03/2022 SangDT

AccountController AccountController getProducts() OK 22/03/2022 SangDT

AccountEnity Account addPost(subject) OK 22/03/2022 SangDT

AccountEnity Account removePost(subject) OK 22/03/2022 SangDT

AccountEnity Account addCategory(category) OK 22/03/2022 SangDT

AccountEnity Account removeCategory(category) OK 22/03/2022 SangDT

AccountEnity Account removeAuction(auctions) OK 22/03/2022 SangDT

AccountService AccountService create(request) OK 22/03/2022 SangDT

AccountService AccountService importRegister(file) OK 22/03/2022 SangDT

AccountService AccountService generateEmail(name) OK 22/03/2022 SangDT

AccountService AccountService generateShortName(name) OK 22/03/2022 SangDT

AccountService AccountService removeAccent(string) OK 22/03/2022 SangDT

AccountService AccountService String generateRandomString() OK 22/03/2022 SangDT

AccountService AccountService generateAccountId(khoa, roleId) OK 22/03/2022 SangDT

AccountService AccountService generateNumberId(searchCode) OK 22/03/2022 SangDT

AccountService AccountService findLastAccountId(id) OK 22/03/2022 SangDT

AccountService AccountService findById(id) OK 22/03/2022 SangDT

AccountService AccountService delete(id) OK 22/03/2022 SangDT

125 | P a g e
AccountService AccountService changePassword(request) OK 22/03/2022 SangDT

AccountService AccountService getCurrentAccount() OK 22/03/2022 SangDT

AccountService AccountService setupVerifyToken(email) OK 22/03/2022 SangDT

AccountService AccountService updatePassword(request) OK 22/03/2022 SangDT

AccountService AccountService verifyToken(email, token) OK 22/03/2022 SangDT

AccountService AccountService inactiveAccount(accountIds) OK 22/03/2022 SangDT

AccountService AccountService getActiveAccounts() OK 22/03/2022 SangDT

AccountService AccountService getUser() OK 22/03/2022 SangDT

AccountService AccountService getProducts() OK 22/03/2022 SangDT

AccountRepository AccountRepository findByEmail(email) OK 22/03/2022 SangDT

AccountRepository AccountRepository findTop1ByEmailIgnoreCaseCon OK 22/03/2022 SangDT


tains(email,sort)

AccountRepository AccountRepository findTop1ByIdIgnoreCaseContain OK 22/03/2022 SangDT


s(id, sort)

AccountRepository AccountRepository findByIsActived(isActived) OK 22/03/2022 SangDT

AppController AppController success() OK 24/03/2022 ThanhNPN

AppController AppController register (request) OK 24/03/2022 ThanhNPN

AppController AppController changePassword (request) OK 24/03/2022 ThanhNPN

AppController AppController importRegister (file) OK 24/03/2022 ThanhNPN

126 | P a g e
AppController AppController getTotal() OK 24/03/2022 ThanhNPN

AuctionLogController AuctionLogControl takeAuction(request) OK 24/03/2022 ThanhNPN


ler

AuctionLogController AuctionLogControl takeAuction(requests) OK 24/03/2022 ThanhNPN


ler

AuctionLogController AuctionLogControl getByCartId(cartId) OK 24/03/2022 ThanhNPN


ler

AuctionLogRepository AuctionLogReposit findByCartId(cartId) OK 24/03/2022 ThanhNPN


ory

AuctionLogRepository AuctionLogReposit deleteByCartId(cartId) OK 24/03/2022 ThanhNPN


ory

AuctionLogRepository AuctionLogReposit findByCartIdAndProductId(cartI OK 24/03/2022 ThanhNPN


ory d, ProductId)

AuctionLogRepository AuctionLogReposit countByCartId(cartId) OK 24/03/2022 ThanhNPN


ory

AuctionLogService AuctionLogService getLogByCartId(cartId) OK 24/03/2022 ThanhNPN

AuctionLogService AuctionLogService importProductIntoCartLog(cartId OK 24/03/2022 ThanhNPN


, auctionId, description)

AuctionLogService AuctionLogService deleteLogByCartId(cartId) OK 24/03/2022 ThanhNPN

AuctionLogService AuctionLogService takeAuction(ProductId, cartId, OK 24/03/2022 ThanhNPN


status, description)

AuctionLogService AuctionLogService getByCartIdAndProductId(Produ OK 24/03/2022 ThanhNPN


ctId, cartId)

AuctionLogService AuctionLogService updateLog(request) OK 24/03/2022 ThanhNPN

AuctionController AuctionController getAll() OK 25/03/2022 DangHH

AuctionController AuctionController getById(id) OK 25/03/2022 DangHH

127 | P a g e
AuctionController AuctionController addAuction(request) OK 25/03/2022 DangHH

AuctionController AuctionController addProduct(request) OK 25/03/2022 DangHH

AuctionController AuctionController addCourseForAuction(request) OK 25/03/2022 DangHH

AuctionController AuctionController deleteCourseOutAuction OK 25/03/2022 DangHH


(auctionId, subjectId)

AuctionController AuctionController deleteProductOutAuction OK 25/03/2022 DangHH


auctionId, accountId)

AuctionController AuctionController getOnGoing () OK 25/03/2022 DangHH

AuctionController AuctionController convertToLocalDateTimeViaInst OK 25/03/2022 DangHH


ant(dateToConvert)

AuctionController AuctionController convertToDateViaInstant(dateTo OK 25/03/2022 DangHH


Convert)

AuctionEntity Auction addProduct(manager) OK 25/03/2022 DangHH

AuctionEntity Auction removeProduct(Product) OK 25/03/2022 DangHH

AuctionEntity Auction addCategory(category) OK 25/03/2022 DangHH

AuctionEntity Auction removeCategory(category) OK 25/03/2022 DangHH

AuctionService AuctionService getById(auctionId) OK 25/03/2022 DangHH

AuctionService AuctionService create(request) OK 25/03/2022 DangHH

AuctionService AuctionService addProduct(request) OK 25/03/2022 DangHH

AuctionService AuctionService generateNumberId(searchCode) OK 25/03/2022 DangHH

AuctionService AuctionService findLastAuctionId(id) OK 25/03/2022 DangHH

128 | P a g e
AuctionService AuctionService findById(auctionId) OK 25/03/2022 DangHH

AuctionService AuctionService getAll() OK 25/03/2022 DangHH

AuctionService AuctionService addCourse(request) OK 25/03/2022 DangHH

ProfileController ProfileController getProfile() OK 25/03/2022 DangHH

ProfileController ProfileController getById(id) OK 25/03/2022 DangHH

ProfileController ProfileController update accountId, request) OK 25/03/2022 DangHH

CategoryController CategoryController getOnGoingCategory() OK 25/03/2022 DangHH

CategoryController CategoryController getUpcomingCategory() OK 25/03/2022 DangHH

CategoryController CategoryController create request) OK 25/03/2022 DangHH

CategoryController CategoryController update cartId, request) OK 25/03/2022 DangHH

CategoryController CategoryController importCategory(request) OK 25/03/2022 DangHH

CategoryController CategoryController getCategoryByAccountId( OK 25/03/2022 DangHH


(accountId)

CategoryController CategoryController getCategoryById(@Id) OK 25/03/2022 DangHH

CategoryController CategoryController delete(id) OK 25/03/2022 DangHH

CategoryService CategoryService create(request) OK 25/03/2022 DangHH

CategoryService CategoryService update(cartId, request) OK 25/03/2022 DangHH

CategoryService CategoryService getGoingOnCategory() OK 25/03/2022 DangHH

CategoryService CategoryService getUpcomingCategory() OK 25/03/2022 DangHH

129 | P a g e
CategoryService CategoryService importCategory(request) OK 25/03/2022 DangHH

CategoryService CategoryService convertToLocalDateTimeViaInst OK 25/03/2022 DangHH


ant(dateToConvert)

CategoryService CategoryService convertToDateViaInstant(LocalD OK 25/03/2022 DangHH


ateTime dateToConvert)

CategoryService CategoryService getByAccountId(accountId) OK 25/03/2022 DangHH

CategoryService CategoryService getByAuctionId(auctionId) OK 25/03/2022 DangHH

CategoryService CategoryService delete(id) OK 25/03/2022 DangHH

SpecializationController SpecializationContr getAll() OK 25/03/2022 LongTT


oller

SpecializationController SpecializationContr getById(id) OK 25/03/2022 LongTT


oller

SpecializationController SpecializationContr create(request) OK 25/03/2022 LongTT


oller

SpecializationController SpecializationContr update(request) OK 25/03/2022 LongTT


oller

SpecializationEntity Specialization addPost(subject) OK 25/03/2022 LongTT

SpecializationEntity Specialization removePost(subject) OK 25/03/2022 LongTT

SpecializationService SpecializationServi findById(id) OK 25/03/2022 LongTT


ce

SpecializationService SpecializationServi getNameCode(id) OK 25/03/2022 LongTT


ce

SpecializationService SpecializationServi create(request,Post) OK 25/03/2022 LongTT


ce

SpecializationService SpecializationServi update(request, Post) OK 25/03/2022 LongTT


ce

130 | P a g e
SpecializationService SpecializationServi delete(id) OK 25/03/2022 LongTT
ce

SpecializationService SpecializationServi findByName(name) OK 25/03/2022 LongTT


ce

SpecializationService SpecializationServi getAll() OK 25/03/2022 LongTT


ce

SpecializationService SpecializationServi getById(id) OK 25/03/2022 LongTT


ce

SubjectController SubjectController getAll() OK 25/03/2022 LongTT

SubjectController SubjectController getById( id) OK 25/03/2022 LongTT

SubjectController SubjectController create(request) OK 25/03/2022 LongTT

SubjectController SubjectController update(subjectId, request) OK 25/03/2022 LongTT

SubjectController PostController delete(postId) OK 25/03/2022 LongTT

PostEntity Post addCategory(category) OK 25/03/2022 LongTT

PostEntity Post removeCategory(category) OK 25/03/2022 LongTT

PostEntity Post addSpec(specialization) OK 25/03/2022 LongTT

PostEntity Post removeSpec(specialization) OK 25/03/2022 LongTT

PostEntity Post addManager(manager) OK 25/03/2022 LongTT

PostEntity Post removeManager(manager) OK 25/03/2022 LongTT

Postervice Postervice create(request) OK 25/03/2022 LongTT

Postervice Postervice findById(postId) OK 25/03/2022 LongTT

131 | P a g e
Postervice Postervice getAll() OK 25/03/2022 LongTT

Postervice Postervice update(postId, request) OK 25/03/2022 LongTT

Postervice Postervice delete(postId) OK 25/03/2022 LongTT

Postervice Postervice save(post) OK 25/03/2022 LongTT

Total Test Case 126 OK


Table 69: Unit Test Report 1

6.2 API Testing


6.2.1 Framework And Tool: Open API
Open API Specification (formerly known as Swagger Specification) is an open-source
format for describing and documenting APIs. The Specification was originally developed in
2010 by Reverb Technologies (formerly Wordnik) as a way to keep the API design and
documentation in sync. It has since become a de-facto standard for designing and describing
RESTful APIs, and is used by millions of developers and organizations for developing their
APIs, be it internal or client facing.

Table 70: Open API UI

132 | P a g e
Table 71: Open API Reques UI

Figure 101: Open API Responses UI

133 | P a g e
6.3 System Test Case Reports

Figure 102: Intergration System Test Report

Figure 103: Intergration System Test Report

Figure 104: Intergration System Test Report

134 | P a g e
Report5_Test Report_Version1.0.0.xls

135 | P a g e
VIII. Release Package & User Guides
1. Deliverable Package
No. Deliverable Item Description

1 Source Codes Second-hand-market-Frontend

Second-hand-market-Backend

2 Database Script MySQL

3 Final Report Document Report7_Final Project Report.docx

Table 72: Deliverable Package

2. Installation Guides
2.1 System Requirements
2.1.1. Hardware Requirements
Name Minimum Required Recommend

Operating System Window 7, Linux (Ubuntu 18.04 Window 10, Linux (Ubuntu 20.04 LTS) (64-
LTS) (32-bit) bit)

Computer Processor >= 2 core 3.0 GHz Intel CPU Intel® CoreTM i7 Processors

Computer Memory 4 GB 8 GB

Storage Space 128 GB SSD 256 GB SSD or more

Table 73: Hardware Requirements

2.1.2. Software Requirement


No. Name Version Description

1 Web browser Chrome, Firefox, Microsoft Edge Using for development

2 Modelling tool Draw.io Software modeling tool

3 Visual Studio Code 1.73.1 Code Editor

4 Github 2.37.1 Version control

Table 74: Software Requirement

2.2 Installation Instruction


− Set up Operating System.
− Configure environment variables.

136 | P a g e
− Go to folder remo:
+ cd Second-hand-market-Frontend
+ Terminal npm start
+ cd Second-hand-market-Backend
+ Terminal npm start

3. User Manual
3.1 Web Feature
3.1.2 Register
This is the function to register a new user account.

- Step 1: Go into the login page of the system with the following link:

Figure 105: Step 1 in the Register

- Step 2: Click on “Bạn chưa có tài khoản? Đăng ký”

- Step 3: Type in the all information of the account requested.

137 | P a g e
- Step 4: Press enter key on keyboard or Click "Gửi OTP" button.

Figure 106: Step 4 in the Register

138 | P a g e
- Step 5: Input OTP from your email to register

Figure 107: Step 5 in the Reigster

3.1.1 Login
- Step 1: Access into SecondHand Market Web System

139 | P a g e
- Step 2: Enter “Email” and “Password” then Click Login Button

Figure 108: Step 2 in the Login

3.1.3 Logout
- Click DownArrow Icon Left to Avatar

- Selected Log Out

3.1.4 Search Product


- Step 1: Click on

- Step 2: Input name product to search

140 | P a g e
- Step 3: Search results are displayed

Figure 109: Step 3 in the Search product

141 | P a g e
3.1.5 View Product
- Step 1: At the home screen, the user can see the displayed products.

Figure 110: Step 1 in the View product

142 | P a g e
- Step 2: Click on any of the displayed posts.

Figure 111: Step 2 in the View product

143 | P a g e
- Step 3: The user was able to see a detailed post describing the product.

Figure 112: Step 3 in the View product

144 | P a g e
3.1.6 Filter product
3.1.6.1 Filter product by location
This is a function to filter posts by a location close to the user.
- When the user first logs into the account and accesses the system. The system will
display 3 locations (Hanoi Capital, Da Nang City, and Ho Chi Minh City) for users to
choose the nearest location. Then the diplomas posted near that location will be
prioritized to be displayed to that user.

Figure 113: Filter product by location

145 | P a g e
3.1.6.2 Filter product by category
- Step 1: At the home screen, the user can filter by the desired category. By entering
select a "Thể loại".

Figure 114: Step 1 in the Filter product by category 1

146 | P a g e
Figure 115: Step 1 in the Filter product by category 2

- Step 2: After clicking select 1 "Thể loại". Users can see products by that category.

Figure 116: Step 2 in the Filter product by category

147 | P a g e
- Step 3: At the screen, the list of posts has been filtered by category. Users can further
filter posts by subcategory. By clicking on any subcategory.

Figure 117: Step 3 in the Filter product by category

148 | P a g e
- Step 4: After the user has filtered product posts by subcategory. Users can still filter in
more detail such as filtering by “Trạng thái”, “Giá” and “Thành phố”.

Filter by product status

Figure 118: Step 4 in the Filter product by category 1

149 | P a g e
Filter by product price

Figure 119: Step 4 in the Filter by category 2

150 | P a g e
Filter by city

Figure 120: Step 4 in the Filter by category 3

- Step 5: If the user wants to filter by product status "Sản phẩm cũ". All product posts
that are in the old state of that category are displayed.

Figure 121: Step 5 in the Filter by category

151 | P a g e
3.1.7 Manage product to sell
3.1.7.1 Manage post
- Step 1: Click on “Quản Lý Tin” on header

Figure 122: Step 1 in the Post management of Product management for sale

152 | P a g e
- Step 2: Posted posts are displayed below

Figure 123: Step 2 in the Post management of Product management for sale

153 | P a g e
- Step 3: Users can use the functions of editing posts, hiding posts, and deleting posts.

+ This is the post editor function.

From the results when clicking on the post. Click "Sửa" to use the post editing function

Figure 124: Step 3 in the Post management of Product management for sale

154 | P a g e
Users can edit the information in the post.

Figure 125: Step 3 in the Manage Post of Product management for sale 1

155 | P a g e
+ This is the function to hide the post. Users can hide their posts so others can't see
their posts. Click "Ẩn" to use the post hiding function

Figure 126: Step 3 in the Manage Post of Product management for sale 2

156 | P a g e
That post will go to the hidden post list item

Figure 127: Step 3 in the Manage Post of Product management for sale 3

157 | P a g e
+ This is the post delete function. Click "Xóa" to use the post deleting function

Figure 128: Step 3 in the Manage Post of Product management for sale 4

158 | P a g e
Click on “có” to yes,click on “Không” to reject

Figure 129: Step 3 in the Manage Post of Product management for sale 5

159 | P a g e
3.1.7.2 Manage auction
- Step 1: Click on “Quản Lý Tin” on header

Figure 130: Step 1 in the Manage auction of Product management for sale

- Step 2: Screen results when switching to posting management. Click "Đấu giá" to
view and manage auction posts.

Figure 131: Step 2 in the Manage auction of Product management for sale

160 | P a g e
- Step 3: At the auction management screen, users can perform the functions of product
management for sale such as editing posts, hiding posts, and deleting posts.

+ This is the auction post editing function. Click "Sửa" to use the post editing
function

Figure 132: Step 3 in the Manage auction of Product management for sale 1

161 | P a g e
Enter the edit information to update the auction post.

Figure 133: Step 3 in the Manage auction of Product management for sale 2

162 | P a g e
+ This is an arbitrary auction post-hiding function. Users can click the "Ẩn" button at
the auction post management screen. And can unhide to show the auction post again
when clicking the "Hiển thị" button on the hidden post management screen.

Figure 134: Step 3 in the Manage auction of Product management for sale 3

163 | P a g e
+ This is the function to delete the auction post. Click "Xóa" to use the post deleting
function

Figure 135: Step 3 in the Manage auction of Product management for sale 4

164 | P a g e
Click on “có” to yes,click on “Không” to reject

Figure 136: Step 3 in the Manage auction of Product management for sale 5

165 | P a g e
3.1.7.2 Manage hide post
- Step 1: Click on “Quản Lý Tin” on header

Figure 137: Step 1 in the Manage hide post of Product management for sale

- Step 2: Screen results when switching to message management

Figure 138: Step 2 in the Manage hide post of Product management for sale

166 | P a g e
3.1.8 Post product to sell

- Step 1: Click "Đăng tin"

- Step 2: Enter all product post information including category, subcategory, product
name, product status, warranty, origin, product description, price, and address.
Note: You can click on "Sản phẩm dùng để cho tặng" if you want to post products
priced at 0 VND. You can click on "Đấu giá" if you want to post products to create an
auction. Do not select any if you want to post the product as a regular post.

Figure 139: Step 2 in the Post product to selll

167 | P a g e
- Step 3: Enter complete product information and click "Thêm Hình Ảnh"

Figure 140: Step 3 Post product to sell 1

After adding the image will show as below

Figure 141: Step 3 Post product to sell 2

168 | P a g e
- Step 4: Click on “Tạo Bài Viết”

Figure 142: Step 4 in the Post product to sell 1

After successful creation, the message will be displayed

169 | P a g e
After successful creation will go to the product detail screen

Figure 143: Step 4 in the Post product to sell 2

3.1.9 Create auction

170 | P a g e
- Step 1: Click "Đăng tin"
- Step 2: Enter all product post information including category, subcategory, product
name, product status, warranty, origin, product description, price, and address.
Note: You can click on "Sản phẩm dùng để cho tặng" if you want to post products
priced at 0 VND. You can click on "Đấu giá" if you want to post products to create an
auction. Do not select any if you want to post the product as a regular post.

Figure 144: Step 2 in the Create auction 1

171 | P a g e
Enter complete product information (tick on “Đấu Giá”) and click "Thêm Hình
Ảnh"

Figure 145: Step 2 in the Create auction 2

172 | P a g e
- Step 3: More detailed pictures

Figure 146: Step 3 in the Create auction 1

173 | P a g e
After uploading the image will appear as follows

Figure 147: Step 3 in the Create auction 2

174 | P a g e
- Step 4:Click on “Tạo Bài Viết”

Figure 148: Step 4 in the Create auction 1

After successful creation, the message will be displayed

175 | P a g e
After successful creation will go to the product detail screen

Figure 149: Step 4 in the Create auction 2

176 | P a g e
3.1.10 Manage auction product
− Step 1: Click on “Quản Lý Tin” on header

Figure 150: Step 1 in the Manage auction product

177 | P a g e
- Step 2: Screen results when switching to posting management. Click "Đấu giá" to
view and manage auction posts.

Figure 151: Step 2 in the Manage auction product

178 | P a g e
- Step 3: At the auction management screen, users can perform the functions of product
management for sale such as editing posts, hiding posts, and deleting posts.

+ This is the auction post editing function. Click "Sửa" to use the post editing
function

Figure 152: Step 3 in the Manage auction product 1

179 | P a g e
Enter the edit information to update the auction post.

Figure 153: Step 3 in the Manage auction product 2

180 | P a g e
+ This is an arbitrary auction post-hiding function. Users can click the "Ẩn" button
at the auction post management screen. And can unhide to show the auction post again
when clicking the "Hiển thị" button on the hidden post management screen.

Figure 154: Step 3 in the Manage auction product 3

181 | P a g e
Figure 155: Step 3 in the Manage auction product 4

182 | P a g e
+ This is the function to delete the auction post. Click "Xóa" to use the post deleting
function .

Figure 156: Step 3 in the Manage auction product 5

183 | P a g e
Click on “có” to yes. Click on “Không” to reject

Figure 157: Step 3 in the Manage auction product 6

184 | P a g e
3.1.11 Schedule product auction
- Step 1: Click on a product that says “đang đấu giá”

Figure 158: Step 1 in the Schedule product auction

185 | P a g e
- Step 2: After clicking on the auction will appear as below

Figure 159: Step 2 in the Schedule product auction

186 | P a g e
- Step 3: Enter the amount in the "Tôi trả" textfield

Figure 160: Step 3 in the Schedule product auction 1

187 | P a g e
After entering, the amount of bidders will be displayed

Figure 161: Step 3 in the Schedule product auction 2

188 | P a g e
When you bid the highest, you will become the winner and will show the popup like
below

Figure 162: Step 3 in the Schedule product auction 3

189 | P a g e
Click on ”đi đến giỏ hàng” to pay product

Figure 163: Step 3 in the Schedule product auction 4

3.1.12 View other user’s account


− When clicking on another user's avatar. Users can view his/her personal information.

190 | P a g e
Figure 164: View other user's account

Figure 3.2.12.2 other user’s profile Screen

191 | P a g e
3.1.13 Manage order
- Step 1: Click on “Đơn hàng” on header

Figure 165: Step 1 in the Manage order

- Step 2: After clicking on " Đơn" will display dropdown as below. Click on "Đơn
Mua"

Figure 166: Step 2 in the Manage order

192 | P a g e
− Step 3: After clicking on "Đơn mua" you can see the pending application for
confirmation

Figure 167: Step 3 in the Manage order

− Step 4: Click on "Đang xử lý" to view pending orders from the seller

Figure 168: Step 4 in the Manage order

193 | P a g e
3.1.15 Buy product
− Step 1: On the main page, click on any product

Figure 169: Step 1 in the Buy product

− Step 2: When you click on any product, you will go to the product detail screen, click
on“Mua”

194 | P a g e
- Step 3: Click on“Mua” to add product to cart

Figure 170: Step 3 in the Buy product

- Step 4: After clicking "buy" the product will be added to the cart as shown below

195 | P a g e
Figure 171: Step 4 in the Buy product

3.1.16 Payment
- Step 1: From the shopping cart screen, click on "Purchase" to pay

Figure 172: Step 1 in the Payment

- Step 2: After clicking "buy" will go to the payment screen

196 | P a g e
Figure 173: Step 2 in the Payment

- Step 3: Click on “Thanh toán khi nhận hàng”for shipping COD

- Step 4: Click on “Paypal” to Online payment

- Step 5: After clicking on "paypal" will display the paypal


screen below

197 | P a g e
Figure 174: Step 5 in the Payment

- Step 6: Click on “Continue to review oder”


to finish payment

After successful payment, you will be redirected to the page below

198 | P a g e
Figure 175: Step 6 in the Payment

3.1.17 Add Favourite product


− Step 1: From home screen, click on any product
− Step 2: Click on icon “like” to add product to favorite product list

199 | P a g e
Figure 176: Step 2 in the Add favourite product

3.1.18 Manage favourite product list

- Step 1: Click on “Quản lý tin” on header

200 | P a g e
Figure 177: Step 1 in the Manage favorite product list

- Step 2: Click on “Yêu Thích”

Figure 178: Step 2 in the Manage favourite product list

- Step 3: After clicking on "Yêu thích" your favorite product will appear as below

201 | P a g e
Figure 179: Step 3 in the Manage favourite product list

3.1.19 Admin manage account

- Step 1: When logged in with the admin account. select "Quản lý người dùng" item
will display as below

Figure 180: Step 1 in the Admin manage account

- Step 2: You can manage users by clicking on the icon as shown below

Figure 181: Step 2 in the Admin manage account

202 | P a g e
- Step 3: You can edit or delete an account from the system
+ Choose edit to edit user
+ Choose delete to remove the user from the system

Figure 182: Step 3 in the Admin manage account

IX. Conclusion
1.Summary of the results of the project have been achieved
Small-scale, short-term software development projects and groups, or from written
management, using tools such as tools and excel to software, find that:
Easier to interact with members
User-friendly interface, easy to use, necessary functions are distributed very logically
and logically, thus reducing the time of create product to sell, User management,
Auction forms, ...
Customers appreciate the professionalism and thoroughness at in buying and selling.

2. Advantages and disadvantages of the software/solution compared to the


set goals
2.1 Advantages
− Reduce time and costs when managing buying and selling.
− Friendly interface, easy to use with users.
− Relatively complete functionality for a project.
− Increase the ability to communicate and connect between user.
2.2 Disadvantages
− The project is too simple compared to other applications in terms of functionality. For
example, For example, the project is not financially able to work with the shipper, ...

3. In the next stage


− The product will be improved in terms of functions and shortcomings.
− The currency used in the system will have more uses.
− Develop more functions in terms of project security.

203 | P a g e
X. Appendix References
[1] Advantages and disadvantages and popular working models [online] at <
https://www.chotot.com/ > < https://chodocu.com/ >[Access September 2022].
[2] The Ultimate List of Remote Work Statistics for 2022 [online] at <
https://findstack.com/remote-work-statistics> [Access September 2022].
[3] pros and cons of buying second hand [online] at < https://environmental-
conscience.com/buying-secondhand-products-pros-cons/ > [Access September 2022].
[4] What is Project Manager? Project Manager's job [online] at <
https://topdev.vn/blog/project-managerla-gi> [Access September 2022].
[5] The Benefits of Shoping online [online] at < https://toughnickel.com/frugal-
living/Online-shopping-sites-benefits > [Access September 2022].
[6] The people who hate Shoping online [online] at < https://www.quora.com/Why-do-
people-hate-doing-online-shopping > [Access September 2022].
[7] How to bring people closer to online shopping [online] at <
https://www.shopify.com/blog/15460013-how-to-drive-targeted-traffic-to-your-online-
store-video > [Access October 2022].
[8] What problems can online shopping solve? [online] at <
https://www.prefixbox.com/blog/online-shopping-problems/ > [Access October 2022].
[9] Trello [online] at < https://trello.com/ > [Access October 2022].
[10] ClickUp [online] at < https://clickup.com/ > [Access October 2022].
[11] Jira [online] at < https://www.atlassian.com/software/jira> [Access October 2022].
[12] Socket.IO [online] at < https://socket.io/ > [Access November 2022].
[13] WebRTC [online] at < https://webrtc.org/> [Access November 2022].
[14] Jenkins [online] at < https://www.jenkins.io/ > [Access November 2022].
[15] React [online] at < https://reactjs.org/ > [Access November 2022].
[16] Axios [online] at < https://axios-http.com/ > [Access November 2022].
[17] NGINX [online] at < https://docs.nginx.com/nginx/admin-guide/installing-
nginx/installing-nginxdocker/ > [Access November 2022].
[18] Nodejs [online] at < https://nodejs.org/en/ > [Access November 2022].
[19] Github [online] at < https://github.com/> [Access November 2022].

204 | P a g e

You might also like