1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website bán laptop và Điện thoại

105 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Bán Laptop Và Điện Thoại
Tác giả Trần Mạnh Cường, Vy Minh Khánh Hoa
Người hướng dẫn PGS.TS. Hoàng Văn Dũng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 105
Dung lượng 9,64 MB

Nội dung

MỞ ĐẦU 2 sản phẩm có trên hệ thống, quản lý trạng thái các đơn hàng, quản lý thông tin cá nhân, thanh toán, tìm kiếm và lọc sản phẩm nâng cao,… Ngoài ra, website còn hỗ trợ quản trị viên

Trang 1

THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Tp Hồ Chí Minh, tháng 7 năm 2024

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG WEBSITE BÁN LAPTOP VÀ ĐIỆN THOẠI

GVHD: PGS.TS HOÀNG VĂN DŨNG SVTH: TRẦN MẠNH CƯỜNG

VY MINH KHÁNH HOA

S K L 0 1 3 9 1 1

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE BÁN LAPTOP VÀ ĐIỆN THOẠI

GIẢNG VIÊN HƯỚNG DẪN: PGS.TS HOÀNG VĂN DŨNG

SINH VIÊN THỰC HIỆN: TRẦN MẠNH CƯỜNG - 19110159

VY MINH KHÁNH HOA - 19110205

TP HỒ CHÍ MINH, THÁNG 7 NĂM 2024

Trang 3

KHOA CNTT

*******

Độc lập – Tự do – Hạnh phúc

*******

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Họ và tên của Sinh viên 1: Trần Mạnh Cường MSSV: 19110159

Họ và tên của Sinh viên 2: Vy Minh Khánh Hoa MSSV: 19110205

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng website bán laptop và điện thoại

Họ và tên giảng viên hướng dẫn: PGS TS Hoàng Văn Dũng

Nhận xét:

1 Về nội dung đề tài và khối lượng công việc:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:

Tp Hồ Chí Minh, ngày tháng năm

Giảng viên hướng dẫn

(Ký & ghi rõ họ tên)

Hoàng Văn Dũng

Trang 4

ĐH SƯ PHẠM KỸ THUẬT TP HCM

KHOA CNTT

*******

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

*******

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

Họ và tên của Sinh viên 1: Trần Mạnh Cường MSSV: 19110159

Họ và tên của Sinh viên 2: Vy Minh Khánh Hoa MSSV: 19110205

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng website bán laptop và điện thoại

Họ và tên giảng viên phản biện: TS Lê Văn Vinh

Nhận xét:

1 Về nội dung đề tài và khối lượng công việc:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:

Tp Hồ Chí Minh, ngày tháng năm

Giảng viên phản biện

(Ký & ghi rõ họ tên)

Lê Văn Vinh

Trang 5

LỜI CẢM ƠN

Lời đầu tiên, chúng em xin được gửi lời cảm ơn chân thành đến Khoa Công nghệ Thông tin – Trường Đại học Sư phạm Kỹ Thuật TP Hồ Chí Minh đã tạo điều kiện cho chúng em được học tập và phát triển kiến thức để nhóm em có thể hoàn thành đề tài này

Đặc biệt, nhóm em bày tỏ lòng biết ơn sâu sắc đến thầy Hoàng Văn Dũng Thầy

đã tận tình chỉ bảo, hướng dẫn và đưa ra những góp ý quý giá cho nhóm chúng em trong suốt quá trình thực hiện đề tài

Nhờ những nền tảng kiến thức chuyên ngành vững chắc thông qua việc học tập

ở trường cùng với những kinh nghiệm học hỏi được qua việc thực tập ở các công ty đã giúp chúng em hoàn thiện được đề tài và chúng em tin rằng đây sẽ là một kinh nghiệm quý báu, một hành trang vô cùng lớn để chúng em có thể phát triển bản thân hơn

Do thời gian và sự hiểu biết của nhóm có giới hạn nên trong quá trình quá thực hiện đề tài còn có những sai sót, hy vọng Quý Thầy Cô có thể góp ý để nhóm em có thể rút kinh nghiệm để có thể hoàn thiện sản phẩm tốt hơn nữa cũng như học hỏi và phát triển bản thân hơn trong tương lai

Chúng em xin chân thành cảm ơn!

Nhóm thực hiện

Trần Mạnh Cường – 19110159

Vy Minh Khánh Hoa – 19110205

Trang 6

KHÓA LUẬN TỐT NGHIỆP

Trường Đại học Sư phạm Kỹ thuật TP.HCM

Khoa Công nghệ Thông tin

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

Họ và tên SV thực hiện 1: Trần Mạnh Cường MSSV: 19110159

Họ và tên SV thực hiện 2: Vy Minh Khánh Hoa MSSV: 19110205

Thời gian thực hiện: Từ 04/03/2024 đến 15/06/2024

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng website bán laptop và điện thoại

Họ và tên giảng viên hướng dẫn: PGS.TS Hoàng Văn Dũng

Nhiệm vụ của khóa luận:

- Sử dụng PostgreSQL để lưu trữ dữ liệu hệ thống

- Sử dụng ReactJS, Redux toolkit và Material UI để thiết kế và xây dựng giao diện người dùng

- Sử dụng Algolia để xử lý và xây dựng chức năng tìm kiếm, lọc nâng cao

- Xây dựng hệ thống theo kiến trúc Clean Architecture

Đề cương viết khóa luận:

MỤC LỤC

1 MỞ ĐẦU

1.1 Tính cấp thiết của đề tài

1.2 Đối tượng nghiên cứu

1.3 Phạm vi nghiên cứu

1.4 Mục tiêu đề tài

Trang 7

1.5 Ý nghĩa khoa học và thực tiễn

2 NỘI DUNG

1 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Các công nghệ phía Back-end

1.2 Các công nghệ phía Front-end

2.4 Yêu cầu chức năng

2.5 Yêu cầu phi chức năng

2.6 Mô hình hóa yêu cầu

3 CHƯƠNG 3: THIẾT KẾ PHẦN MỀM

3.1 Thiết kế cơ sở dữ liệu

3.2 Thiết kế chức năng

3.3 Thiết kế giao diện

4 CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ

- Thiết kế lược đồ Use Case

- Thiết kế lược đồ tuần tự

