1. Trang chủ
  2. » Tất cả

Đồ án ứng dụng shop bán quần áo online

73 7 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 đề Ứng Dụng Shop Bán Quần Áo Online
Tác giả Nguyễn Duy Phúc, Hoàng Quốc Trọng
Người hướng dẫn Trần Anh Dũng
Trường học Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Phần Mềm
Thể loại Báo cáo đồ án
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 73
Dung lượng 3,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

− Phương pháp công nghệ: + Tìm hiểu xây dựng hệ thống gợi ý theo hướng Collaborative filtering Recommender + Tìm hiểu xây dựng hệ thống dự báo doanh thu + Xây dựng giao diện web app để

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 2

ĐỀ TÀI:

ỨNG DỤNG SHOP BÁN QUẦN ÁO ONLINE

Sinh viên thực hiện: Nguyễn Duy Phúc

Hoàng Quốc Trọng

19522038

19522408

Thành phố Hồ Chí Minh, năm 2022

Trang 2

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 2

ĐỀ TÀI:

ỨNG DỤNG SHOP BÁN QUẦN ÁO ONLINE

Sinh viên thực hiện: Nguyễn Duy Phúc

Hoàng Quốc Trọng

19522038

19522408

Thành phố Hồ Chí Minh, năm 2022

Trang 3

Mục lục

DANH MỤC HÌNH ẢNH 1

DANH MỤC BẢNG 3

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

LỜI CẢM ƠN 6

ĐỀ CƯƠNG CHI TIẾT 7

CHƯƠNG 1: GIỚI THIỆU CHUNG 12

1.1 T ỔNG QUAN ĐỀ TÀI 12

1.2 L Ý DO CHỌN ĐỀ TÀI 12

1.3 Đ ỐI TƯỢNG SỬ DỤNG 12

1.4 P HẠM VI NGHIÊN CỨU : 12

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

2.1 T ÌM HIỂU VỀ R EACTJS 13

2.1.1 Reactjs là gì? 13

2.1.2 Giới thiệu về JSX 13

2.1.3 Giới thiệu về Components 14

2.1.4 Ưu và Nhược 14

2.2 T ÌM HIỂU VỀ ASP.NET C ORE API 15

2.2.1 Giới thiệu 15

2.2.2 ASP.NET CORE là gì 15

2.2.3 ASP.NET Core API 15

2.2.4 Các dịch vụ RESTful 16

2.2.5 Tại sao phải sử dụng ASP.NET WEB API? 17

2.3 T ÌM HIỂU VỀ SQL S ERVER 18

2.3.1 Giới thiệu về Sql Server 18

2.3.2 Lịch sử hình thành 18

2.3.3 Các thành phần cơ bản trong SQL Server 19

2.3.4 Tại sao phải sử dụng SQL Server? 20

2.4 T ÌM HIỂU G ITHUB 21

2.4.1 Khái niệm 21

2.4.2 Git 22

2.4.3 Chức năng 22

2.4.4 Lợi ích 22

CHƯƠNG 3: MACHINE LEARNING: ML.NET 23

Trang 4

Báo cáo đồ án 2 Ứng dụng shop bán hàng

3.1 K HÁI NIỆM ML.N ET 23

3.2 Q UY TRÌNH HOẠT ĐỘNG 24

3.3 G ỢI Ý SẢN PHẨM 25

3.3.1 Thuật toán Matrix Factorization 25

3.3.2 Ưu điểm 27

3.3.3 Nhược điểm 27

3.3.4 Model 28

3.4 D Ự BÁO DOANH THU 28

3.4.1 Thuật toán Singular Spectrum Analysis (SSA) 28

3.4.2 Model 29

CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 29

4.1 K IẾN TRÚC HỆ THỐNG : M Ô HÌNH MVC 29

4.2 S Ơ ĐỒ LỚP 31

4.3 S Ơ ĐỒ U SE C ASE 32

4.3.1 Danh sách tác nhân 33

4.3.2 Danh sách Use Case 33

4.3.3 Mô tả chi tiết Use Case 34

4.4 S EQUENCE D IAGRAM 42

4.4.1 Đăng nhập 42

4.4.2 Đăng ký 43

4.4.3 Chỉnh sửa thông tin 44

4.4.4 Thêm sản phẩm 45

4.4.5 Chỉnh sửa sản phẩm 46

4.4.6 Tìm kiếm sản phẩm 47

4.4.7 Lập hóa đơn 48

CHƯƠNG 5: THIẾT KẾ CƠ SỞ DỮ LIỆU 49

5.1 S Ơ ĐỒ ERD 49

5.2 C HI TIẾT CÁC BẢNG 49

5.2.1 Tài khoản: 49

5.2.2 Sản phẩm : 50

5.2.3 Ảnh : 50

5.2.4 Phân loại: 50

5.2.5 Nhãn hiệu: 51

5.2.6 Loại : 51

5.2.7 Giỏ hàng: 51

5.2.8 Đơn hàng: 52

5.2.9 Chi tiết đơn hàng: 52

5.2.10 Đánh giá: 52

Trang 5

CHƯƠNG 6: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 53

6.1 S CREEN F LOW 53

6.1.1 Người dùng Khách hàng 53

6.1.2 Người dùng Quản trị viên 53

6.2 M Ô TẢ CHI TIẾT TỪNG MÀN HÌNH 54

6.2.1 Dashboard: 54

6.2.2 Thêm thương hiệu: 55

6.2.3 Thêm màu: 56

6.2.4 Thêm sản phẩm: 57

6.2.5 Xem sản phẩm: 58

6.2.6 Sửa sản phẩm: 59

6.2.7 Thêm phân loại: 61

6.2.8 Xem phân loại: 62

6.2.9 Xem danh sách người dùng: 63

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

7.1 M ÔI TRƯỜNG CÀI ĐẶT VÀ KIỂM THỬ : 63

7.2 K ẾT QUẢ KIỂM THỬ 64

CHƯƠNG 8: KẾT LUẬN 64

