0% found this document useful (0 votes)
5 views50 pages

Software Design Document Overview

The Software Design Document outlines the architecture, database design, and detailed design of a software system, including various diagrams such as class and sequence diagrams. It provides a comprehensive overview of system components, their interactions, and data structures, including user and order management. The document serves as a guide for developers to understand the system's design and implementation details.

Uploaded by

tammt13122002
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)
5 views50 pages

Software Design Document Overview

The Software Design Document outlines the architecture, database design, and detailed design of a software system, including various diagrams such as class and sequence diagrams. It provides a comprehensive overview of system components, their interactions, and data structures, including user and order management. The document serves as a guide for developers to understand the system's design and implementation details.

Uploaded by

tammt13122002
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

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

You might also like