- Thiết kế lược đồ lớp

Trang 8

KHÓA LUẬN TỐT NGHIỆP

3 25/03/2024 – 07/04/2024

- Thiết kế giao diện cơ bản cho ứng dụng

- Thiết kế các API cần thiết cho hệ thống

- Dùng Postman để kiểm tra các API

4 80/04/2024 – 21/04/2024

- Phân quyền người dùng

- Xây dựng trang quản lý cho admin

7 20/05/2024 – 02/06/2024 - Kiểm thử ứng dụng và chỉnh sửa các lỗi

gặp phải

8 03/06/2024 – 15/06/2024 - Hoàn thiện báo cáo

Ngày tháng năm 2024

Người viết đề cương

Ý kiến của giảng viên hướng dẫn

(ký và ghi rõ họ tên)

Trang 9

MỤC LỤC

MỞ ĐẦU 1

1 Tính cấp thiết của đề tài 1

2 Đối tượng nghiên cứu 1

3 Phạm vi nghiên cứu 1

4 Mục tiêu đề tài 2

4.1 Phía khách hàng vãng lai 2

4.2 Phía người dùng 2

4.3 Phía quản trị viên 2

5 Ý nghĩa khoa học và thực tiễn 3

NỘI DUNG 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4

1.1 Các công nghệ phía Back-end 4

1.2 Các công nghệ phía Front-end 7

1.3 Clean Architecture 9

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 11

2.1 Khảo sát hiện trạng 11

2.2 Kiến trúc của hệ thống 14

2.3 Các tác nhân của hệ thống 14

2.4 Yêu cầu chức năng 15

2.5 Yêu cầu phi chức năng 17

2.6 Mô hình hóa yêu cầu 18

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 20

3.1 Thiết kế cơ sở dữ liệu 20

3.2 Thiết kế chức năng 29

3.3 Thiết kế giao diện 55

Trang 10

KHÓA LUẬN TỐT NGHIỆP

CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 72

4.1 Cài đặt 72

4.2 Kiểm thử 77

KẾT LUẬN 85

1 Kết quả đạt được 85

1.1 Về mặt lý thuyết 85

1.2 Về mặt ứng dụng 85

2 Ưu điểm 85

3 Nhược điểm 86

4 Hướng phát triển 86

TÀI LIỆU THAM KHẢO 87

PHỤ LỤC 88

Trang 11

DANH MỤC CÁC TỪ VIẾT TẮT

1 CSDL Cơ sở dữ liệu

2 API Application Programming Interface

3 JWT Json Web Token

4 SDK Software Development Kit

5 UI User Interface

Trang 12

KHÓA LUẬN TỐT NGHIỆP

DANH MỤC HÌNH ẢNH

Hình 1: Clean Architecture 9

Hình 2: Tìm kiếm FPT Shop trên công cụ tìm kiếm Google 11

Hình 3: Trang chủ FPT Shop 11

Hình 4: Trang chi tiết sản phẩm của FPT Shop 12

Hình 5: Trang chủ Phong Vũ 13

Hình 6: Kiến trúc của hệ thống 14

Hình 7: Lược đồ Use Case phía Khách vãng lai 18

Hình 8: Lược đồ Use Case phía Khách hàng 18

Hình 9: Lược đồ Use Case phía Quản trị viên 19

Hình 10: Lược đồ lớp 20

Hình 11: Lược đồ tuần tự chức năng Đăng nhập 30

Hình 12: Lược đồ tuần tự Login API 30

Hình 13: Lược đồ tuần tự chức năng Đăng ký 32

Hình 14: Lược đồ tuần tự Register API 32

Hình 15: Lược đồ tuần tự chức năng Tìm kiếm sản phẩm 33

Hình 16: Lược đồ tuần tự chức năng Lọc sản phẩm 34

Hình 17: Lược đồ tuần tự chức năng Xem chi tiết sản phẩm 35

Hình 18: Lược đồ tuần tự chức năng Thêm vào giỏ hàng 37

Hình 19: Lược đồ tuần tự AddToCart API 37

Hình 20: Lược đồ tuần tự chức năng Đặt hàng 39

Hình 21: Lược đồ tuần tự CreateOrder API 39

Hình 22: Lược đồ tuần tự CheckoutWithStripe API 40

Hình 23: Lược đồ tuần tự chức năng Hủy đơn hàng 41

Hình 24: Lược đồ tuần tự CancelOrder API 41

Hình 25: Lược đồ tuần tự chức năng Xác nhận đã nhận hàng 42

Hình 26: Lược đồ tuần tự ConfirmReceivedOrder API 43

Hình 27: Lược đồ tuần tự chức năng Thêm sản phẩm 44

Hình 28: Lược đồ tuần tự CreateProduct API 44

Hình 29: Lược đồ tuần tự chức năng Đánh giá sản phẩm 46

Hình 30: Lược đồ tuần tự ReviewProduct API 46

Hình 31: Lược đồ tuần tự chức năng Thêm thuộc tính sản phẩm 48

Trang 13

Hình 32: Lược đồ tuần tự AddProductAttribute API 48

Hình 33: Lược đồ tuần tự chức năng Thêm giá trị thuộc tính sản phẩm 50

Hình 34: Lược đồ tuần tự AddProductAttributeValue API 50

Hình 35: Lược đồ tuần tự chức năng Thêm sản phẩm cụ thể 52

Hình 36: Lược đồ tuần tự CreateProductVariant API 52

Hình 37: Lược đồ tuần tự chức năng Xác nhận đơn hàng 54

Hình 38: Lược đồ tuần tự ConfirmOrder API 54

Hình 39: Giao diện Đăng ký bước 1 55

Hình 40: Giao diện Đăng ký bước 2 56

Hình 41: Giao diện Đăng nhập 57

Hình 42: Giao diện Trang chủ 58

Hình 43: Giao diện Chi tiết sản phẩm 59

Hình 44: Giao diện Chi tiết sản phẩm (tiếp theo) 59

Hình 45: Giao diện Giỏ hàng 60

Hình 46: Giao diện Danh sách địa chỉ giao hàng 61

Hình 47: Giao diện Phương thức thanh toán 62

Hình 48: Giao diện Quản lý đơn hàng (phía người dùng) 63

Hình 49: Giao diện Tìm kiếm 63