8.1 T ỔNG KẾT 64

8.2 K HÓ KHĂN 64

8.3 K ẾT QUẢ ĐẠT ĐƯỢC 65

8.4 H ẠN CHẾ CỦA ĐỒ ÁN 65

8.5 H ƯỚNG PHÁT TRIỂN 65

TÀI LIỆU THAM KHẢO 67

Trang 7

DANH MỤC HÌNH ẢNH

Hình 2.1-1 Reactjs 13

Hình 2.2-1.NET Core API 15

Hình 2.3-1 SQL Server 18

Hình 2.4-1 Github 21

Hình 3.1-1 ML.Net 23

Hình 3.2-1 Quy trình hoạt động ML.Net 24

Hình 3.3-1 Kỹ thuật phân rã ma trận 26

Hình 3.3-2 Kỹ thuật phân rã ma trận 26

Hình 3.3-3 Kỹ thuật phân rã ma trận 27

Hình 3.3-4 Model gợi ý sản phẩm 28

Hình 3.4-1 Model dự báo doanh thu 29

Hình 4.1-1 Sơ đồ mô hình MVC 30

Hình 4.2-1 Sơ đồ lớp 31

Hình 4.3-1 Sơ đồ Use Case 32

Hình 4.4-1 Sequence diagram Đăng nhập 42

Hình 4.4-2 Sequence diagram Đăng ký 43

Hình 4.4-3 Sequence diagram Chỉnh sửa thông tin 44

Hình 4.4-4 Sequence diagram Thêm sản phẩm 45

Hình 4.4-5 Sequence diagram Chỉnh sửa sản phẩm 46

Hình 4.4-6 Sequence diagram Tìm kiếm sản phẩm 47

Hình 4.4-7 Sequence diagram Lập đơn hàng 48

Hình 5.1-1 Sơ đồ ERD 49

Hình 6.1-1 Screen Flow của Khách hàng 53

Hình 6.1-2 Screen Flow của Người dùng Quản lý 53

Hình 6.2-1 Màn hình Dashboard 54

Hình 6.2-2 Màn hình Thêm thương hiệu 55

Hình 6.2-3 Màn hình Thêm Màu 56

Hình 6.2-4 Màn hình Thêm sản phẩm 57

Hình 6.2-5 Màn hình Xem sản phẩm 58

Trang 8

Báo cáo đồ án 2 Ứng dụng shop bán hàng

Hình 6.2-6 Màn hình Sửa sản phẩm 59

Hình 6.2-7 Màn hình Thêm phân loại 61

Hình 6.2-8 Màn hình Xem phân loại 62

Hình 6.2-9 Màn hình Xem danh sách người dùng 63

Trang 9

DANH MỤC BẢNG

Bảng 4.3-1 Danh sách tác nhân 33

Bảng 4.3-2 Danh sách use case 33

Bảng 4.3-3 Usecase Đăng nhập 34

Bảng 4.3-4 Usecase Đăng ký 34

Bảng 4.3-5 Usecase Quên mật khẩu 35

Bảng 4.3-6 Usecase Tìm kiếm sản phẩm 36

Bảng 4.3-7 Usecase Xem thông tin sản phẩm 36

Bảng 4.3-8 Usecase Đánh giá sản phẩm 37

Bảng 4.3-9 Usecase Thêm vào giỏ hàng 37

Bảng 4.3-10 Usecase xem giỏ hàng 38

Bảng 4.3-11 Usecase Tạo đơn hàng 39

Bảng 4.3-12 Usecase Xem thông tin đơn hàng 39

Bảng 4.3-13 Usecase Thống kê doanh thu 40

Bảng 4.3-14 Usecase Quản lý sản phẩm 40

Bảng 5.2-1 Table account 49

Bảng 5.2-2 Table Product 50

Bảng 5.2-3 Table Image 50

Bảng 5.2-4 Table Category 50

Bảng 5.2-5 Table Nhãn hiệu 51

Bảng 5.2-6 Table Variant 51

Bảng 5.2-7 Table Cart 51

Bảng 5.2-8 Table Order 52

Bảng 5.2-9 Table Order Detail 52

Bảng 5.2-10 Table Comment 52

Bảng 6.2-1 Chi tiết Màn hình Dashboard 54

Bảng 6.2-2 Chi tiết Màn hình Thêm thương hiệu 55

Bảng 6.2-3 Chi tiết Màn hình Thêm Màu 56

Bảng 6.2-4 Chi tiết Màn hình Thêm sản phẩm 57

Bảng 6.2-5 Chi tiết Màn hình Xem sản phẩm 58

Bảng 6.2-6 Chi tiết Màn hình Sửa sản phẩm 59

Trang 10

Báo cáo đồ án 2 Ứng dụng shop bán hàng

Bảng 6.2-7 Chi tiết Màn hình Thêm phân loại 61

Bảng 6.2-8 Chi tiết Màn hình Xem phân loại 62

Bảng 6.2-9 Chi tiết Màn hình Xem danh sách người dùng 63

Bảng 7.2-1 Bảng kiểm thử 64

Trang 11

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

dụng

3 API Application Programming Interface Giao diện lập trình ứng

dụng

4 MVC Model-View-Controller Mô hình lập trình

5 AI Artificial Intelligence Trí tuệ nhân tạo

8 REST Representational State Transfer

9 URI Uniform Resource Identifier Mã định danh tài nguyên

Trang 12

Báo cáo đồ án 2 Ứng dụng shop bán hàng

LỜI CẢM ƠN

Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công

nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ bản,

các kỹ năng thực tế để có thể lần đầu thực hiện Đồ án 2 của mình

Để hoàn thành Đồ án này, chúng em xin gửi lời cảm ơn chân thành đến:

Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều

kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu

thuận lợi cho việc tìm kiếm, nghiên cứu thông tin

Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng đã tận tình giúp đỡ,

định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu

không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho

chúng em trong quá trình học tập và lập nghiệp sau này

Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn

bè, tập thể lớp PMCL2019.3 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong

