CAPSTONE PROJECT REPORT
Report 4 – Software Design Document
– HCM, August 2024 –
Table of Contents
I. Record of Changes ...................................................................................................................................... 1
II. Software Design Document .......................................................................................................................2
1. System Design ................................................................................................................................... 2
1.1 System Architecture ................................................................................................................ 2
1.2 Package Diagram .....................................................................................................................2
2. Database Design ................................................................................................................................ 5
3. Detailed Design ............................................................................................................................... 25
3.1 Create Design ........................................................................................................................ 25
3.1.1 Class Diagram ........................................................................................................... 25
3.1.2 Sequence Diagram ......................................................................................................26
3.2 Update Design ....................................................................................................................... 26
3.2.1 Class Diagram ............................................................................................................ 26
3.2.2 Sequence Diagram ......................................................................................................27
3.3 Create Order .......................................................................................................................... 28
3.3.1 Class Diagram ............................................................................................................ 28
3.3.2 Sequence Diagram ......................................................................................................28
3.4 Cancel Order ..........................................................................................................................29
3.4.1 Class Diagram ............................................................................................................ 29
3.4.2 Sequence Diagram ......................................................................................................30
3.5 Sequence Diagram .................................................................................................................30
3.5.1. Create Design ............................................................................................................ 30
3.5.2 Update Design ............................................................................................................ 31
3.5.3 Create Order ............................................................................................................... 31
3.5.4 Cancel Order ...............................................................................................................31
3.5.5 Brand Add New Brand Material By Excel File ..........................................................33
3.5.6 Register New Brand ................................................................................................... 33
3.5.7 Register New Customer ..............................................................................................34
3.6 Activity Diagram ................................................................................................................... 34
1. Create design ................................................................................................................... 34
2. Choose item mask material ............................................................................................. 35
3. Create order ..................................................................................................................... 36
4. Cancel order .....................................................................................................................37
5. Request sample product ...................................................................................................38
6. Payment ........................................................................................................................... 39
7. View order list ................................................................................................................. 40
8. View product list ............................................................................................................. 41
9. View order detail ............................................................................................................. 42
10. Sign in ............................................................................................................................43
11. Update order status ........................................................................................................ 44
12. Cancel Order ..................................................................................................................45
14. Create Order .................................................................................................................. 46
3.7 State Chart Diagram .............................................................................................................. 47
3.7.1 Order Process ............................................................................................................. 47
I. Record of Changes
Date A* In charge Change Description
M, D
*A - Added M - Modified D - Deleted
1
II. Software Design Document
1. System Design
1.1 System Architecture
Image 59 - System Architecture
1.2 Package Diagram
1.2.1 Back-end
Image 60 - Back-end
2
Package Descriptions
No Package Description
1 controller Contains MVC Controllers.
2 service Contains service interfaces for the application.
3 serviceImpl Contains service implementations for the service interfaces.
Contains interfaces and implementation classes for accessing the data
4 repository
persistence system (the database).
Contains custom exception classes used by exception handlers to return
5 exception
error messages.
Contains exception handler classes for processing exceptions during
6 handler
request handling.
Contains configuration classes for various services and components such
7 config
as security, WebSocket, Jackson, etc.
8 enums Contains enum classes for common constants used across various layers.
Contains entity classes mapped to database tables for read and write
9 entities
operations.
Contains utility classes providing general methods used across various
10 utils
layers.
Contains custom interfaces and classes for validating requests and data
11 validate
received from controllers.
Contains custom interfaces for mapping entity classes to custom
12 mapper
response classes.
13 constant Contains custom string constants used across various layers.
14 event Contains custom event classes for event-driven architecture.
Contains event listener classes that handle events defined in the event
15 listener
classes.
Table 16 - Package Description
3
1.2.2 Front-end
Image 61 - Front-end
Package Descriptions
No Package Description
The main source directory contains all the components, assets, services,
1 /Src
and other files required for the frontend application.
This directory contains different screens or views of the application,
2 /Screens each representing a specific part of the user interface, such as home,
Sign In, dashboard, etc.
Reusable components that can be used across multiple screens, such as
3 /Components
buttons, forms, headers, footers, and other UI elements.
This folder typically contains data models or types that represent the
4 /Models
shape and structure of the data used in the application. It may include
4
interfaces and classes.
A directory for storing static assets like images, fonts, icons, and styles
5 /Assets
that are used throughout the application.
Contains service files responsible for handling API calls, business logic,
6 /Services
and other external interactions required by the frontend application.
Stores Redux-related files such as actions, reducers, and store
7 /Redux
configurations, used for managing the application's global state.
This folder holds the routing configuration, defining the paths and
8 /Routes
components that correspond to each route in the application.
Utility functions and helper methods that are used across various parts of
9 /Utils the application for common tasks like data manipulation, formatting, and
more.
Table 17 - Package Description
2. Database Design
5
Image 62 - Database Design
6
2.1. Table Descriptions - Data Dictionary
2.1.1 Users
Field Name Type PK/FK Unique
user_id varchar(14) PK X
full_name varchar(50)
email varchar(255) X
image_url text
language varchar(50)
password varchar(255)
phone_number varchar(12) X
provider enum
user_status enum
role_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 18 - Users Dictionary
2.1.2 Using_Notification
Field Name Type PK/FK Unique
using_notification_id varchar(14) PK X
notification_id varchar(14) FK
user_id varchar(14) FK
Table 19 - Using Notification Dictionary
7
2.1.3 Verification_Token
Field Name Type PK/FK Unique
verification_token_id varchar(14) PK X
expiration_date_time datetime(6)
is_enabled bit(1)
token varchar(14) X
type_of_verification enum
user_id varchar(14) FK
Table 20 - Verify Token
2.1.4 Token
Field Name Type PK/FK Unique
token_id varchar(14) PK X
expired bit(1)
revoked bit(1)
token varchar(255) X
token_type enum
user_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 21 - Token
8
2.1.5 Task
Field Name Type PK/FK Unique
task_id varchar(14) PK X
detail varchar(255)
task_status bit(1)
title varchar(100)
employee_id varchar(14) FK
order_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 22 - Task
2.1.6 System_Properties
Field Name Type PK/FK Unique
property_id varchar(14) PK X
property_detail varchar(255)
property_name varchar(50) X
property_status bit(1)
property_type varchar(50)
property_unit varchar(50)
property_value varchar(100)
create_date datetime(2)
last_modified_date datetime(2)
Table 23 - System Properties
9
2.1.7 System_Image
Field Name Type PK/FK Unique
image_id varchar(14) PK X
image_name varchar(50)
image_status bit(1)
image_type varchar(50)
image_url longtext
is_premium bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 24 - System Image
2.1.8 Size_Expert_Tailoring
Field Name Type PK/FK Unique
expert_tailoring_id varchar(14) FK
size_id varchar(14) FK
ratio double
status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 25 - Size Expert Tailoring
2.1.9 Size
Field Name Type PK/FK Unique
size_id varchar(14) PK X
size_name varchar(5)
status bit(1)
10
create_date datetime(2)
last_modified_date datetime(2)
Table 26 - Size
2.1.10 Sample_Product_Data
Field Name Type PK/FK Unique
sample_model_id varchar(14) PK X
description varchar(255)
image_url longtext
status bit(1)
video longtext
brand_id varchar(14) FK
order_id varchar(14) FK
stage_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 27 - Sample Product Data
2.1.11 Roles
Field Name Type PK/FK Unique
role_id varchar(14) PK X
role_name varchar(20)
create_date datetime(2)
last_modified_date datetime(2)
Table 28 - Roles
2.1.12 Report_Image
Field Name Type PK/FK Unique
report_image_id varchar(14) PK X
report_image_name varchar(50)
11
report_image_url longtext
report_id varchar(14) FK
report_image_status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 29 - Report Image
2.1.13 Report
Field Name Type PK/FK Unique
report_id varchar(14) PK X
content text
report_status bit(1)
type_of_report varchar(50)
order_id varchar(14) FK
user_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 30 - Report
2.1.14 PayOS
Field Name Type PK/FK Unique
payosid int PK X
amount int
checkout_url varchar(255)
order_code int
qr_code varchar(255)
12
status varchar(20)
create_date datetime(2)
last_modified_date datetime(2)
Table 31 - PayOS
2.1.15 Payment
Field Name Type PK/FK Unique
payment_id varchar(14) PK X
payment_amount int
payment_code int
payment_method enum
payment_recipient_bank_code varchar(50)
payment_recipient_bank_number varchar(50)
payment_recipient_name varchar(50)
payment_sender_bank_code varchar(50)
payment_sender_bank_number varchar(50)
payment_sender_name varchar(50)
payment_status bit(1)
payment_type enum
payment_url text
order_id varchar(14) FK
payment_recipient_id varchar(14) FK
payment_sender_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 32 - Payment
13
2.1.16. Part_Of_Design
Field Name Type PK/FK Unique
part_of_design_id varchar(14) PK X
height int
image_url longtext
part_of_design_name varchar(50)
real_part_image_url longtext
success_image_url longtext
width int
design_id varchar(14) FK
material_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 33 - Part Of Design
2.1.17 Order_Stage
Field Name Type PK/FK Unique
stage_id varchar(14) PK X
current_quantity int
remaining_quantity int
stage enum
status bit(1)
order_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 34 - Order Stage
14
2.1.18 Orders
Field Name Type PK/FK Unique
order_id varchar(14) PK X
address varchar(255)
buyer_name varchar(50)
district varchar(100)
estimated_delivery_date datetime(2)
expected_product_completion_date datetime(2)
expected_start_date datetime(2)
order_status enum
order_type varchar(20)
phone varchar(12)
product_completion_date datetime(2)
production_start_date datetime(2)
province varchar(100)
quantity int
rating float
total_price int
ward varchar(100)
employee_id varchar(14) FK
parent_order_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 35 - Orders
15
2.1.19 Notification
Field Name Type PK/FK Unique
notification_id varchar(14) PK X
action varchar(100)
message varchar(255)
status bit(1)
target_id varchar(14)
type varchar(255)
recipient_id varchar(14) FK
sender_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 36 - Notification
2.1.20 Material
Field Name Type PK/FK Unique
material_id varchar(14) PK X
base_price int
hs_code decimal(38,0)
material_name varchar(50)
status bit(1)
unit varchar(50)
category_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 37 - Material
16
2.1.21 Labor_Quantity
Field Name Type PK/FK Unique
labor_quantity_id varchar(14) PK X
labor_quantity_max_price int
labor_quantity_max_quantity int
labor_quantity_min_price int
labor_quantity_min_quantity int
status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 38 - Labor Quantity
2.1.22 Item_Mask
Field Name Type PK/FK Unique
item_mask_id varchar(14) PK X
bottom_left_radius float
bottom_right_radius float
image_url longtext
index_z int
is_system_item bit(1)
item_mask_name varchar(50)
position_x float
position_y float
print_type enum
rotate float
17
scale_x float
scale_y float
status bit(1)
top_left_radius float
top_right_radius float
type_of_item varchar(50)
material_id varchar(14) FK
part_of_design_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 39 - Item Mask
2.1.23 Expert_Tailoring_Material
Field Name Type PK/FK Unique
expert_tailoring_id varchar(14) FK
material_id varchar(14) FK
status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 40 - Expert Tailoring Material
2.1.24 Expert_Tailoring
Field Name Type PK/FK Unique
expert_tailoring_id varchar(14) PK X
expert_tailoring_name varchar(50)
18
model_image_url longtext
size_image_url longtext
status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 41 - Expert Tailoring
2.1.25 Employee
Field Name Type PK/FK Unique
employee_id varchar(14) PK X
fail_task int
pending_task int
success_task int
total_task int
create_date datetime(2)
last_modified_date datetime(2)
Table 42 - Employee
19
2.1.26 Design_Detail
Field Name Type PK/FK Unique
design_detail_id varchar(14) PK X
quantity int
brand_id varchar(14) FK
design_id varchar(14) FK
order_id varchar(14) FK
size_id varchar(14) FK
detail_status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 43 - Design Detail
2.1.27 Design
Field Name Type PK/FK Unique
design_id varchar(14) PK X
color varchar(10)
image_url longtext
max_weight float
min_weight float
public_status bit(1)
title_design varchar(50)
expert_tailoring_id varchar(14) FK
user_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 44 - Design
20
2.1.28 Customer
Field Name Type PK/FK Unique
customer_id varchar(14) PK X
address varchar(255)
date_of_birth datetime(6)
district varchar(100)
gender bit(1)
number_of_violations int
province varchar(100)
ward varchar(100)
create_date datetime(2)
last_modified_date datetime(2)
Table 45 - Customer
2.1.29 Category
Field Name Type PK/FK Unique
category_id varchar(14) PK X
category_name varchar(50)
status bit(1)
create_date datetime(2)
last_modified_date datetime(2)
Table 46 - Category
21
2.1.30 Brand_Properties
Field Name Type PK/FK Unique
brand_property_id varchar(14) PK X
brand_property_status bit(1)
brand_property_value varchar(150)
brand_id varchar(14) FK
property_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 47 - Brand Properties
2.1.31 Brand_Material
Field Name Type PK/FK Unique
brand_id varchar(14) FK
material_id varchar(14) FK
brand_price int
create_date datetime(2)
last_modified_date datetime(2)
Table 48 - Brand Material
2.1.32 Brand_Labor_Quantity
Field Name Type PK/FK Unique
brand_id varchar(14) FK
labor_quantity_id varchar(14) FK
brand_labor_cost_per_quantity int
status bit(1)
22
create_date datetime(2)
last_modified_date datetime(2)
Table 49 - Brand Labor Quantity
2.1.33 Brand_Image
Field Name Type PK/FK Unique
image_id varchar(14) PK X
image_description varchar(255)
image_url longtext
status bit(1)
brand_id varchar(14) FK
Table 50 - Brand Image
2.1.34 Brand_Expert_Tailoring
Field Name Type PK/FK Unique
brand_id varchar(14) FK
expert_tailoring_id varchar(14) FK
create_date datetime(2)
last_modified_date datetime(2)
Table 51 - Brand Expert Tailoring
23
2.1.35 Brand
Field Name Type PK/FK Unique
brand_id varchar(14) PK X
qr_payment varchar(255)
account_name datetime(100)
account_number varchar(50)
address varchar(255)
bank_name varchar(100)
brand_name varchar(50)
brand_status enum
district varchar(100)
number_of_ratings int
number_of_violations int
province varchar(100)
rating float
tax_code varchar(255)
total_rating_score float
ward varchar(100)
create_date datetime(2)
last_modified_date datetime(2)
Table 52 - Brand
24
3. Detailed Design
3.1 Create Design
3.1.1 Class Diagram
Image 63 - Create Design Class Diagram
25
3.1.2 Sequence Diagram
Image 64 - Create Design Sequence Diagram
3.2 Update Design
3.2.1 Class Diagram
Image 65 - Update Design Class Diagram
26
3.2.2 Sequence Diagram
Image 66 - Update Design Sequence Diagram
27
3.3 Create Order
3.3.1 Class Diagram
Image 67 - Create Order Class Diagram
3.3.2 Sequence Diagram
Image 68 - Create Order Sequence Diagram
28
3.4 Cancel Order
3.4.1 Class Diagram
Image 69 - Cancel Order Class Diagram
29
3.4.2 Sequence Diagram
Image 70 - Cancel Order Sequence Diagram
3.5 Sequence Diagram
3.5.1. Create Design
Image 71 - Create Design Sequence Diagram
30
3.5.2 Update Design
Image 72 - Update Design Sequence Diagram
3.5.3 Create Order
Image 73 - Create Order Sequence Diagram
3.5.4 Cancel Order
31
Image 74 - Cancel Order Sequence Dìagram
32
3.5.5 Brand Add New Brand Material By Excel File
Image 75 - Brand Add New Brand Material By Excel File Sequence Diagram
3.5.6 Register New Brand
33
Image 76 - Register New Brand
3.5.7 Register New Customer
Image 77 - Register New Customer
3.6 Activity Diagram
1. Create design
Image 78 - Create Design Activity Diagram
34
2. Choose item mask material
35
Image 79 - Choose Item Mask Material Activity Diagram
3. Create order
Image 80 - Create Order Activity Diagram
36
4. Cancel order
Image 81 - Cancel Order Activity Diagram
37
5. Request sample product
Image 82 - Request Sample Product Activity Diagram
38
6. Payment
Image 83 - Payment Activity Diagram
39
7. View order list
Image 84 - View Order List Activity Diagram
40
8. View product list
Image 85 - View List Product Activity Diagram
41
9. View order detail
Image 86 - View Order Detail Activity Diagram
42
10. Sign in
Image 87 - Sign In Activity Diagram
43
11. Update order status
Image 88 - Update Order Status Activity Diagram
44
12. Cancel Order
13.
Image 89 - Cancel Order Activity Diagram
45
14. Create Order
Image 90 - Create Order Activity Diagram
46
3.7 State Chart Diagram
3.7.1 Order Process
Table 53 - Order Process Flow State Chart
47