Hình 50: Giao diện Kết quả tìm kiếm 64

Hình 51: Giao diện Điều hướng của trang quản trị 65

Hình 52: Giao diện Quản lý sản phẩm 66

Hình 53: Giao diện Thông tin sản phẩm 67

Hình 54: Giao diện Thuộc tính sản phẩm 68

Hình 55: Giao diện Biến thể sản phẩm 69

Hình 56: Giao diện Khuyến mãi của sản phẩm 69

Hình 57: Giao diện Hình ảnh sản phẩm 70

Hình 58: Giao diện Quản lý đơn hàng (phía quản trị viên) 70

Hình 59: Cấu trúc dự án của Back-end sau khi khởi tạo 73

Hình 60: Swagger của Back-end 74

Hình 61: Cấu trúc dự án của Front-end phía người dùng 75

Trang 14

KHÓA LUẬN TỐT NGHIỆP

DANH MỤC BẢNG BIỂU

Bảng 1: Danh sách yêu cầu chức năng 15

Bảng 2: Danh sách yêu cầu phi chức năng 17

Bảng 3: Bảng Customer 21

Bảng 4: Bảng Account 21

Bảng 5: Bảng Address 22

Bảng 6: Bảng Category 22

Bảng 7: Bảng Brand 22

Bảng 8: Bảng Product 23

Bảng 9: Bảng Attribute 24

Bảng 10: Bảng AttributeValue 24

Bảng 11: Bảng Variant 24

Bảng 12: Bảng Discount 25

Bảng 13: Bảng Cart 25

Bảng 14: Bảng CartItem 25

Bảng 15: Bảng Order 26

Bảng 16: Bảng OrderItem 27

Bảng 17: Bảng OrderStatusHistoryTracking 27

Bảng 18: Bảng Review 27

Bảng 19: Bảng Notification 28

Bảng 20: Đặc tả Use Case Đăng nhập 29

Bảng 21: Đặc tả Use Case Đăng ký 31

Bảng 22: Đặc tả Use Case Tìm kiếm sản phẩm 33

Bảng 23: Đặc tả Use Case Lọc sản phẩm 34

Bảng 24: Đặc tả Use Case Xem chi tiết sản phẩm 35

Bảng 25: Đặc tả Use Case Thêm vào giỏ hàng 36

Bảng 26: Đặc tả Use Case Đặt hàng 38

Bảng 27: Đặc tả Use Case Hủy đơn hàng 40

Bảng 28: Đặc tả chức năng Xác nhận đã nhận hàng 42

Bảng 29: Đặc tả Use Case Thêm sản phẩm 43

Bảng 30: Đặc tả Use Case Đánh giá sản phẩm 45

Bảng 31: Đặc tả Use Case Thêm thuộc tính sản phẩm 47

Trang 15

Bảng 32: Đặc tả Use Case Thêm giá trị thuộc tính sản phẩm 49

Bảng 33: Đặc tả Use Case Tạo sản phẩm cụ thể 51

Bảng 34: Đặc tả Use Case Xác nhận đơn hàng 53

Bảng 35: Giao diện Đăng ký bước 1 55

Bảng 36: Giao diện Đăng ký bước 2 56

Bảng 37: Giao diện Đăng nhập 57

Bảng 38: Giao diện Trang chủ 58

Bảng 39: Giao diện Chi tiết sản phẩm 60

Bảng 40: Giao diện Giỏ hàng 61

Bảng 41: Giao diện Danh sách địa chỉ giao hàng 61

Bảng 42: Giao diện Phương thức thanh toán 62

Bảng 43: Giao diện Quản lý đơn hàng (phía người dùng) 63

Bảng 44: Giao diện Kết quả tìm kiếm 65

Bảng 45: Giao diện Điều hướng của trang quản trị 66

Bảng 46: Giao diện Quản lý sản phẩm 67

Bảng 47: Giao diện Thông tin sản phẩm 68

Bảng 48: Giao diện Thuộc tính và biến thể sản phẩm 69

Bảng 49: Giao diện Khuyến mãi của sản phẩm 70

Bảng 50: Giao diện Hình ảnh sản phẩm 70

Bảng 51: Giao diện Quản lý đơn hàng (phía quản trị viên) 71

Bảng 52: Phạm vị kiểm thử 77

Bảng 53: Vấn đề và rủi ro khi tiến hành kiểm thử 78

Bảng 54: Kết quả kiểm thử chức năng Tìm kiếm sản phẩm 79

Bảng 55: Kết quả kiểm thử chức năng Lọc sản phẩm 79

Bảng 56: Kết quả kiểm thử chức năng Thêm sản phẩm vào giỏ 79

Bảng 57: Kết quả kiểm thử chức năng Chỉnh sửa số lượng sản phẩm trong giỏ 80

Bảng 58: Kết quả kiểm thử chức năng Đặt hàng 80

Bảng 59: Kết quả kiểm thử chức năng Đánh giá sản phẩm 81

Bảng 60: Kết quả kiểm thử chức năng Thêm sản phẩm 81

Bảng 61: Kết quả kiểm thử chức năng Thêm thuộc tính sản phẩm 82

Bảng 62: Kết quả kiểm thử chức năng Thêm giá trị thuộc tính sản phẩm 83

Bảng 63: Kết quả kiểm thử chức năng Thêm hình ảnh sản phẩm 83

Trang 16

KHÓA LUẬN TỐT NGHIỆP

Bảng 64: Kết quả kiểm thử chức năng Tạo biến thể sản phẩm 84Bảng 65: Kết quả kiểm thử chức năng Xác nhận đơn hàng 84

Trang 17

1

MỞ ĐẦU

1 Tính cấp thiết của đề tài

Trong bối cảnh công nghệ thông tin và kỹ thuật ngày càng phát triển, việc chuyển đổi số đang trở nên phổ biến và là ưu tiên hàng đầu trong tất cả các lĩnh vực đặc biệt là lĩnh vực bán hàng trực tuyến