học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau

Trong quá trình làm Đồ án này chúng em không tránh khỏi được những sai sót,

chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để hoàn thiện và

phát triển đồ án hơn trong Khóa luận tốt nghiệp trong tương lai

Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành

cùng mọi người

Thành phố Hồ Chí Minh, 15 tháng 12 năm 2022

Sinh viên NGUYỄN DUY PHÚC HOÀNG QUỐC TRỌNG

Trang 13

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

TP HCM, ngày 15 tháng 09 năm 2022

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Shop quần áo online tích hợp gợi ý sản phẩm và dự báo

Cán bộ hướng dẫn: ThS Trần Anh Dũng

Thời gian thực hiện: Từ ngày 12/09/2022 đến ngày 28/12/2022

Sinh viên thực hiện:

có 1 trang web thương mại điện tử có đầy đủ chức năng cần thiết của riêng họ

để tạo thêm sự tiện lợi cho các khách hàng cũng như cạnh tranh trong bối cảnh bây giờ

Trong đề tài này, chúng em không chỉ hứng thú với việc xây dựng 1 website chỉ để thực hiện các chức năng bán hàng chính mà còn xây dựng AI

để thực hiện thuật toán đề xuất quần áo cho khách hàng và thuật toán dự báo doanh thu cho chủ shop

2 Mục tiêu: bao gồm 3 mục tiêu chính:

1 Xây dựng Website bán quần áo

- Khách hàng: Có thể filter các loại quần áo, tìm kiếm sản phẩm phù hợp nhu cầu, thêm sản phẩm vào giỏ hàng, thanh toán,

- Chủ shop: Xem doanh thu, Thêm sửa xóa các sản phẩm bán hàng,

Trang 14

Báo cáo đồ án 2 Ứng dụng shop bán hàng

2 Xây dựng hệ thống đề xuất cho khách hàng

- Đề xuất các sản phẩm liên quan dựa trên sở thích của người dùng hoặc độ ưa chuộng của sản phẩm

3 Xây dựng hệ thống dự báo cho chủ shop

- Dự báo doanh thu dựa trên thống kê lượng sản phẩm đã bán cho chủ shop

+ Xem chi tiết sản phẩm

+ Chọn mua sản phẩm và đưa vào giỏ hàng

+ Đánh giá sản phẩm sau khi mua

+ Thanh toán giỏ hàng

+ Được đề xuất sản phẩm dựa trên sự ưa thích của bản thân với các khách hàng khác có sự ưa thích tương tự

+ Đăng nhập, đăng ký và các chức năng authentication khác

− Đối với chủ shop:

+ Thêm xóa sửa sản phẩm

+ Xem doanh thu và được dự báo doanh thu

+ Xem tình trạng các đơn hàng

4 Đối tượng sử dụng:

− Những người có nhu cầu muốn mua các sản phẩm quần áo từ chủ shop

− Chủ shop muốn kinh doanh qua trang web thương mại điện tử

5 Phương pháp thực hiện:

− Phương pháp làm việc: Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline dưới sự hướng dẫn của giảng viên hướng dẫn

− Phương pháp nghiên cứu:

Trang 15

+ Phân tích nhu cầu sử dụng của đối tượng người dùng

+ Nghiên cứu tài liệu các công nghệ liên quan

− Phương pháp công nghệ:

+ Tìm hiểu xây dựng hệ thống gợi ý theo hướng Collaborative filtering Recommender

+ Tìm hiểu xây dựng hệ thống dự báo doanh thu

+ Xây dựng giao diện web app để tương tác với người dùng

+ Quản lý source code thông qua Github

+ Sử dụng Trello, Google doc,… để quản lý tiến trình và tài liệu

7 Kết quả mong đợi:

− Tạo ra website phục vụ các chức năng cơ bản của một website thương mại điện tử

− Hoạt động ổn định, có thể xử lý thông tin nhanh chóng

− Đưa ra gợi ý dựa vào đánh giá của người dùng

− Dự đoán doanh thu của cửa hàng

8 Hướng phát triển của đề tài:

− Tính năng chuyển đổi gói ngôn ngữ

− Chèn quảng cáo

9 Kế hoạch làm việc:

Thời gian thực hiện từ ngày 05/09/2022 đến ngày kết thúc môn Đồ án 2

Trang 16

Báo cáo đồ án 2 Ứng dụng shop bán hàng

1 05/09 – 11/09 - Phân tích và tìm hiểu bài toán

2 15/09 - Hoàn thành đề cương chi tiết

3 15/09 – 22/09 - Xây dựng mục tiêu

- Tìm hiểu các nền tảng công nghệ

4 23/09 – 27/09 - Tìm hiểu và phân tích các chức năng

- Tìm kiếm thêm data

5 28/09 – 01/10 - Xây dựng cơ sở dữ liệu

6 01/10 – 04/10 - Xây dựng kiến trúc hệ thống

7 05/10 – 30/10 - Thiết kế giao diện cho user khách hàng

- Xây dựng các chức năng cơ bản cho user khách hàng

8 31/10 - 13/11 - Thiết kế giao diện cho user quản lý

- Xây dựng các chức năng cơ bản cho user quản lý

9 14/11 – 27/11 - Tìm hiểu và thực hiện chức năng gợi ý cho khách hàng

10 28/11 - 11/12 - Tìm hiểu và thực hiện chức năng dự đoán doanh thu cho

quản lý

11 12/12 – 15/12 - Kiểm thử web

12 15/12 - 28/12 - Hoàn thiện báo cáo và chỉnh sửa bug trong web

10 Phân công công việc:

Công việc chung − Lập kế hoạch

− Tìm hiểu công nghệ

− Phân tích yêu cầu

− Lập trình giao diện

− Lập trình chức năng

− Kiểm thử

− Chuẩn bị tài liệu, viết báo cáo

Trang 17

Công việc cá nhân − Xây dựng hệ thống

− Xây dựng database và liên kết với hệ thống

− Xây dựng giao diện

− Liên kết các chức năng Front end và backend

TP.Hồ Chí Minh, ngày 15 tháng 09 năm 2022

Trang 18

- Mô hình phát triển: MVC

- Tích hợp Machine Learning: ML.Net

1.2 Lý do chọn đề tài

Trong thời buổi công nghệ hóa hiện nay, việc mua bán qua các trang thương mại điện

tử đang rất phổ biến tạo nên sự cạnh tranh khốc liệt giữa các cửa hàng kinh doanh bán quần áo Vì thế các shop quần áo đều cần thiết phải có 1 trang web thương mại điện tử

có đầy đủ chức năng cần thiết của riêng họ để tạo thêm sự tiện lợi cho các khách hàng cũng như cạnh tranh trong bối cảnh bây giờ

Trong đề tài này, chúng em không chỉ hứng thú với việc xây dựng 1 website chỉ để thực hiện các chức năng bán hàng chính mà còn xây dựng AI để thực hiện thuật toán

đề xuất quần áo cho khách hàng và thuật toán dự báo doanh thu cho chủ shop

1.3 Đối tượng sử dụng

− Những người có nhu cầu muốn mua các sản phẩm quần áo từ chủ shop

− Chủ shop muốn kinh doanh qua trang web thương mại điện tử

+ Xem chi tiết sản phẩm

+ Chọn mua sản phẩm và đưa vào giỏ hàng

Trang 19

+ Đánh giá sản phẩm sau khi mua

+ Thanh toán giỏ hàng

+ Được đề xuất sản phẩm dựa trên sự ưa thích của bản thân với các khách hàng khác có sự ưa thích tương tự

+ Đăng nhập, đăng ký và các chức năng authentication khác

− Đối với chủ shop:

+ Thêm xóa sửa sản phẩm

+ Xem doanh thu và được dự báo doanh thu

+ Xem tình trạng các đơn hàng

Chương 2: CƠ SỞ LÝ THUYẾT

2.1.2 Giới thiệu về JSX

JSX là một dạng ngôn ngữ cho phép viết các mã HTML trong Javascript Đặc điểm:

Trang 20

Báo cáo đồ án 2 Ứng dụng shop bán hàng

● Faster: Nhanh hơn JSX thực hiện tối ưu hóa trong khi biên dịch sang mã Javacsript Các mã này cho thời gian thực hiện nhanh hơn nhiều so với một mã tương đương viết trực tiếp bằng Javascript

● Safer: an toàn hơn Ngược với Javascript, JSX là kiểu statically-typed, nghĩa là

nó được biên dịch trước khi chạy, giống như Java, C++ Vì thế các lỗi sẽ được phát hiện ngay trong quá trình biên dịch Ngoài ra, nó cũng cung cấp tính năng

gỡ lỗi khi biên dịch rất tốt

● Easier: Dễ dàng hơn JSX kế thừa dựa trên Javascript, vì vậy rất dễ dàng để cho các lập trình viên Javascripts có thể sử dụng

2.1.3 Giới thiệu về Components

React được xây dựng xung quanh các component, chứ không dùng template như các framework khác Trong React, chúng ta xây dựng trang web sử dụng những thành phần (component) nhỏ Chúng ta có thể tái sử dụng một component ở nhiều nơi, với các trạng thái hoặc các thuộc tính khác nhau, trong một component lại có thể chứa thành phần khác Mỗi component trong React có một trạng thái riêng, có thể thay đổi, và React sẽ thực hiện cập nhật component dựa trên những thay đổi của trạng thái Mọi thứ React đều là component Chúng giúp bảo trì mã code khi làm việc với các dự án lớn Một react component đơn giản chỉ cần một method render Có rất nhiều methods khả dụng khác, nhưng render là method chủ đạo

Trang 21

2.2 Tìm hiểu về ASP.NET Core API

Hình 2.2-1.NET Core API

2.2.1 Giới thiệu

Khi nhắc đến NET, chúng ta thường nghĩ đến Mã Nguồn đóng, Only Window, Build with Visual Studio Nhưng sau khi cho ra mắt ASP.NET CORE 1, Microsoft đã thay đổi hoàn toàn suy nghĩ của chúng ta với các điểm sau:

• Open source Microsoft đã open source NET và public trên github để thu hút các lập trình viên cũng như tận dụng sức mạnh của cộng đồng

• Xây dựng cho Windows, Mac, hoặc Linux

• Visual Studio Code không còn gắn chặt với Visual studio, ASP.NET CORE bây giờ có thể viết với Visual studio code (free) trên cả Window, Linux và Mac

2.2.2 ASP.NET CORE là gì

ASP.NET Core là một nền tảng mã nguồn mở, cross-platform framework cho việc xây dựng và kết nối các ứng dụng web hiện đại chẳng hạn như ứng dụng web, Internet of Thing, Mobile Backend - Web API

ASP.NET Core cung cấp một kiến trúc để tối ưu hóa việc xây dựng các ứng dụng đám mây (microsoft azure) hoặc các ứng dụng độc lập Bạn có thế phát triển ứng dụng ASP.NET Core đa nền tảng (Window, Mac, Linux), với mã nguồn mở tại Github

2.2.3 ASP.NET Core API

ASP.NET Web API là một framework được cung cấp bởi Microsoft, giúp dễ dàng xây dựng API Web , tức là các dịch vụ dựa trên giao thức HTTP ASP.NET Web API là

Trang 22

Báo cáo đồ án 2 Ứng dụng shop bán hàng

một nền tảng lý tưởng để xây dựng các dịch vụ Restful Các dịch vụ API Web này có thể được sử dụng bởi nhiều client khác nhau, chẳng hạn như:

Client-Server Constraint (Ràng buộc máy khách - máy chủ)

Ràng buộc này xác định rằng Máy khách gửi yêu cầu đến máy chủ và máy chủ sẽ gửi phản hồi lại cho máy khách Sự tách biệt mối quan tâm này hỗ trợ sự phát triển độc lập của cả logic phía máy khách và logic phía máy chủ