Vì thế, việc chuyển đổi từ bán hàng truyền thống sang bán hàng trực tuyến là điều không thể thiếu và hiện tại nó là xu hướng của thế giới và đem lại lợi ích to lớn cho các cửa hàng bán lẻ So với cách mua sắm truyền thống thì việc sử dụng kênh mua bán trực tuyến cho phép khách hàng có thể mua sắm mọi lúc mọi nơi giúp tiết kiệm thời gian Ngoài ra việc thanh toán và quản lý đơn hàng cho người dùng cũng dễ dàng hơn Nhận thức được thực tiễn ấy và với mong muốn đáp ứng được nhu cầu thị trường

và quan trọng nhất là tiết kiệm được thời gian cũng như đem đến nhiều sự lựa chọn hơn cho người dùng, nhóm chúng em quyết định chọn và phát triển chủ đề cho Khóa luận tốt nghiệp là “XÂY DỰNG WEBSITE BÁN LAPTOP VÀ ĐIỆN THOẠI”

2 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài dựa trên nhu cầu mua bán trực tuyến hiện nay

và các đặc điểm nổi bật từ các sàn thương mại điện tử đã có sẵn Bên cạnh đó là các công nghệ áp dụng để hiện thực hóa đề tài này Cụ thể như sau:

• Tập trung nghiên cứu Restful API, ReactJS, PostgreSQL, ASP NET Core, Algolia Search, Docker, Stripe và việc triển khai hệ thống đến người sử dụng cuối cùng

• Việc xây dựng hệ thống các APIs dựa trên kiến trúc Clean Architecture nhằm hỗ trợ truy xuất và thao tác với dữ liệu một cách chính xác và nhanh chóng nhất

• Về giao diện cho người dùng trải nghiệm nhóm chúng em tiến hành nghiên cứu thư viện ReactJS, Redux và một số thư viện được hỗ trợ cho ReactJS để xây dựng

và xử lý giao diện cho người sử dụng cũng như quản trị viên trang website

• Về phần bảo mật hệ thống, tiến hành nghiên cứu công nghệ JWT, mã hóa mật khẩu và phân quyền người dùng làm nhằm tăng bảo mật cho hệ thống

3 Phạm vi nghiên cứu

Website chủ yếu tập trung đi vào việc xử lý các nghiệp vụ cơ bản của một website bán laptop và điện thoại trực tuyến như: xem danh sách các sản phẩm, thêm sản phẩm vào giỏ hàng cá nhân, tương tác chuyển đổi qua lại giữa các biến thể, đánh giá trên từng

Trang 18

MỞ ĐẦU

2

sản phẩm có trên hệ thống, quản lý trạng thái các đơn hàng, quản lý thông tin cá nhân, thanh toán, tìm kiếm và lọc sản phẩm nâng cao,… Ngoài ra, website còn hỗ trợ quản trị viên thêm thuộc tính cho sản phẩm một cách linh hoạt ngay từ bước tạo sản phẩm và hỗ trợ đề xuất các sản phẩm liên quan cho người dùng

4 Mục tiêu đề tài

Xây dựng thành công một website bán laptop và điện thoại cho các đối tượng sau:

4.1 Phía khách hàng vãng lai

Có thể thực hiện các chức năng sau:

• Đăng ký để trở thành thành viên của hệ thống

• Xem danh sách và chi tiết các sản phẩm hiện có

• Tìm kiếm và lọc sản phẩm nâng cao

• Thêm, điều chỉnh số lượng, xóa sản phẩm trong giỏ hàng

• Nhận thông báo về trạng thái đơn hàng

4.3 Phía quản trị viên

Có thể thực hiện các chức năng sau:

Trang 19

3

• Quản lý biểu ngữ

• Xem thống kê về doanh thu, số lượng đơn hàng và người dùng sử dụng hệ thống

5 Ý nghĩa khoa học và thực tiễn

Sau khi hoàn thiện đề tài, nhóm chúng em đã rèn luyện, tiếp thu được nhiều kỹ năng và kiến thức bổ ích, đặc biệt là về những công nghệ mới đang được sử dụng hiện nay Đồng thời, nâng cao kỹ năng làm việc nhóm và áp dụng các kiến thức này vào thực tiễn

Khi đề tài nhóm chúng em được áp dụng vào thực tế, việc mua bán trực tuyến các sản phẩm điện tử sẽ thuận tiện và dễ dàng hơn; đem lại các lợi ích to lớn cho các cửa hàng bán lẻ trên toàn thế giới Thay vì phải sắp xếp thời gian đi đến các cửa hàng

để lựa chọn sản phẩm thì người dùng chỉ cần truy cập vào website, giải quyết được các vấn đề về khoảng cách địa lý cũng như thời gian

Trang 20

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

4

NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Các công nghệ phía Back-end

1.1.1 PostgreSQL

PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ đối tượng (ORDBMS), hỗ trợ cả dữ liệu quan hệ và dữ liệu phi quan hệ PostgreSQL có mã nguồn mở, được phát triển bởi cộng đồng Nó sử dụng ngôn ngữ SQL và kết hợp với nhiều tính năng giúp lưu trữ và mở rộng các khối lượng dữ liệu phức tạp [1] Những ưu điểm của PostgreSQL:

• Mã nguồn mở và miễn phí: PostgreSQL không yêu cầu chi phí bản quyền và được hỗ trợ phát triển bởi một cộng đồng lớn

• Cung cấp tính năng phong phú: hỗ trợ dữ liệu quan hệ và phi quan hệ, và có thể

sử dụng kết hợp giữa hai dạng dữ liệu này Khả năng tích hợp với các ngôn ngữ lập trình rất tốt như Python, C#, Java, …

• Khả năng mở rộng tốt: PostgreSQL có thể mở rộng cả về chiều ngang và chiều dọc, cung cấp các cơ chế lưu trữ khác nhau và quản lý các khối lượng dữ liệu lớn, phức tạp

• Tính toàn vẹn dữ liệu và tính nhất quán: hỗ trợ giao dịch ACID, các ràng buộc toàn vẹn dữ liệu và khả năng phục hồi sau sự cố

1.1.2 ASP.NET Core

ASP.NET Core là một framework mã nguồn mở dùng để phát triển ứng dụng web, được phát triển bởi Microsoft Đây là một phần của nền tảng NET Core và được thiết kế để xây dựng các ứng dụng web, API và các dịch vụ microservice hiện đại, linh hoạt Nó cung cấp các điểm mạnh sau:

• Mã nguồn mở: được duy trì và phát triển bởi Microsoft và cộng đồng mã nguồn