Stateless Constraint (Ràng buộc không trạng thái)

Ràng buộc không trạng thái xác định rằng giao tiếp giữa máy khách và máy chủ phải không trạng thái giữa các yêu cầu Điều đó có nghĩa là chúng ta không nên lưu trữ bất

kỳ thông tin nào về máy khách trên máy chủ Yêu cầu đến từ máy khách phải chứa tất

cả các thông tin cần thiết cho máy chủ để xử lý yêu cầu đó sẽ đảm bảo rằng mỗi yêu cầu đến từ máy khách sẽ được máy chủ xử lý độc lập

Cacheable Constraint (Ràng buộc có thể lưu)

Một số dữ liệu chủ được cung cấp bởi máy chủ như danh sách các quốc gia hoặc danh sách các thành phố hoặc danh sách của bộ phận trong công ty không thay đổi thường xuyên Ràng buộc có thể lưu trong bộ nhớ cho phép máy khách quyết định thời gian dữ liệu này tốt trong bao lâu để khách hàng không cần phải quay lại máy chủ nhiều lần cho cùng một dữ liệu

Trang 23

Uniform Interface (Giao diện thống nhất)

Ràng buộc giao diện thống nhất định nghĩa một giao diện giữa máy khách và máy chủ

Để hiểu ràng buộc giao diện thống nhất, chúng ta cần hiểu tài nguyên là gì và các động

từ HTTP - GET, PUT, POST và DELETE Từ quan điểm API REST, các tài nguyên thường đại diện cho các thực thể dữ liệu như Sản phẩm, Sinh viên, Khách hàng, v.v Động từ HTTP như GET, POST, PUT và DELETE được gửi với mỗi yêu cầu từ máy khách cho API biết Làm gì với tài nguyên Mỗi tài nguyên trong API REST được xác định bởi một URI duy nhất (Mã định danh tài nguyên đồng nhất) Bảng sau đây cho thấy một số yêu cầu điển hình mà bạn thấy trong API

● /Students nếu động từ GET, nó sẽ lấy danh sách sinh viên

● /Students/1 nếu động từ là GET sẽ lấy thông tin về sinh viên có id là 1

● /Students nếu động từ là POST, nó sẽ tạo mới một sinh viên

● /Students/1 nếu động từ là PUT, nó sẽ cập nhật thông tin của sinh có id

là 1

● /Students/1 nếu động từ là DELETE, thì nó sẽ xóa một bản ghi trong đó

id là 1

Một khái niệm khác có liên quan đến Giao diện thống nhất là HATEOAS - HATEOAS

là viết tắt của Hypermedia as the Engine of Application State Điều này nói rằng trong mỗi yêu cầu có thể có một tập hợp các siêu liên kết sẽ cho bạn biết những hành động hoặc hoạt động khác mà bạn có thể thực hiện trên tài nguyên

2.2.5 Tại sao phải sử dụng ASP.NET WEB API?

Ngày nay, một ứng dụng web không đủ hoặc không đủ để tiếp cận tất cả khách hàng của mình Mọi người đang trở nên rất thông minh; họ đang sử dụng các loại thiết bị khác nhau như điện thoại di động, iPhone, máy tính bảng, v.v trong cuộc sống hàng ngày Các thiết bị này đang có rất nhiều ứng dụng giúp cuộc sống của họ trở nên dễ dàng Nói một cách đơn giản, chúng ta có thể nói rằng chúng ta đang hướng tới thế giới ứng dụng từ web

Trang 24

Báo cáo đồ án 2 Ứng dụng shop bán hàng

Vì vậy, nếu chúng tôi muốn hiển thị dữ liệu của mình (dữ liệu doanh nghiệp) cho các trình duyệt cũng như cho tất cả các ứng dụng thiết bị hiện đại này một cách nhanh chóng, an toàn và đơn giản, thì chúng tôi nên có một API tương thích với tất cả các trình duyệt những thiết bị hiện đại này

ASP.NET Web API là một framework tuyệt vời để xây dựng các dịch vụ HTTP có thể được sử dụng bởi nhiều khách hàng bao gồm trình duyệt, điện thoại di động, iPhone và máy tính bảng

2.3 Tìm hiểu về SQL Server

Hình 2.3-1 SQL Server

2.3.1 Giới thiệu về Sql Server

SQL Server chính là một hệ quản trị dữ liệu quan hệ sử dụng câu lệnh SQL để trao đổi

dữ liệu giữa máy cài SQL Server và máy Client Một Relational Database Management System – RDBMS gồm có: databases, database engine và các chương trình ứng dụng dùng để quản lý các bộ phận trong RDBMS và những dữ liệu khác

2.3.2 Lịch sử hình thành

+ Lịch sử ra đời SQL server

Năm 1989, phiên bản đầu tiên của SQL Server 1.0 ra đời được dùng cho các hệ điều hành 16 bit và được phát triển cho tới ngày nay

Trang 25

Cho tới khi SQL Server ra phiên bản 6.5 thì được thị trường chấp nhận rộng rãi Một đột phá cải tiến cho SQL Server 7.0 khi được Microsoft viết lại một engine hoàn toàn mới Đến khi SQL Server từ phiên bản 7.0 cải tiến lên 8.0 chủ yếu phát triển về tính năng thiết kế website.

+ Một vài ấn bản SQL Server

Enterprise: là một ấn bản chứa tất cả các đặc điểm nổi bật của SQL Server như: các công cụ cho tạo và quản lý phân cụm SQL Server, nhân bộ máy cơ sở dữ liệu và một số dịch vụ đi kèm Nó có thể đánh địa chỉ 12 terabytes và quản lý cơ sở dữ liệu lên tới 524 petabytes

Standard: Ấn bản này có thể chạy tốt trên hệ thống lên tới 4 CPU và 2 GB RAM rất thích hợp cho các dịch vụ thiết kế web vừa và nhỏ

Developer: Ấn bản này giới hạn số lượng người kết nối với server nhưng có đầy đủ các tính năng của Enterprise Edition Đây là phiên bản được sử dụng cho kiểm tra và phát triển ứng dụng phù hợp cho các cá nhân trong lĩnh vực web như: freelancer Việt Nam, website spa,…

Workgroup: ấn bản SQL Server này có các chức năng lõi cơ sở dữ liệu nhưng không đi kèm các dịch vụ Ở phiên bản 2012 không có ấn bản này

Express: Ấn bản này dễ dàng sử dụng và quản trị cơ sở dữ liệu đơn giản

2.3.3 Các thành phần cơ bản trong SQL Server

Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine, Integration Services, Notification Services, Full Text Search Service,… Tất cả kết hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc phân tích và lưu trữ dữ liệu trở nên dễ dàng hơn

+ Database Engine: Đây là một engine có khả năng chứa dữ liệu ở các quy mô dưới

dạng support và table Ngoài ra, nó còn có khả năng tự điều chỉnh ví dụ: trả lại tài nguyên cho hệ điều hành khi một user log off và sử dụng thêm các tài nguyên của máy khi cần

Trang 26

Báo cáo đồ án 2 Ứng dụng shop bán hàng

+ Integration Services: là tập hợp các đối tượng lập trình và các công cụ đồ họa cho

việc sao chép, di chuyển và chuyển đổi dữ liệu Khi bạn làm việc trong một công ty lớn thì dữ liệu được lưu trữ ở nhiều nơi khác nhau như được chứa trong: Oracle, SQL Server, DB2, Microsoft Access,… và bạn chắc chắn sẽ có nhu cầu di chuyển dữ liệu giữa các server này Ngoài ra, bạn còn muốn định dạng dữ liệu trước khi lưu vào database Chắc chắn Integration Services sẽ giúp bạn giải quyết được công việc này dễ dàng

+ Analysis Services: Đây là một dịch vụ phân tích dữ liệu rất hay của Microsoft Dữ

liệu khi được lưu trữ vào trong database mà bạn không thể lấy được những thông tin bổ ích thì coi như không có ý nghĩa gì Chính vì thế, công cụ này ra đời giúp bạn trong việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – data mining và khái niệm hình khối nhiều chiều – multi dimensional cubes

+ Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển

khai các ứng dụng soạn và gửi thông báo Ngoài ra, dịch vụ này còn có chức năng gửi thông báo theo dịch thời đến hàng ngàn người đăng ký sử dụng trên nhiều loại thiết bị khác nhau

+ Reporting Services: là một công cụ tạo, quản lý và triển khai báo cáo bao gồm:

server và client Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo

+ Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn và đánh chỉ

mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu SQL Server

+ Service Broker: là một môi trường lập trình cho việc tạo ra các ứng dụng trong việc

nhảy qua các Instance

2.3.4 Tại sao phải sử dụng SQL Server?

SQL Server không phải là một hệ quản trị cơ sở dữ liệu độc lập mà nó chỉ là một thành phần với vai trò ngôn ngữ là công cụ giao tiếp giữa hệ cơ sở dữ liệu và người dùng Chính vì thế nó được sử dụng trong các dịch vụ thiết kế web đẹp với chức năng giao tiếp với người dùng với các vai trò sau:

Trang 27

SQL là một ngôn ngữ đòi hỏi có tính tương tác cao: Người dùng có thể dễ dàng trao đổi với các tiện ích thông qua các câu lệnh của SQL đến cơ sở dữ liệu và nhận kết quả từ

cơ sở dữ liệu

SQL là một ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể xây dựng các chương trình ứng dụng giao tiếp với cơ sở dữ liệu bằng cách nhúng các câu lệnh SQL vào trong ngôn ngữ lập trình

SQL là một ngôn ngữ lập trình quản trị cơ sở dữ liệu: Người quản trị cơ sở dữ liệu có thể quản lý, định nghĩa và điều khiển truy cập cơ sở dữ liệu thông qua SQL

SQL là một ngôn ngữ lập trình cho các hệ thống chủ khách: SQL được sử dụng như là một công cụ giao tiếp với các trình ứng dụng trong hệ thống cơ sở dữ liệu khách chủ.SQL là ngôn ngữ truy cập dữ liệu trên Internet: SQL được sử dụng với vai trò tương tác với dữ liệu trong hầu hết các máy chủ web và máy chủ Internet

SQL là ngôn ngữ cơ sở dữ liệu phân tán: Với vai trò giao tiếp với các hệ thống trên mạng, gửi và nhận các yêu cầu truy xuất dữ liệu với nhau

Trang 28

Báo cáo đồ án 2 Ứng dụng shop bán hàng

2.4.2 Git

- Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán

- Giúp đồng bộ source code của team lên 1 server

- Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, check modifications, show history, merge source, …)

2.4.3 Chức năng

GitHub được coi là một mạng xã hội dành cho lập trình viên lớn nhất và dễ dùng nhất với các tính năng cốt lõi như:

- Wiki, issue, thống kê, đổi tên project, project được đặt vào namespace là user

- Watch project: theo dõi hoạt động của project của người khác Xem quá trình người ta phát triển phần mềm thế nào, project phát triển ra sao

- Follow user: theo dõi hoạt động của người khác

Có 2 cách tiếp cận GitHub: Tạo project của riêng mình Contribute cho project có sẵn: fork project có sẵn của người khác, sửa đổi, sau đó đề nghị họ cập nhật sửa đổi của mình (tạo pull request)

2.4.4 Lợi ích

- Quản lý source code dễ dàng

- Tracking sự thay đổi qua các version

- Markdown

- Github giúp cải thiện kỹ năng code, thậm chí là tracking bug

- Github là một kho tài nguyên tuyệt vời

- Mở rộng mối quan hệ

Trang 29

Chương 3: MACHINE LEARNING: ML.NET

3.1 Khái niệm ML.Net

Hình 3.1-1 ML.Net