mở

• Dễ dàng đưa lên dịch vụ điện toán đám mây và dễ dàng mở rộng: ASP.NET Core được tối ưu cho dịch vụ điện toán đám mây bởi tiêu tốn ít bộ nhớ và cung cấp khả năng truy cập lớn [2]

• Đa nền tảng: ASP.NET Core hỗ trợ chạy trên đa nền tảng từ Windows, MacOS đến Linux Khả năng này mang lại nhiều lựa chọn mới để phát triển và phát hành

Trang 21

mà ứng dụng thật sự cần thiết ASP.NET Core còn hỗ trợ dependency injection (một nguyên lý phát triển phần mềm, ở đây được đã được ASP.NET Core triển khai), nó giúp giảm thiểu sự phụ thuộc giữa các thành phần trong ứng dụng, thay

vì phụ thuộc vào những triển khai cụ thể thì ứng dụng chỉ phụ thuộc vào các trừu tượng hóa [2]

• Dễ dàng kiểm thử: ứng dụng ASP.NET Core hỗ trợ kiểm thử đơn vị Với dependency injection việc kiểm thử trở nên dễ dàng hơn bao giờ hết khi mà có thể tạo các dữ liệu giả và hành vi giả để phục vụ mục đích kiểm thử Việc kiểm thử chức năng cũng có thể được thực hiện bằng cách gửi các yêu cầu đến TestServer một máy chủ có thể chạy trực tiếp trên máy được cung cấp bởi ASP.NET Core [2]

1.1.3 Entity Framework Core

Entity Framework Core là một framework ORM (Object-Relational Mapping)

mã nguồn mở của Microsoft, được sử dụng để tạo và quản lý liên kết giữa cơ sở dữ liệu

và mã nguồn trong các dự án ASP.NET Core và NET Core Nó cho phép lập trình viên làm việc với cơ sử dữ liệu thông qua các đối tượng trong NET thay vì làm việc trực tiếp với SQL [3] Một số ưu điểm của Entity Framework Core:

• Tích hợp dễ dàng: Entity Framework Core được tích hợp sâu vào các dự án ASP.NET Core và NET Core, giúp cho việc tạo, truy vấn và cập nhật dữ liệu trở nên dễ dàng và nhanh chóng

• Tính linh hoạt: Entity Framework Core hỗ trợ nhiều loại cơ sở dữ liệu khác nhau như SQL Server, MySQL, PostgreSQL, SQLite, v.v Điều này giúp cho việc triển khai ứng dụng trên nhiều nền tảng và cơ sở dữ liệu trở nên dễ dàng hơn

1.1.4 SignalR

SignalR là một thư viện mã nguồn mở của Microsoft được sử dụng để xây dựng các ứng dụng web thời gian thực (real-time) Nó cho phép việc truyền tin nhắn và dữ

Trang 22

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

6

liệu giữa máy chủ và các máy khách (client) diễn ra một cách đồng bộ và liên tục, giúp cho việc cập nhật dữ liệu và hiển thị thông tin mới trên giao diện người dùng ngay khi

nó được tạo ra hoặc thay đổi Một vài ưu điểm của SignalR:

• Thời gian thực: SignalR cung cấp các tính năng để xây dựng các ứng dụng web thời gian thực một cách dễ dàng, bao gồm trò chuyện trực tuyến, cập nhật dữ liệu trực tiếp, và thông báo tức thì

• Dễ sử dụng và tích hợp: SignalR tích hợp một cách tương thích với các dự án ASP.NET Core và ASP.NET Framework, giúp cho việc triển khai và sử dụng trở nên dễ dàng và nhanh chóng

1.1.5 Docker

Docker là một nền tảng cho lập trình viên để phát triển và chạy ứng dụng với container Nó cho phép tạo các môi trường độc lập và tách biệt để khởi chạy và phát triển ứng dụng, môi trường này được gọi là container Khi cần deploy lên bất kỳ máy chủ nào chỉ cần chạy container của Docker thì ứng dụng sẽ được khởi chạy ngay lập tức [4]

Một số ưu điểm của Docker:

• Khả năng chuyển đổi: Docker cho phép đóng gói ứng dụng vào một container, giúp cho việc di chuyển ứng dụng giữa các môi trường phát triển, thử nghiệm trở nên dễ dàng hơn

• Tính cô lập: Docker sử dụng container để cô lập ứng dụng và môi trường của

nó khỏi hệ thống máy chủ Điều này đảm bảo rằng các ứng dụng chạy trong các container không ảnh hưởng đến nhau và không ảnh hưởng đến hệ thống máy chủ

• Dễ dàng đưa lên đám mây: ứng dụng chạy trong container, container này dễ dàng được đưa lên các kho lưu trữ container và được các dịch vụ trên đám mây lấy về để chạy

1.1.6 Algolia Search

Algolia là một dịch vụ tìm kiếm được thiết kế để cung cấp trải nghiệm tìm kiếm nhanh chóng và mạnh mẽ cho các ứng dụng web và điện thoại Algolia cung cấp tìm kiếm văn bản, chữ số và các khía cạnh Các kết quả tìm kiếm được Algolia trả về theo thời gian thực ngay từ khi bắt đầu nhập từ khóa tìm kiếm [5]

Trang 23

7

Các ưu điểm của Algolia:

• Tìm kiếm nhanh chóng: Algolia được xây dựng với việc tối ưu hiệu suất, giúp cho việc tìm kiếm trở nên nhanh chóng và linh hoạt

• Tùy chỉnh linh hoạt: Algolia cung cấp một loạt các tùy chọn tùy chỉnh cho giao diện tìm kiếm, cho phép bạn tinh chỉnh và điều chỉnh việc hiển thị kết quả tìm kiếm theo nhu cầu cụ thể của ứng dụng của bạn giúp tăng trải nghiệm tìm kiếm của người dùng

• Tích hợp dễ dàng: Algolia cung cấp các thư viện và SDK đa nền tảng để tích hợp

1.1.7 Stripe

Stripe là một dịch vụ thanh toán trực tuyến cho các doanh nghiệp Stripe cho phép các doanh nghiệp chấp nhận thanh toán từ khách hàng thông quá Internet, bằng cách sử dụng các phương tiện thanh toán như thẻ tín dụng, thẻ ghi nợ, ví điện tử