ML.Net là thư viện máy học mã nguồn mở và đa nền tảng (Windows, Linux, macOS) của Microsoft Nó được coi là đủ mạnh để làm những gì mà một số thư viện khác có thể làm (chẳng hạn như scikit-learning được viết bằng Python) và làm những việc mà các thư viện khác không thể làm được ML.Net bắt đầu vào tháng 5 năm 2018 và hiện phiên bản ổn định là 1.7.1

ML.NET hỗ trợ các bài toán:

● Classification: Ví dụ các bài toán về phân loại cảm xúc khách hàng tích cực hay

tiêu cực từ các feedback của họ

● Clustering: Ví dụ các bài toán về gom cụm khách hàng, giả sử có N khách hàng

ta cần phải gom thành k cụm, các cụm này chứa các đặc trưng khác nhau của khách hàng

● Regression/ Predict continuous values: Ví dụ các bài toán về hồi quy như dự

đoán giá nhà, giá taxi … từ một tập dữ liệu giao dịch trong quá khứ, hãy dự đoán giá của nó là gì khi có một số sự kiện mới

● Anomaly Detection: Các bài toán về phát hiện bất thường, chẳng hạn như Phát

hiện các giao dịch gian lận trong ngân hàng

● Recommendations: Các bài toán về khuyến nghị, ví dụ như làm sao quảng cáo

được sản phẩm tới đúng khách hàng có nhu cầu, làm sao khi vào tiki thì nó gợi

ý được các cuốn sách mà người này quan tâm

Trang 30

Báo cáo đồ án 2 Ứng dụng shop bán hàng

● Time series/ sequential data: các bài toán như dự báo thời tiết hay doanh số bán

sản phẩm

● Image classification: các bài toán về phân loại hình ảnh

● Object detection: Các bài toán về Phát hiện đối tượng

3.2 Quy trình hoạt động

Hình 3.2-1 Quy trình hoạt động ML.Net

Bước 1: ML.NET sẽ cung cấp các thư viện phù hợp để chúng ta có thể nạp dữ liệu và

tự động mô hình hóa dữ liệu này thành mô hình hướng đối tượng Ở bước 1, thông thường chúng ta sẽ thực hiện việc load dữ liệu, sau đó chúng ta cũng thực hiện việc chia

dữ liệu ban đầu thành 2 phần: Tập huấn luyện để huấn luyện mô hình (dùng cho bước 3), Tập kiểm tra để đánh giá mô hình (cho bước 4) Dữ liệu được lưu vào IDataView

Trang 31

Bước 2: Bước này đại khái là chỉ định một quy trình hoạt động để trích xuất các đặc

trưng và áp dụng thuật toán học máy cho phù hợp Tùy vào mục đích bài toán máy học

mà ta dùng các giải thuật khác nhau, có thể dùng Binary classification, Multiclass classification, Regression… Đối tượng tạo ra ở bước này là IEstimator

Bước 3: Tiến hành train mô hình bằng cách gọi phương thức Fit() của IEstimator kết

quả của phương thức Fit() sẽ trả về một mô hình có kiểu ITransformer Dữ liệu train là lấy Tập huấn luyện ở bước 1

Bước 4: Sau khi training model chưa có sử dụng ngay (thông thường), vì thường

machine learning gặp vấn đề nó sẽ có kết quả dự đoán khác với thực tế Vấn đề là sự chênh lệch này có chấp nhận được hay không, có tiếp tục sử dụng và tiếp tục cải tiến mẫu mã hay không Khi mô hình huấn luyện xong, chúng ta cần đánh giá chất lượng của mô hình này

Bước 5: Sau khi đã đánh giá mô hình chất lượng ở bước 4 rồi thì lưu lại để lần sau

không phải chuẩn bị lại dữ liệu và train lại File mô hình được lưu mặc định có đuôi zip

Bước 6: Load mô hình đã được lưu ở bước 5 Sau khi tải nó sẽ mô hình hóa ngược lại

đối tượng Itransformer Ta gọi hàm Load() để tải mô hình

Bước 7: là gọi hàm CreatePredictionEngine().Predict() để sử dụng mô hình nhằm tìm

ra kết quả dự báo của chương trình

3.3 Gợi ý sản phẩm

3.3.1 Thuật toán Matrix Factorization

Matrix Factorization là một hướng tiếp cận khác của Collaborative Filtering, nghĩa là gợi ý bằng "kỹ thuật phân rã ma trận"

Kỹ thuật phân rã ma trận là phương pháp chia một ma trận lớn X thành hai ma trận có kích thước nhỏ hơn là W và H, sao cho ta có thể xây dựng lại X từ hai ma trận nhỏ hơn này càng chính xác càng tốt, nghĩa là X ~ WHT

Trang 32

Báo cáo đồ án 2 Ứng dụng shop bán hàng

Hình 3.3-1 Kỹ thuật phân rã ma trận

Có thể hiểu rằng, ý tưởng chính của Matrix Factorization là đặt items và users vào trong cùng một không gian thuộc tính ẩn Trong đó, W ∈ R|U|∗K là một ma trận mà mỗi dòng u là một vector bao gồm K nhân tố tiềm ẩn (latent factors) mô tả user u và H

∈ R∣I∣∗K là một ma trận mà mỗi dòng i là một vector bao gồm K nhân tố tiềm ẩn mô tả cho item i

Áp dụng phương pháp này vào bài toán gợi ý, chúng ta có x là một vector của item product Mục tiêu của chúng ta là tìm một vector w tương ứng với mỗi user sao cho ratings đã biết của user đó cho item (y) xấp xỉ với: y ≈ xw

Mở rộng với Y là utility matrix, giả sử đã được điền hết giá trị, ta có:

Hình 3.3-2 Kỹ thuật phân rã ma trận

với M, N lần lượt là số users và số items Chúng ta sẽ cố gắng xấp xỉ utility matrix Y

∈ RM∗N bằng tích của hai ma trận con là X ∈ RM∗K và W ∈ RK∗N

Trong đó, K được chọn thường nhỏ hơn rất nhiều so với M và N, và cả hai ma trận X