Stripe được biết đến với tính bảo mật cao, tích hợp dễ dàng và tính linh hoạt, giúp cho doanh nghiệp có thể xây dựng và quản lý hệ thống thanh toán trực tuyến một cách hiệu quả và tiện lợi

Những ưu điểm của Stripe:

• Dễ sử dụng và tích hợp: Stripe cung cấp các API và SDK sử dụng cho các nhà phát triển, giúp cho việc tích hợp thanh toán vào ứng dụng trở nên đơn giản và nhanh chóng Điều này giúp tiết kiệm thời gian và công sức cho việc phát triển

và triển khai hệ thống thanh toán

• Bảo mật cao: Stripe tuân thủ các tiêu chuẩn bảo mật cao nhất trong ngành, bao gồm mã hóa dữ liệu thông tin thanh toán của khách hàng giúp đảm bảo an toàn thông tin cho khách hàng

1.2 Các công nghệ phía Front-end

1.2.1 ReactJS

ReactJS là một thư viện JavaScript có tính hiệu quả và linh hoạt để xây dựng các thành phần giao diện người dùng (UI) mang tính tái sử dụng ReactJS giúp phân chia các UI phức tạp thành các thành phần nhỏ (được gọi là component) Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook

ReactJS sử dụng cơ chế one-way data binding – luồng dữ liệu 1 chiều Dữ liệu được truyền từ cha đến con thông qua props Luồng dữ liệu đơn giản giúp dễ dàng quản

Trang 24

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

8

lý Các component trong ReactJS duy trì và thay đổi theo thời gian dựa trên state (trạng thái của component) và khi state thay đổi, component sẽ tự động được render lại để phản ánh sự thay đổi đó [6]

Với các đặc điểm ở trên, ReactJS dùng để xây dựng các ứng dụng lớn mà dữ liệu của chúng thay đổi liên tục theo thời gian Một số ưu điểm khác của ReactJS

• ReactJS sử dụng mô hình lập trình dựa trên thành phần, cho phép phân chia giao diện người dùng thành các phần độc lập và tái sử dụng được Điều này giúp tăng tính linh hoạt và bảo trì mã nguồn, đồng thời giảm thiểu sự phức tạp và tái sử dụng mã

• React sử dụng Virtual DOM để tối ưu hóa hiệu suất của ứng dụng thay vì cập nhật trực tiếp DOM mỗi khi có sự thay đổi, React sẽ tạo ra một bản sao ảo của DOM, so sánh DOM hiện tại và chỉ cập nhật những phần thay đổi Điều này giúp giảm thiểu thời gian xử lý và render, làm cho ứng dụng chạy mượt mà hơn

• Cú pháp dễ sử dụng: ReactJS sử dụng JSX một cú pháp cho phép viết các component tương tự với cú pháp HTML Từ đó giúp phát triển ứng dụng một cách nhanh chóng [6]

1.2.2 Redux toolkit

Redux là một khuôn mẫu và thư viện dùng để quản lý và cập nhật trạng thái (state) của ứng dụng, sử dụng các sự kiện được gọi là “action” Nó được sử dụng như một kho lưu trữ tập trung cho trạng thái cần được sử dụng trên toàn bộ ứng dụng với các quy tắc đảm bảo trạng thái chỉ có thể được cập nhật theo cách có thể dự đoán được

Redux toolkit là một bộ công cụ được cung cấp bởi Redux nhằm giúp đơn giản hóa việc viết logic cho Redux Bộ công cụ này cung cấp các API và phương pháp tích hợp sẵn giúp giảm thiểu các đoạn mã bị lặp lại nhiều lần và giúp cho Redux dễ sử dụng hơn

Một số ưu điểm của Redux toolkit:

• Giảm thiểu các đoạn mã bị trùng lặp: đây là mục đích chính của Redux toolkit

• Hỗ trợ tốt cho lập trình bất đồng bộ: Redux toolkit cung cấp cách thức giúp xử lý logic bất đồng bộ dễ dàng hơn

• Hiệu suất cao và cung cập cấu trúc rõ ràng

Trang 25

9

1.2.3 Material UI

Material UI là một thư viện giao diện người dùng (UI) mã nguồn mở được xây dựng trên nền tảng React, được thiết kế dựa trên hướng dẫn thiết kế của Google Material Design Nó cung cấp các thành phần giao diện đồng nhất và thẩm mỹ, giúp cho việc xây dựng các ứng dụng web trở nên dễ dàng và nhanh chóng

Ưu điểm của Material UI:

• Thiết kế thẩm mỹ và linh hoạt: Material UI cung cấp một bộ sưu tập các thành phần giao diện đẹp mắt và linh hoạt, từ nút, hộp thoại, đến thanh điều hướng và biểu đồ Điều này giúp cho việc xây dựng giao diện người dùng trở nên nhanh chóng và dễ dàng, đồng thời đảm bảo tính đồng nhất trong toàn bộ ứng dụng

• Dễ dàng tùy chỉnh: Material UI cung cấp các thành phần có thể tùy chỉnh một cách linh hoạt, từ màu sắc, kiểu chữ, đến kích thước và hình dạng Điều này giúp cho việc điều chỉnh giao diện người dùng để phù hợp với nhu cầu cụ thể của từng ứng dụng trở nên dễ dàng hơn

1.3 Clean Architecture

Clean Architecture là một phương pháp thiết kế phần mềm được đề xuất bởi Robert C Martin Phương pháp này tập trung vào việc phân tách các vấn đề và sự độc lập của nghiệp vụ ra khỏi các phụ thuộc bên ngoài như các framework, cơ sở dữ liệu, và giao diện người dùng

Hình 1: Clean Architecture

Trang 26

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

10

Clean Architecture chia ứng dụng thành các vòng tròn tập trung hoặc các lớp, với vòng tròn bên trong biểu diễn cho nghiệp vụ cốt lõi, và mỗi vòng tròn bên ngoài biểu diễn cho các phụ thuộc và các framework cấp cao Các phụ thuộc chỉ luôn hướng vào phía trong, có nghĩa là vòng tròn bên trong không nên biết về các vòng tròn bên ngoài

• Ưu điểm:

o Dễ bảo trì: với việc tách biệt nghiệp vụ và các chi tiết về kỹ thuật, việc bảo trì và cải thiện mã nguồn trở nên dễ dàng hơn Điều này cũng làm cho việc thay đổi các thành phần cụ thể trở nên ít ảnh hưởng đến toàn bộ hệ thống [7]

o Dễ dàng kiểm thử: Clean Architecture tạo điều kiện thuận lợi cho việc kiểm thử vì nghiệp vụ được tách biệt và độc lập với các thành phần khác trong hệ thống Điều này giúp dễ dàng xây dựng các bộ kiểm thử đơn vị

và kiểm thử tích hợp

o Khả năng mở rộng: cấu trúc rõ ràng của Clean Architecture làm cho việc

mở rộng hệ thống trở nên dễ dàng hơn Clean Architecture giúp thay đổi hoặc thêm mới các thành phần mà không ảnh hưởng đến toàn bộ hệ thống

o Khả năng quá tối ưu: trong một số trường hợp, việc áp dụng Clean Architecture có thể dẫn đến việc thiết kế quá tối ưu hoặc phức tạp hóa không cần thiết, gây ra sự rườm rà trong mã nguồn

Trang 28

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU

o Về nội dung, trang web còn cung cấp đầy đủ thông tin chi tiết về sản phẩm

và các sản phẩm được phân chia theo danh mục, theo loại giúp khách hàng

dễ dàng tiếp cận

Hình 4: Trang chi tiết sản phẩm của FPT Shop

• Ưu điểm:

o Giao diện đơn giản, dễ tiếp cận

o Cung cấp nhiều sản phẩm với nhiều danh mục sản phẩm khác nhau

o Thông tin chi tiết về sản phẩm được cung cấp đầy đủ

o Hiển thị thích ứng với mọi thiết bị màn hình khác nhau

o Hỗ trợ nhiều hình thức thanh toán khác nhau

• Nhược điểm:

o Hỗ trợ duy nhất một phương thức đăng nhập qua số điện thoại

o Hiện nhiều quảng cáo và các quảng cáo này nổi bật hơn so với các sản phẩm

o Sử dụng màu đỏ làm chủ đạo cho nhiều thông tin khiến cho các thông tin khác dễ bị lu mờ

Trang 29

o Về mặt chức năng, trang web cung cấp đầy đủ các chức năng của một website thương mại điện tử đó là hiển thị danh sách sản phẩm, tìm kiếm sản phẩm, xem thông tin chi tiết sản phẩm, xem đánh giá sản phẩm, thêm sản phẩm vào giỏ hàng, thanh toán, xem thông tin hóa đơn

Trang 30

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU

14

o Về nội dung, trang web còn cung cấp đầy đủ thông tin chi tiết về sản phẩm

và các sản phẩm được phân chia theo danh mục, theo loại giúp khách hàng

dễ dàng tiếp cận

• Ưu điểm:

o Bố cục giao diện rõ ràng, dễ thao tác cho người mới sử dụng

o Bộ lọc đầy đủ với các nhu cầu mà người dùng muốn tìm kiếm

o Hiển thị hợp lý với mọi màn hình khác nhau

o Hỗ trợ việc đăng nhập vào hệ thống với nhiều phương thức khác nhau

o Hỗ trợ việc thanh toán đa dạng các phương thức

Website gồm 3 tác nhân chính là: khách hàng (thành viên của hệ thống), quản trị viên (người quản lý hệ thống), khách vãng lai (chưa là thành viên của hệ thống)

• Khách vãng lai: có quyền và chức năng sau: đăng ký, xem danh sách sản phẩm, xem chi tiết thông tin sản phẩm, quản lý giỏ hàng, tìm kiếm từ khóa và lọc sản phẩm

Trang 31

15

• Khách hàng: ngoài tất cả các có quyền và chức năng của khách vãng lai khách hàng còn có các quyền và chức năng sau: đăng nhập, xác thực tài khoản, quên mật khẩu, đánh giá sản phẩm, đặt hàng, quản lý hồ sơ, quản lý đơn hàng, đổi mật khẩu

• Quản trị viên: có quyền và chức năng sau: tất cả các quyền và chức năng của khách hàng, quản lý khách hàng, quản lý danh mục, quản lý thương hiệu, quản

lý sản phẩm, quản lý đơn hàng khách hàng, quản lý kho hàng, quản lý biểu ngữ

2.4 Yêu cầu chức năng

Bảng 1: Danh sách yêu cầu chức năng

4 Khách vãng lai có

thể tìm kiếm sản

phẩm

Tìm kiếm - Khách vãng lai cần nhập từ khóa tìm kiếm

vào ô tìm kiếm ở thanh điều hướng

- Thêm sản phẩm vào giỏ hàng, điều chỉnh

số lượng sản phẩm trong giỏ hàng, xóa sản phẩm khỏi giỏ hàng

Trang 32

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU

16

8 Khách hàng có thể

xác thực tài khoản

Lưu trữ - Khách hàng xác thực tài khoản sau khi

đăng ký, chỉ có tài khoản đã xác thực mới được đăng nhập vào hệ thống

- Đặt hàng gồm các bước: chọn địa chỉ giao hàng, chọn phương thức thanh toán gồm có thành toán bằng tiền mặt khi nhận hàng hoặc bằng thẻ tín dụng

11 Khách hàng có thể

quản lý hồ sơ

Lưu trữ, kết xuất

- Gồm có: xem thông tin hồ sơ cá nhân, chỉnh sửa thông tin

12 Khách hàng có thể

quản lý đơn hàng

Lưu trữ, kết xuất

- Gồm có: xem danh sách đơn hàng đã đặt, chi tiết đơn hàng đã đặt và hủy đơn hàng (chỉ hủy được đơn hàng đang có trạng thái là Pending – Đang chờ được xử lý)

- Khách hàng nhận thông báo về trạng thái đơn hàng sau khi đơn hàng được xác nhận bởi quản trị viên

- Gồm có: thêm người dùng mới, xem danh sách

17 Quản trị viên có thể

quản lý danh mục

Lưu trữ, kết xuất

- Gồm có: thêm, chỉnh sửa, xem danh sách danh mục

18 Quản trị viên có thể

quản lý thương

hiệu

Lưu trữ, kết xuất