và W đều phải có bậc (rank) không được vượt quá K

Trang 33

Hình 3.3-3 Kỹ thuật phân rã ma trận

3.3.2 Ưu điểm

Giảm thời gian tính toán trong khi đào tạo: Thuật toán đào tạo của bạn sẽ nhanh hơn

và dễ dàng hơn để tìm hiểu các thông tin ở dạng nhỏ gọn

Giảm kích thước: Trong khi xử lý các bộ dữ liệu lớn, các kỹ thuật chuyển đổi khác nhau có thể dẫn đến các bộ dữ liệu được thiết kế theo tính năng khác nhau với số chiều lớn Trước tiên, có thể giảm kích thước của từng kỹ thuật và sau đó ghép các bộ

dữ liệu thành một bộ dữ liệu nhỏ hơn để đào tạo

Mô hình có thể giúp người dùng khám phá những sở thích mới: Hệ thống ML có thể không biết người dùng quan tâm đến một mặt hàng nhất định, nhưng mô hình vẫn có thể đề xuất mặt hàng đó vì những người dùng tương tự quan tâm đến mặt hàng đó

3.3.3 Nhược điểm

Ma trận không thể xử lý các mặt hàng mới, ví dụ: nếu một sản phẩm mới được thêm vào ma trận, nó có thể hạn chế tương tác của người dùng và do đó, sẽ hiếm khi xuất hiện dưới dạng đề xuất

Đầu ra của đề xuất có thể bị sai lệch, dựa trên mức độ phổ biến, nghĩa là nếu phần lớn tương tác của người dùng hướng tới một sản phẩm cụ thể, thì đề xuất sẽ chỉ tập trung vào sản phẩm phổ biến đó

Trang 34

Báo cáo đồ án 2 Ứng dụng shop bán hàng

3.3.4 Model

Có ba cột: UserId, ProductId, Rating

Trong học máy, các cột được sử dụng để đưa ra dự đoán được gọi là Feature và cột có giá trị dự đoán được trả về được gọi là Label

Chúng ta muốn dự đoán xếp hạng sản phẩm, vậy cột Rating là Label Hai cột khác, userId, productId đều là các Feature được sử dụng để dự đoán Nhãn

Hình 3.3-4 Model gợi ý sản phẩm

3.4 Dự báo doanh thu

3.4.1 Thuật toán Singular Spectrum Analysis (SSA)

SSA hoạt động bằng cách phân tách chuỗi thời gian thành một tập hợp các thành phần chính Các thành phần này có thể được hiểu là các phần của tín hiệu tương ứng với xu hướng, nhiễu, tính thời vụ và nhiều yếu tố khác Sau đó, các thành phần này được xây dựng lại và sử dụng để dự báo các giá trị trong tương lai SSA đã tỏ ra rất thành công

và đã trở thành một công cụ tiêu chuẩn trong phân tích chuỗi thời gian khí hậu, khí tượng và địa vật lý;

Trang 35

3.4.2 Model

Hình 3.4-1 Model dự báo doanh thu

ModelInput chứa các cột sau:

● Date: Ngày quan sát

● Year: Năm quan sát được mã hóa

● Totals: Tổng doanh thu cho ngày hôm đó

Lớp ModelOutput chứa các cột sau:

● ForecastedSales: Các giá trị dự đoán cho khoảng thời gian dự báo

● LowerBoundSales: Các giá trị tối thiểu được dự đoán cho giai đoạn dự báo

● UpperBoundSales: Các giá trị tối đa được dự đoán cho khoảng thời gian dự báo

Chương 4: THIẾT KẾ HỆ THỐNG

4.1 Kiến trúc hệ thống: Mô hình MVC

Model: Lưu trữ tất cả dữ liệu của ứng dụng Bộ phận này là cầu nối giữa cơ sở dữ liệu quản lý cả nhân và trình bày giao diện người dùng Cho phép người dùng có thể nhập

và xuất đến các cơ sở dữ liệu lần lượt theo quyền của họ khi cần thiết và dữ liệu sẽ

được lưu dữ trên database

View: giao diện người dùng, nơi người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các công thức truy vấn và ghi lại hoạt động của người dùng để tương tác với Controller

Controller: xử lý yêu cầu từ người dùng thông qua View Từ đó, Controller gửi dữ liệu hợp lý đến người dùng bằng các kết nối đến Model và trưng bày nó trên View cho người dùng

Trang 36

Báo cáo đồ án 2 Ứng dụng shop bán hàng

Hình 4.1-1 Sơ đồ mô hình MVC

Ngày đăng: 01/02/2023, 21:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] "Stack Overflow," Stack Overflow, [Online]. Available: https://stackoverflow.com/. [Accessed 27 December 2022] Sách, tạp chí
Tiêu đề: Stack Overflow
[3] Microsoft, "ML.Net Microsoft," Microsoft, [Online]. Available: https://learn.microsoft.com/vi-vn/dotnet/machine-learning/. [Accessed 1 October 2022] Sách, tạp chí
Tiêu đề: ML.Net Microsoft
[4] "Youtube," Funda of Web IT, 20 June 2021. [Online]. Available: https://www.youtube.com/watch?v=GL48t3lY-tI&list=PLRheCL1cXHrtT6rOSlab8VzMKBlfL-IEA&index=1&ab_channel=FundaOfWebIT. [Accessed 1 October 2022] Sách, tạp chí
Tiêu đề: Youtube
[5] "Start Bootstrap," [Online]. Available: https://startbootstrap.com/. [Accessed 01 October 2022] Sách, tạp chí
Tiêu đề: Start Bootstrap
[6] "Viblo," [Online]. Available: https://viblo.asia/newest. [Accessed 1 October 2022] Sách, tạp chí
Tiêu đề: Viblo
[1] A. Zhigljavsky. [Online]. Available: https://ssa.cf.ac.uk/zhigljavsky/pdfs/SSA/SSA_encyclopedia.pdf.[Accessed 27 December 2022] Link
w