- Gồm có: thêm, chỉnh sửa xem danh sách thương hiệu

- Gồm có: thêm, chỉnh sửa, xem danh sách, xem chi tiết

Trang 33

- Gồm có: thêm, chỉnh sửa thuộc tính Thêm chỉnh sửa giá trị của thuộc tính

21 Quản trị viên có thể

quản lý biến thể

sản phẩm

Lưu trữ, kết xuất

- Gồm có: thêm biến thể sản phẩm từ các thuộc tính sản phẩm, điều chỉnh thông tin của biến thể sản phẩm

- Khi đơn hàng được đặt bởi khách hàng sẽ

có thông báo gửi cho quản trị viên

23 Quản trị viên có thể

quản lý đơn hàng

Lưu trữ, kết xuất

- Gồm có: xem danh sách, xem chi tiết, hoàn thành, xác nhận đơn hàng, hủy đơn hàng

24 Quản trị viên có thể

quản lý biểu ngữ

Lưu trữ, kết xuất

- Gồm có: xem danh sách, thêm biểu ngữ

2.5 Yêu cầu phi chức năng

Bảng 2: Danh sách yêu cầu phi chức năng

1 Thao tác trên website nhanh chóng, mượt mà Tính hiệu quả

2 Giao diện đơn giản, dễ sử dụng Tính tiện dụng

3 Sử dụng màu sắc hài hòa, dễ chịu Tính tiện dụng

4 Bảo mật thông tin người dùng Tính bảo mật

Trang 34

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU

18

2.6 Mô hình hóa yêu cầu

2.6.1 Lược đồ Use Case phía Khách vãng lai

Hình 7: Lược đồ Use Case phía Khách vãng lai

2.6.2 Lược đồ Use Case phía Khách hàng

Khách hàng sẽ có tất cả các Use Case của Khách vãng lai và các Use Case sau:

Hình 8: Lược đồ Use Case phía Khách hàng

Trang 35

19

2.6.3 Lược đồ Use Case phía Quản trị viên

Hình 9: Lược đồ Use Case phía Quản trị viên

Trang 37

3 LastName String Tên của khách hàng

4 Email String Địa chỉ email đăng nhập của

khách hàng

Duy nhất

5 PhoneNumber String Số điện thoại của khách

hàng

6 AvatarUrl String Đường dẫn đến nơi lưu trữ

ảnh đại diện của khách hàng

• Bảng Account

Bảng 4: Bảng Account

1 Id Guid Mã tài khoản Khóa chính

2 Password String Mật khẩu đăng nhập của

người dùng

3 Role String Vai trò của người dùng Có 2 giá trị:

Admin, Customer

4 EmailConfirmed Bool Người dùng đã xác thực địa

chỉ email hay chưa

True – Đã xác thực

False – Chưa xác thực

5 CustomerId Guid Mã khách hàng Khóa ngoại

Trang 38

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM

22

• Bảng Address

Bảng 5: Bảng Address

1 Id Guid Mã địa chỉ Khóa chính

2 ReceiveName String Tên người nhận hàng

3 PhoneNumber String Số điện thoại người nhận

4 Street String Địa chỉ nhà, tên đường

5 City String Tên thành phố

6 State String Tên bang/tỉnh

7 Country String Tên quốc gia

8 ZipCode String Mã bưu chính

9 CustomerId Guid Mã khách hàng Khóa ngoại

• Bảng Category

Bảng 6: Bảng Category

1 Id Guid Mã danh mục Khóa chính

2 Name String Tên thể loại

3 Slug String Đường dẫn

4 PrarentId Guid Mã danh mục cha Khóa ngoại

5 UpdatedDateTime DateTime Ngày giờ cập nhật

6 CreateDateTime DateTime Ngày giở tạo

• Bảng Brand

Bảng 7: Bảng Brand

1 Id Guid Khóa chính của bảng Khóa chính

2 Name String Tên của thương hiệu

3 ImageUrl String Đường dẫn nơi lưu trữ hình

ảnh của thương hiệu

4 UpdatedDateTime DateTime Ngày giờ cập nhật

5 CreateDateTime DateTime Ngày giờ tạo

Trang 39

2 Name String Tên của sản phẩm

3 ShortDescription String Mô tả ngắn gọn về sản

phẩm

4 Description String Mô tả chi tiết về sản phẩm

5 Price Decimal Giá của sản phẩm

6 StockQuantity Int Số lượng tồn kho

7 IsPublished Bool Trạng thái mở bán

Int Số lượng đánh giá

10 HasVariant Bool Sản phẩm có biến thể hay

không

True – Có False – Không

11 Delected Bool Trạng thái đã xóa hay chưa True – Đã xóa

False – Chưa xóa

12 BrandId Guid Mã thương hiệu Khóa ngoại

13 CategoryId Guid Mã doanh mục Khóa ngoại

14 DiscountId Guid Mã giảm giá Khóa ngoại

15 CreateDateTime DateTime Ngày giờ tạo

16 UpdateDateTime DateTime Ngày giờ cập nhật

Trang 40

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM

24

• Bảng Attribute

Bảng 9: Bảng Attribute

1 Id Guid Mã thuộc tính Khóa chính

2 Name String Tên thuộc tính

3 Alias String Tên viết tắt

4 CanCombine Bool Thuộc tính có thể kết hợp

với thuộc tính khác để tạo nên một biến thể của sản phẩm hay không

True – Có thể kết hợp False – Không thể kết hợp

5 ProductId Guid Mã sản phẩm Khóa ngoại

• Bảng AttributeValue

Bảng 10: Bảng AttributeValue

1 Id Guid Mã giá trị thuộc tính Khóa chính

2 Name String Tên giá trị thuộc tính

3 Color String Mã màu

4 PriceAdjustment Decimal Giá điều chỉnh

5 AttributeId Guid Mã thuộc tính Khóa ngoại

• Bảng Variant

Bảng 11: Bảng Variant

1 Id Guid Mã biến thể sản phẩm Khóa chính

2 Price Decimal Giá của biến thể

3 IsActive Bool Trạng thái mở bán

4 AssignedImages String Chuỗi mã hình ảnh

5 AttributeSelection String Mã thuộc tính và mã giá trị

thuộc tính được được tuần tự hóa

Ngày đăng: 22/11/2024, 09:47

w