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

(Đồ án tốt nghiệp) xây dựng website bán hàng thời trang sử dụng công nghệ ASP net core

189 17 0

Đ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

Định dạng
Số trang 189
Dung lượng 4,33 MB

Nội dung

thì trang web còn hỗ trợ khách hàng tính năng thêmsản phẩm yêu thích, tính năng trò chuyện trực tuyến để giải đáp các thắc mắc về sảnphẩm và phương thức thanh toán trực tuyến phổ biến

Trang 1

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

XÂY DỰNG WEBSITE BÁN HÀNG THỜI TRANG

SỬ DỤNG CÔNG NGHỆ ASP.NET CORE

GVHD:NGUYỄN MINH ĐẠO SVTH:NGÔ VĂN TÚ

MSSV:16110255 SVTH:PHẠM XUÂN KHIÊM MSSV:16110120

SKL007075

Trang 2

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG WEBSITE BÁN HÀNG THỜI TRANG SỬ

DỤNG CÔNG NGHỆ ASP.NET CORE

Ngành : CÔNG NGHỆ THÔNG TIN

GVHD : THS NGUYỄN MINH ĐẠO

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

Trang 3

*** Tp Hồ Chí Minh, ngày 01 tháng 07 năm 2020

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ và tên sinh viên: Ngô Văn Tú

Họ và tên sinh viên: Phạm Xuân Khiêm

Ngành: Công Nghệ Thông Tin

Giảng viên hướng dẫn: Nguyễn Minh Đạo

Ngày nhận đề tài: 16/02/2020

MSSV: 16110255MSSV: 16110120Lớp: 16110CLST216110CLST4ĐT: 090 398 2082

Ngày nộp đề tài: 01/07/2020

1 Tên đề tài: Xây dựng website bán hàng thời trang sử dụng công nghệ ASP.NET Core

2 Các số liệu, tài liệu ban đầu: sách và link các trang web trong phần tài liệu tham khảo

3 Nội dung thực hiện đề tài:

- Phát triển thêm các tính năng cơ bản cần thiết khác cho hệ thống website

- Nghiên cứu các nghiệp vụ để thống kê các số liệu (Dashboard)

- Tìm hiểu cách tích hợp thanh toán trực tuyến Paypal

- Tìm hiểu công nghệ ASP.NET SignalR để xây dựng tính năng chat (real-time)

- Tìm hiểu Recommendation System để tích hợp vào hệ thống website

4 Sản phẩm: website bán hàng thời trang

TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN

Nguyễn Đăng Quang Nguyễn Minh Đạo

Trang 4

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 Sinh viên: Ngô Văn Tú

Họ và tên Sinh viên: Phạm Xuân Khiêm

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

MSSV: 16110255 MSSV: 16110120

Tên đề tài: Xây dựng website bán hàng thời trang sử dụng công nghệ ASP.NET Core

Họ và tên Giảng viên hướng dẫn: Nguyễn Minh Đạo

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thưc hiện:

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: (Bằng chữ: )

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

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

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

Trang 5

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 Sinh viên: Ngô Văn Tú

Họ và tên Sinh viên: Phạm Xuân Khiêm

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

MSSV: 16110255 MSSV: 16110120

Tên đề tài: Xây dựng website bán hàng thời trang sử dụng công nghệ ASP.NET Core

Họ và tên Giảng viên phản biện: Lương Vĩ Minh

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thưc hiện:

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: (Bằng chữ: )

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

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

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

Trang 6

Đầu tiên, nhóm chúng em trong học kỳ này gửi lời cảm ơn chân thành nhất đến KhoaĐào tạo Chất lượng cao Khoa đã tạo điều kiện tốt nhất để các bạn sinh viên hoàn thành

đồ án tốt nghiệp, đặc biệt trong học kỳ này, sinh viên toàn trường đã mất một khoảngthời gian rất dài khoảng ba tháng để nghỉ dịch COVID-19 Do đó, việc lên lịch thờigian mới cho các kế hoạch trước đó cũng là một vấn đề khó khăn đối với khoa nhưngkhoa đã có những điều chỉnh hợp lý, tạo thời gian tốt để các bạn sinh viên hoàn thànhkịp tiến độ đồ án một cách tốt nhất Chúng em xin cảm ơn khoa rất nhiều

Và chúng em cũng gửi lời cảm ơn các thầy cô bộ môn Trong suốt những năm học qua,các thầy cô đã truyền đạt rất nhiều kiến thức hay, bổ ích, giúp nhóm vận dụng được rấtnhiều trong đồ án tốt nghiệp này và đặc biệt là hành trang bước vào đời khi ra trường

Cuối cùng, chúng em xin gửi lời cảm ơn sâu sắc đển thầy Nguyễn Minh Đạo Trướchết, cảm ơn thầy đã nhận và hướng dẫn nhóm trong đồ án tốt nghiệp này Lúc nhómnhận đề tài từ thầy thì cũng là lúc mà cả đất nước đang chống dịch COVID-19, việcgặp gỡ trao đổi trực tiếp gần như là không thể, thay vào đó nhóm và thầy phải trao đổiqua mạng, làm việc online, sau này khi có thông báo được đến trường lại thì nhóm vàthầy mới có thể gặp nhau nhiều hơn Nhóm biết thầy khá bận, ngoài việc đi dạy, thầycòn làm việc cho trung tâm phần mềm của trường nhưng mỗi lần chúng em có khókhăn, thắc mắc trong quá trình quá thực hiện đồ án cần liên hệ với thầy, thầy luôn sẵnsàng gặp gỡ trao đổi Thầy giải đáp các thắc mắc tận tình, đưa ra các hướng giải quyếthợp lý, đề xuất các phương án, tính năng mới cho đồ án phù hợp với nhu cầu ngườidùng thực tế Những đóng góp ý kiến, sự hướng dẫn của thầy đã giúp nhóm cải thiệnchất lượng đồ án, đảm bảo tiến độ và hoàn thành đồ án tốt nhất có thể Một lần nữa,chúng em cảm ơn thầy rất nhiều và chúc thầy mạnh khỏe, giữ vững ngọn lửa nhiệthuyết, truyền đạt những kiến thức mới, hay và bổ ích đến cho các bạn sinh viên

Sự thiếu sót trong đồ án là điều khó tránh khỏi, rất mong nhận được những đóng góp ýkiến, phản hồi từ thầy cô và các bạn

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

Nhóm sinh viên

Ngô Văn Tú - Phạm Xuân Khiêm

Trang 7

Đây là một đề tài được phát triển từ tiểu luận chuyên ngành của nhóm Các vấn đềnghiên cứu, khảo sát hiện trạng từ các trang web lớn đang hoạt động ít nhiều trong kỳkhóa luận này đã được nhóm giải quyết Việc khảo sát hiện trạng các trang web lớngiúp nhóm bắt kịp xu hướng thiết kế giao diện, từ gam màu cho đến các chức năng.

Mục tiêu phát triển đề tài là hoàn thiện trang web ở mức nâng cao, có thể chưa hoànthiện để sử dụng trên thị trường Củng cố lại các chức năng cơ bản đã làm, ngoài cácchức năng cơ bản như đăng nhập, đăng ký, thêm vào giỏ, thanh toán bắt buộc phải cócho một trang web thương mại thì cần phát triển thêm cái tính năng nâng cao như tínhnăng Chat trực tuyến, thanh toán trực tuyến và quan trọng hơn là hệ thống gợi ý(recommendation systems) giúp tăng trải nghiệm cho người dùng Xây dựng cácmodule quản lý tiện lợi, nhanh chóng và chi tiết rõ ràng

Kết quả đạt được của nhóm khá tốt, hoàn thành tương đối được các mục tiêu đề ra,

có các tính năng chưa hoàn thiện hết mức nhưng vẫn được hơn 95% Ứng dụng đãđược triển khai ra môi trường thực tế với kết quả 93% so với chạy môi trường local

Trang 8

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i

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

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

LỜI CẢM ƠN iv

LỜI MỞ ĐẦU v

MỤC LỤC vi

DANH SÁCH HÌNH ẢNH xi

DANH SÁCH BẢNG BIỂU xiv

Chương 1: TỔNG QUAN 1

1.1 Khảo sát hiện trạng 1

1.2 Giới thiệu đề tài 2

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

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

2.1 Công nghệ ASP.NET Core 6

2.1.1 Công nghệ ASP.NET Core là gì? 6

2.1.2 So sánh sự khác nhau giữa công nghệ ASP.NET và ASP.NET Core 6

2.1.3 Ưu, nhược điểm của công nghệ ASP.NET Core 6

2.2 Công nghệ ASP.NET Core SignalR 7

2.3 Mô hình MVC 8

2.4 Hệ thống gợi ý (Recommendation Systems) 9

2.4.1 Hệ thống gợi ý dựa trên nội dung sản phẩm (Content-based Recommender Systems) 9

2.4.2 Hệ thống gợi ý dựa trên người dùng – lọc cộng tác (Collaborative filtering recommender system) 11

Chương 3: XÁC ĐỊNH YÊU CẦU 16

3.1 Yêu cầu người dùng 16

3.2 Yêu cầu hệ thống 17

3.2.1 Các tác nhân 17

Trang 9

3.2.2.1 Mô tả các chức năng chính 22

3.2.2.1.1 Thanh toán 22

3.2.2.1.2 Trò chuyện trực tuyến 23

3.2.2.1.3 Quản lý đơn hàng 24

3.2.2.1.4 Trình quản lý hội thoại 25

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

4.1 Kiến trúc hệ thống 26

4.2 Lược đồ lớp 26

4.2.1 Database 26

4.2.1.1 Enum 27

4.2.1.2 Interface 27

4.2.1.3 Entity 28

4.2.2 DB Context 29

4.2.3 Repository 30

4.2.4 Services 31

4.2.4.1 ViewModel 31

4.2.4.2 Interface 32

4.2.4.3 Service 33

4.2.4.4 Cấu hình cho AutoMapper 34

4.2.5 Presentation 34

4.2.5.1 ViewModel 34

4.2.5.2 Web application 35

4.2.5.3 Web API 36

4.3 Lược đồ tuần tự 37

4.3.1 Lược đồ tuần tự chức năng đánh giá sản phẩm 37

4.3.2 Lược đồ tuần tự chức năng thêm sản phẩm yêu thích 38

4.3.3 Lược đồ tuần tự chức năng huấn luyện hệ thống gợi ý sản phẩm 39

Trang 10

4.4.1 Mô hình quan hệ thực thể (ERD) 40

4.4.2 Mô hình vật lý 41

4.5 Thiết kế giao diện 42

4.5.1 Kiến trúc tổng quan của giao diện 42

4.5.1.1 Luồng đường đi các màn hình phía khách (chưa đăng nhập) 42

4.5.1.2 Luồng đường đi màn hình phía người dùng (đã đăng nhập) 45

4.5.1.3 Luồng đường đi màn hình phía quản trị viên/nhân viên 47

4.5.2 Đặc tả chi tiết giao diện từng màn hình 49

4.5.2.1 Màn hình trang chủ 49

4.5.2.2 Màn hình đặt lại mật khẩu 52

4.5.2.3 Màn hình cập nhật mật khẩu mới 53

4.5.2.4 Màn hình chi tiết sản phẩm 54

4.5.2.5 Màn hình thanh toán 58

4.5.2.6 Màn hình liên hệ 60

4.5.2.7 Màn hình giới thiệu 61

4.5.2.8 Màn hình thông tin tài khoản 62

4.5.2.9 Màn hình đổi mật khẩu 64

4.5.2.10 Màn hình lịch sử đơn hàng 65

4.5.2.11 Màn hình chi tiết đơn hàng 66

4.5.2.12 Màn hình sản phẩm yêu thích 67

4.5.2.13 Màn hình sản phẩm đã xem 69

4.5.2.14 Modal hội thoại trực tuyến chưa đăng nhập 71

4.5.2.15 Modal hội thoại trực tuyến đã đăng nhập 72

4.5.2.16 Modal quản lý tài khoản cá nhân 73

4.5.2.17 Màn hình Dashboard 74

4.5.2.18 Màn hình quản lý các đánh giá 75

4.5.2.19 Màn hình trình quản lý các cuộc hội thoại trực tuyến 76

Trang 11

5.2 Hiện thực chức năng thanh toán PayPal 78

5.2.1 Tạo một tài khoản PayPal Sandbox 78

5.2.2 Xây dựng các lớp lưu giá trị cấu hình thanh toán PayPal 79

5.2.3 Cấu hình thanh toán PayPal cho hệ thống 79

5.2.3 Xây dựng lớp xử lý dữ liệu 80

5.2.4 Kết quả 80

5.3 Áp dụng hệ thống gợi ý 81

5.3.1 Tìm hiểu cơ sở lý thuyết (xem mục 2.4) 82

5.3.2 Tìm hiểu và xây dựng dự án mẫu về hệ thống gợi ý 82

5.3.2.1 Tập dữ liệu mẫu 82

5.3.2.2 Cách tiếp cận User-based 82

5.3.2.3 Cách tiếp cận Item-based 84

5.3.2.4 Kết quả 85

5.3.3 Áp dụng hệ thống gợi ý vào đồ án 85

5.3.3.1 Dữ liệu đầu vào 85

5.3.3.2 Xây dựng các phương thức để lấy gợi ý 86

5.3.3.3 Kết quả 86

5.4 Tìm hiểu công nghệ ASP.NET SignalR và xây dựng chức năng trò truyện thời gian thực 86

5.4.1 Tìm hiểu công nghệ SignalR (xem mục 2.2) 86

5.4.2 Xây dựng chức năng trò chuyện thời gian thực 86

5.4.2.1 Tạo cơ sở dữ liệu 87

5.4.2.2 Tạo phần giao diện cho người dùng 87

5.4.2.3 Tạo trung tâm xử lý trò chuyện (ChatHub) cho hệ thống 88

5.4.2.4 Tạo phương thức để truy xuất và lưu trữ vào cơ sở dữ liệu 88

5.4.3 Kết quả 88

5.5 Triển khai ứng dụng trong môi trường thực tế 89

Trang 12

6.1.1 Trường hợp thử nghiệm chức năng Đánh giá sản phẩm 94

6.1.2 Trường hợp thử nghiệm chức năng Sản phẩm đã xem 97

6.1.3 Trường hợp thử nghiệm chức năng Thêm sản phẩm yêu thích 97

6.1.4 Trường hợp thử nghiệm chức năng Hội thoại trực tuyến 98

6.1.5 Trường hợp thử nghiệm chức năng Thanh toán 101

6.2 Kết quả thực nghiệm ứng dụng ra môi trường thực tế 102

Chương 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 104

7.1 Kết quả 104

7.2 Khó khăn 104

7.3 Hướng phát triển 104

7.4 Mã nguồn 105

TÀI LIỆU THAM KHẢO 106

Trang 13

Hình 2 1: Mô hình MVC 8

Hình 2 2: Ví dụ bài toán về hệ thống gợi ý dựa trên nội dung 10

Hình 2 3: Cách tiếp cận phương pháp Collaborative Filtering 12

Hình 2 4: Ví dụ bài toán khác của hướng tiếp cận User-based 13

Hình 2 5: Ví dụ bài toán khác của hướng tiếp cận Item-based 15

-Hình 3 1: Lược đồ chức năng 19

-Hình 4 1: Kiến trúc hệ thống 26

Hình 4 2: Database 26

Hình 4 3: Enum 27

Hình 4 4: Interface (Database) 27

Hình 4 5: Entity 28

Hình 4 6: DB Context 29

Hình 4 7: Repository 30

Hình 4 8: Services 31

Hình 4 9: View Model (Services) 31

Hình 4 10: Interface (Services) 32

Hình 4 11: Service (Services) 33

Hình 4 12: Cấu hình AutoMapper 34

Hình 4 13: ViewModel(Presentation) 34

Hình 4 14: Controller (client) 35

Hình 4 15: Controller (Admin) 36

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

Hình 4 17: Lược đồ tuần tự chức năg thêm sản phẩm yêu thích 38

Hình 4 18: Lược đồ tuần tự chức năng huấn luyện hệ thống gợi ý sản phẩm 39

Hình 4 19: Lược đồ tuần tự chức năng lấy sản phẩm từ hệ thống gợi ý sản phẩm 39

Hình 4 20: Mô hình quan hệ (ERD) 40

Hình 4 21: Mô hình vật lý 41

Hình 4 22: Luồng đường đi các màn hình phía khách 42

Hình 4 23: Luồng đường đi các màn hình phía người dùng 45

Hình 4 24: Luồng đường đi các màn hình phía quản trị viên/nhân viên 47

Hình 4 25: Giao diện màn hình trang chủ_1 49

Hình 4 26: Giao diện màn hình trang chủ_2 50

Hình 4 27: Giao diện màn hình trang chủ_3 50

Hình 4 28: Giao diện màn hình đặt lại mật khẩu 52

Trang 14

Hình 4 31: Giao diện màn hình chi tiết sản phẩm_2 54

Hình 4 32: Giao diện màn hình chi tiết sản phẩm_3 55

Hình 4 33: Giao diện màn hình thanh toán_1 58

Hình 4 34: Đặc tả chi tiết giao diện màn hình thanh toán_2 58

Hình 4 35: Giao diện màn hình liên hệ 60

Hình 4 36: Giao diện màn hình giới thiệu 61

Hình 4 37: Giao diện màn hình thông tin tài khoản 62

Hình 4 38: Giao diện màn hình đổi mật khẩu 64

Hình 4 39: Giao diện màn hình lịch sử đơn hàng 65

Hình 4 40: Giao diện màn hình chi tiết đơn hàng 66

Hình 4 41: Giao diện màn hình sản phẩm yêu thích 67

Hình 4 42: Giao diện màn hình sản phẩm đã xem 69

Hình 4 43: Giao diện modal hội thoại trực tuyến chưa đăng nhập 71

Hình 4 44: Giao diện modal hội thoại trực tuyến đã đăng nhập 72

Hình 4 45: Giao diện Modal quản lý tài khoản cá nhân 73

Hình 4 46: Giao diện màn hình dashboard 74

Hình 4 47: Giao diện màn hình quản lý các đánh giá 75

Hình 4 48: Giao diện màn hình trình quản lý các cuộc hội thoại 76

-Hình 5 1: Tài khoản PayPal Sandbox 78

Hình 5 2: Thông tin của ứng dụng trong môi trường phát triển PayPal 79

Hình 5 3: Cấu hình các giá trị cho phương thức thanh toán PayPal 80

Hình 5 4: Đặt hàng bên giao diện 80

Hình 5 5: Thông tin dữ liệu thanh toán bên PayPal 81

Hình 5 6: Một đoạn dữ liệu của tập dữ liệu thử nghiệm 82

Hình 5 7: Bảng dữ liệu sau khi train dữ liệu (User-based) 83

Hình 5 8: Công thức hệ số tương quan Pearson 83

Hình 5 9: Bảng dữ liệu sau khi train dữ liệu (Item-based) 84

Hình 5 10: Kết quả gợi ý của 2 cách tiếp cận 85

Hình 5 11: Kết quả đánh giá giải thuật 85

Hình 5 12: Kết quả hệ thống gợi ý trên giao diện trang web 86

Hình 5 13: Giao diện trò chuyện 87

Hình 5 14: Kết quả xây dựng tính năng trò chuyện thời gian thực 89

Hình 5 15: Tạo cơ sở dữ liệu trên SmarterASP.NET 90

Hình 5 16: Chuỗi kết nối (connection string) 90

Trang 15

Hình 5 19: Giao diện cấu hình cơ sở dữ liệu 92

Hình 5 20: Trang web sau khi publish 92

Hình 5 21: Giao thức HTTP không an toàn 93

Hình 5 22: Giao thức HTTPS an toàn 93

-Hình 6 1: URL của ứng dụng khi được deploy 102

Hình 6 2: Chất lượng SSL của website 103

Trang 16

Bảng 2 1: So sánh sự khác nhau giữa ASP.NET Core và ASP.NET 6

Bảng 2 2: ASP.NET Core SignalR hỗ trợ JavaScript client 8

-Bảng 3 1: Yêu cầu người dùng 16

Bảng 3 2: Mô tả các tác nhân 17

Bảng 3 3: Chức năng của từng tác nhân 18

Bảng 3 4: Chi tiết lược đồ chức năng 20

Bảng 3 5: Mô tả chức năng thanh toán 22

Bảng 3 6: Mô tả chức năng trò chuyện trực tuyến 23

Bảng 3 7: Mô tả chức năng quản lý đơn hàng 24

Bảng 3 8: Mô tả chức năng trình quản lý hội thoại 25

-Bảng 4 1: Mô tả các màn hình phía Khách 43

Bảng 4 2: Mô tả các màn hình phía người dùng 45

Bảng 4 3: Mô tả các màn hình phía quản trị viên/nhân viên 47

Bảng 4 8: Đặc tả chi tiết giao diện màn hình trang chủ 51

Bảng 4 14: Đặc tả chi tiết giao diện màn hình đặt lại mật khẩu 52

Bảng 4 16: Đặc tả chi tiết giao diện màn hình cập nhật khẩu mới 53

Bảng 4 19: Đặc tả chi tiết giao diện màn hình chi tiết sản phẩm 55

Bảng 4 22: Đặc tả chi tiết giao diện màn hình thanh toán 58

Bảng 4 24: Đặc tả chi tiết giao diện màn hình liên hệ 60

Bảng 4 25: Đặc tả chi tiết giao diện màn hình liên hệ 62

Bảng 4 27: Đặc tả chi tiết giao diện màn hình thông tin tài khoản 62

Bảng 4 28: Đặc tả chi tiết giao diện màn hình đổi mật khẩu 64

Bảng 4 29: Đặc tả chi tiết giao diện màn hình lịch sử đơn hàng 65

Bảng 4 30: Đặc tả chi tiết giao diện màn hình chi tiết đơn hàng 66

Bảng 4 31: Đặc tả chi tiết giao diện màn hình sản phẩm yêu thích 68

Bảng 4 32: Đặc tả chi tiết giao diện màn hình sản phẩm đã xem 69

Bảng 4 33: Đặc tả chi tiết giao diện modal hội thoại trực tuyến chưa đăng nhập 71

Bảng 4 34: Đặc tả chi tiết giao diện modal hội thoại trực tuyến đã đăng nhập 72

Bảng 4 38: Đặc tả chi tiết giao diện modal quản lý tài khoản cá nhân 73

Bảng 4 39: Đặc tả chi tiết giao diện màn hình dashboard 74

Bảng 4 55: Đặc tả chi tiết giao diện màn hình quản lý các đánh giá 75

Bảng 4 56: Đặc tả chi tiết giao diện màn hình trình quản lý các cuộc hội thoại 76

-Bảng 6 1: Trường hợp thử nghiệm chức năng đánh giá sản phẩm 94

Trang 17

Bảng 6 4: Trường hợp thử nghiệm chức năng Hội thoại trực tuyến 98 Bảng 6 5: Trường hợp thử nghiệm chức năng Thanh toán 101

Trang 18

Chương 1: TỔNG QUAN

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

Cùng với sự phát triển mạnh mẽ của hạ tầng công nghệ thông tin và Internet, hiệnnay thương mại điện tử đang ở giai đoạn bùng nổ, rất nhiều các trang web thương mạiđiện tử của các doanh nghiệp lớn (Amazon, Alibaba,…) trên thế giới được ra đời.Trong đó thương mại điện tử đã giúp nhiều doanh nghiệp về marketing, đặc biệt làmarketing ra thị trường quốc tế, cắt giảm nhiều chi phí (chi phí nhân lực, chi phí bánhàng, chi phí liên lạc, chi phí mặt bằng,…) bán hàng qua mạng, liên kết các nhà cungứng, hỗ trợ khách hàng từ xa Do vậy, các doanh nghiệp không ngừng ứng dụng thươngmại điện tử nhằm tạo ra cho mình lợi thế riêng, đồng thời mở rộng mạng lưới kinhdoanh, phân phối sản phẩm cũng như nâng cao chất lượng dịch vụ Trong đó hiện naywebsite thực sự đã trở thành một kênh kinh doanh mới, hiệu quả và rất kinh tế cho hầuhết các doanh nghiệp Việt Nam Website giúp doanh nghiệp không những quảng báđược hình ảnh doanh nghiệp, sản phẩm với chi phí thấp và tiện lợi mà còn mở rộng hơnnữa cơ hội tìm kiếm khách hàng, nhà cung cấp không chỉ trong nước mà còn trên phạm

vi toàn cầu Để có được một website thương mại điện tử hiện đại có nhiều chức năng,các doanh nghiệp cần nghiên cứu, phân tích và thiết kế các module chức năng cơ bảnnhư cung ứng hàng hóa, quản trị khách hàng, thanh toán, bảo mật,…kết hợp chặt chẽvới việc ứng dụng các tiêu chuẩn công nghệ tiên tiến, phù hợp Do đó, việc nghiên cứukhảo sát các mô hình thiết kế xây dựng mô hình website thương mại điện tử với đầy đủcác module chức năng cơ bản nhằm giúp các doanh nghiệp tối đa hóa hoạt động sảnxuất kinh doanh là việc rất cần thiết

Cùng trở lại với đề tài, để xây dựng một hệ thống trang web thương mại điện tửkhi mà trên thế giới đã có rất nhiều trang web lớn thì việc khảo sát hiện trạng là rấtquan trọng Khảo sát hiện trạng giúp nhóm thực hiện báo cáo nắm được các chức năngcần phải xây dựng từ những chức năng cơ bản bắt buộc cho đến các chức năng nângcao khác Cùng với đó là nắm rõ nghiệp vụ của các chức năng, nắm được luồng xử lý,cách hoạt động của từng chức năng để từ đó áp dụng với hệ thống của mình Một yếu

tố cũng rất quan trọng khác đó là xây dựng giao diện, xây dựng giao diện cũng nên tuânthủ theo các nguyên tắc thiết kế để có được một giao diện đồng bộ, chạy tốt trên nhiềuứng dựng và đặc biệt là đem lại trải nghiệm tốt cho người dùng Ngoài ra, cần phảikhảo sát các trang web thương mại lớn trên thế giới để xem cách họ phối màu cho giaodiện, chọn màu chủ đạo cho trang web để áp dụng vào xây dựng hệ thống phù hợp với

xu hướng hiện tại Nhóm thực hiện báo cáo tham khảo rất nhiều từ hệ thống trang webcủa hai hãng thời trang thể thao nổi tiếng thế giới là Nike và Adidas

Trang 19

1.2 Giới thiệu đề tài

ATOM Store là tên được nhóm thực hiện báo cáo đặt cho hệ thống trang web Là

một trang web thương mại điện tử được xây dựng với mục đích đáp ứng nhu cầu muacác mặt hàng thời trang qua Internet Trang web sẽ là nơi mà các tín đồ thời trang cóthể đặt niềm tin, thỏa sức chọn lựa các trang phục để diện lên cơ thể mình một cáchhoàn hảo nhất Các mặt hàng sản phẩm đều được cung cấp thông tin chi tiết đầy đủcũng như các đánh giá của khách hàng về sản phẩm nhằm tạo nên một dịch vụ chấtlượng, tin cậy đến người dùng Ngoài các chức năng quen thuộc như thêm sản phẩmvào giỏ hàng, thanh toán tại nhà, thì trang web còn hỗ trợ khách hàng tính năng thêmsản phẩm yêu thích, tính năng trò chuyện trực tuyến để giải đáp các thắc mắc về sảnphẩm và phương thức thanh toán trực tuyến phổ biến PayPal nhanh chóng tiện lợi.Trang web còn tích hợp hệ thống gợi ý (recommendation systems), gợi ý cho ngườidùng các sản phẩm được nhiều người yêu thích, tăng trải nghiệm cho người dùng

Để xây dựng được thương hiệu trên các công cụ tìm kiếm thì viêc tối ưu hóa công

cụ tìm kiếm (SEO - Search Engine Optimization) cũng rất quan trọng Tuy nhiên, tronggiới hạn của đề tài này, nhóm thực hiện báo cáo sẽ không tìm hiểu chuyên sâu vào việctối ưu hóa công cụ tìm kiếm nhưng trong quá trình xây dựng hệ thống nhóm thực hiệnbáo cáo cũng để ý đến vấn đề này và có thực hiện việc tối ưu hóa đường dẫn (URL –Uniform Resource Locator) cho SEO ở các trang của hệ thống Tối ưu hóa URL choSEO là giúp cho URL của hệ thống được thân thiện với công cụ tìm kiếm, sử dụng các

từ khóa có liên quan đến nội dung trang web cũng sẽ giúp URL thân thiện với ngườidùng

Hệ thống trang web được xây dựng chỉ dùng để kinh doanh các mặt hàng thời trangchứ không thể sử dụng để kinh doanh các mặt hàng khác như kinh doanh đồ điện tử, đồdân dụng,… Bởi vì hệ thống trang web kinh doanh mặt hàng thời trang chúng ta đều có thểthấy được luôn có các thuộc tính là kích thước và màu sắc của sản phẩm Đặc biệt về kíchthước của sản phẩm thời trang giày dép thì sẽ có rất nhiều loại kích thước như kích thướctheo US, UK, EU, Nhật Bản, Trung Quốc, còn quần áo sẽ có kích thước theo số đo cácvòng trên cơ thể Các kích thước đó ở các mặt hàng khác sẽ không bao giờ có

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

a) Nắm được nghiệp vụ quản lý của các trang web đang hoạt động

Dựa vào khảo sát hiện trạng, có thể nắm được các nghiệp vụ quản lý như quản lý sảnphẩm, quản lý danh mục, quản lý đơn hàng,… để từ đó áp dụng trong việc xây dựngphần quản trị cho hệ thống Ngoài ra, nắm được các nghiệp vụ về chức năng cũng cực

kỳ quan trọng, hiểu được các luồng xử lý, cách hoạt động của từng chức năng của cáctrang web lớn sẽ giúp xây dựng một hệ thống tốt, các chức năng hoàn thiện và đảm bảo

về mặt trải nghiệm của người dùng

Trang 20

b) Vận dụng tốt công nghệ ASP.NET Core

ASP.NET Core là công nghệ chính được áp dụng trong việc xây dựng hệ thống.Công nghệ ASP.NET Core đã được tìm hiểu cơ bản trong lần thực hiện tiểu luậnchuyên ngành và cũng đã được áp dụng để xây dựng phần sườn của hệ thống hiện tại.Trong lần thực hiện khóa luận này, thì nhóm thực hiện báo cáo sẽ tìm hiểu chuyên sâuhơn, tìm hiểu thêm công nghệ ví dụ ASP.NET Core SignalR để xây dựng chức năngChat trực tuyến Đã có những khoảng thời gian tìm hiểu nhất định thì việc vận dụng tốtcông nghệ cũng là một yêu cầu, có thể không yêu cầu quá tốt nhưng cũng phải tươngđối thành thạo khi sử dụng công nghệ

c) Củng cố lại các chức năng đã thực hiện

Củng cố, sửa lỗi các chức năng thêm sản phẩm vào giỏ hàng (quản lý kích thước,màu và số lượng), quản lý giỏ hàng (số lượng sản phẩm), quản lý hình ảnh sản phẩm,quản lý số lượng sản phẩm, quản lý đơn hàng, cấp quyền cho từng vai trò người dùng ởphần quản trị đã được thực hiện trong lần thực hiện tiểu luận chuyên ngành

d) Cải thiện giao diện

Chỉnh sửa giao diện ở một số chỗ để tăng tính đẹp mắt, điều chỉnh responesive mộtvài chỗ bị lỗi khi chạy hệ thống trên các ứng dụng như di dộng

e) Phát triển thêm các tính năng cơ bản cần thiết khác cho hệ thống website

Xây dựng thêm các tính năng cơ bản như đặt lại mật khẩu (khi quên mật khẩu), quản

lý thông tin tài khoản, đổi mật khẩu, xem lịch sử đơn hàng, hủy đơn hàng, thêm sảnphẩm yêu thích, quản lý danh sách sản phẩm yêu, xem danh sách sản phẩm đã xem,đánh giá sản phẩm, đánh giá về website cho người dùng

f) Xây dựng tính năng chat trực tuyến (real-time)

Chức năng chat trực tuyến giữa khách hàng và quản trị viên của hệ thống là khá quantrọng Người dùng có thể gọi điện trực tiếp đến cửa hàng để hỏi đáp các vấn đề thắc mắc

về sản phẩm chẳng hạn Nhưng không phải khách hàng nào cũng đều muốn giải đáp thắcmắc bằng cách gọi điện trực tiếp Trừ cuộc gọi miễn phí, cuộc gọi có tính cước cũng làmột rào cản Ngại giao tiếp cũng là vấn đề, vì khi giao tiếp trực tiếp và giao tiếp trực tuyếnthông qua chức năng chat cũng sẽ có tâm lý khác nhau Gọi điện trực tiếp thì nhanh, gọnnhưng có thể quên sót nội dung, giao tiếp trực tuyến tâm lý sẽ thoải mái hơn và nhất thiếtphải trả lời ngay lập tức Việc xây dựng chức năng chat giúp người dùng thoải mái hơntrong việc giải đáp các thắc mắc về thông tin các mặt hàng đang quan tâm

Trang 21

Chức năng chat sẽ sử dụng công nghệ ASP.NET Core SignalR để xây dựng, côngnghệ sẽ giúp về mặt real-time cho chức năng, nội dung của cuộc hội thoại sẽ được hiểnthị ngay lập tức.

g) Tích hợp phương thức thanh toán trực tuyến PayPal

Thanh toán trực tuyến là nền tảng của hệ thống thương mại điện tử Phát triểnphương thức thanh toán trực tuyến sẽ hoàn thiện hóa thương mại điện tử theo đúngnghĩa là giao dịch hoàn toàn trên Internet Nhanh chóng, tiện lợi và tiết kiệm thời gian

Do đó, việc tích hợp phương thức thanh toán trực tuyến PayPal cho hệ thống là thựcsự cần thiết Nhóm thực hiện báo cáo sẽ sử dụng tài khoản PayPal Sandbox khi thanhtoán bằng phương thức PayPal

h) Tích hợp hệ thống gợi ý (Recommendation Systems) cho hệ thống trang web

Tích hợp hệ thống gợi ý cho hệ thống trang web sẽ giúp cho hệ thống hiện đại hơn,mang lại lợi ích cho khách hàng Sử dụng các dự liệu thu thập từ các người dùng để từ

đó đưa những gợi ý sản phẩm phù hợp với sở thích của người dùng sẽ nâng cao chấtlượng dịch vụ của hệ thống

Nhóm thực hiện báo cáo sẽ xây dựng hệ thống gợi ý dựa trên phương pháp lọc cộngtác (Collaborative filtering recommender systems), cụ thể hơn là hướng tiếp tiếp cậnuser-based, gợi ý dựa trên các người dùng có cùng sở thích

Xây dựng hệ thống gợi ý không phải là nội dung chính của toàn bộ đề tài, do đónhóm thực hiện báo cáo sẽ sử dụng thư viện sẵn có để xây dựng hệ thống gợi ý

i) Thống kê các số liệu liên quan hệ thống trang web (Dashboard)

Thống kê sẽ giúp chúng ta nhìn thấy được sự phát triển của hệ thống thông qua cáccon số

Nhóm thực hiện báo cáo sẽ thống kê các số liệu như tổng doanh thu, tổng lợi nhuận,tổng chi phí, tổng số sản phẩm đã bán, tổng số sản phẩm đã được đánh giá, tổng sốngười dùng có trong hệ thống và số người đã ghé thăm trang web Ngoài ra, còn có đồthị hiển thị lợi nhuận qua từng ngày của 7 ngày gần nhất

j) Triển khai ứng dụng trong môi trường thực tế

Triển khai ứng dụng trong môi trường thực tế tức là ứng dụng của chúng ta đã được đưa

ra thế giới bên ngoài, bắt đầu tiếp cận với nhiều người dùng thực tế Đối với việc triển khaitrong môi trường thực tế các ứng dụng được làm từ trường học sẽ có rất nhiều

Trang 22

vấn đề cần giải quyết, đặc biệt là vấn đề bảo mật, khả năng lưu trữ, sức chịu tải Vớikhả năng, trình độ thì không nhiều sinh viên có thể xử lý tốt các vấn đề này được.

Nhóm thực hiện báo cáo sẽ cố gắng triển khai ứng dụng trong môi trường thực tếmặc dù có thể chất lượng hoạt động của các chức năng sẽ không bằng khi hệ thốngchạy dưới local host

k) Cài đặt chứng chỉ SSL (Secure Sockets Layer)

Khi chúng ta đăng ký tên miền để sử dụng các dịch vụ website thì luôn có những lổhổng bảo mật cho hacker tấn công, SSL sẽ bảo vệ website và khách hàng SSL sẽ giúpbảo mật dữ liệu, nâng cao hình ảnh, thương hiệu uy tín của hệ thống Nếu websitekhông được xác thực và bảo mật sẽ luôn tiềm ẩn nguy cơ bị xâm nhập dữ liệu, dẫn đếnkhách hàng sẽ không tin tưởng sử dụng dịch vụ hệ thống

Trang 23

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

2.1 Công nghệ ASP.NET Core

2.1.1 Công nghệ ASP.NET Core là gì?

ASP.NET Core là một framework mới của Microsoft Mã nguồn mở và được tối ưuhóa cloud để phát triển các ứng dụng web chạy đa nền tảng Windows, Mac và Linux

Hàng triệu nhà phát triển sử dụng hoặc đã sử dụng ASP.NET 4.x để tạo các ứngdụng web ASP.NET Core là một thiết kế lại từ ASP.NET 4.x, bao gồm các thay đổikiến trúc để cho ra một module gọn gàng hơn

Ứng dụng ASP.NET Core có thể chạy trên NET Core hoặc trên phiên bản đầy đủcủa NET Framework Nó bao gồm các thành phần theo hướng module nhằm tối thiểutài nguyên và chi phí phát triển Có thể phát triển và chạy những ứng dụng ASP.NETCore đa nền tảng trên Windows, Mac và Linux

Đồng thời nó đã trở thành một mã nguồn mở Đây là một thay đổi rất lớn và quantrọng nhất của ASP.NET Core Điều mà trước đây khó có một lập trình viên nào có thểnghĩ đến Có lẽ đó cũng là một xu thế mà các ngôn ngữ lập trình hiện nay đang hướngtới

Các phiên bản đã và sắp phát hành 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0 (sắp ra mắt)

2.1.2 So sánh sự khác nhau giữa công nghệ ASP.NET và ASP.NET Core

Bảng 2 1: So sánh sự khác nhau giữa ASP.NET Core và ASP.NET

Chạy trên đa nền tảng Windows, macOS, Chỉ chạy trên nền tảng Windows

Linux

Hoàn toàn thiết kế mới Nền tảng đã có từ lâu

Phát triển với các công cụ Visual Studio, Phát triển với công cụ Visual Studio sửVisual Studio phiên bản macOS, Visual dụng C#, VB hoặc F#

Studio Code sử dụng C# hoặc F#

Hiệu năng tốt hơn ASP.NET 4.x Hiệu năng tốt

Chạy trên NET Core và NET Framework Chạy trên NET Framework

Nhỏ, nhẹ và module hóa System.web.dll cồng kềnh

Sử dụng NET Core runtime Sử dụng NET runtime

2.1.3 Ưu, nhược điểm của công nghệ ASP.NET Core

Ưu điểm

Những nền tảng cải tiến được từ ASP.NET Core:

Trang 24

+ Hợp nhất ASP.NET MVC và ASP.NET WebAPI.

+ Có thể host trên IIS hoặc tự host

+ Sử dụng trên đa nền tảng Windows, macOS và Linux

+ Chạy trên NET Core hoặc NET Framework

+ Dễ dàng tích hợp các framework frontend như Angular,…

+ Có khả năng lưu trữ trên Kestrel, IIS, Nginx, Apache, Docker

+ Hỗ trợ quản lý phiên bản

+ Mã nguồn mở

Nhược điểm + Số lượng thư viện còn hạn chế

2.2 Công nghệ ASP.NET Core SignalR

ASP.NET Core SignalR là một thư viện mã nguồn mở giúp đơn giản hoá việcthêm các chức năng web real-time cho ứng dụng Đó là khả năng Server đẩy những nộidung tới Client đã được kết nối một cách tức thì Nó khác với HTTP thông thường:Server đợi những yêu cầu từ Client và trả về nội dung tương ứng

SignalR có thể sử dụng trong bất kỳ chức năng web real-time nào Trong đó ứngdụng Chat là một ví dụ điển hình, như gửi tin nhắn cho tất cả mọi người được kết nốicùng một lúc (phòng trò chuyện), gửi tin nhắn từng người cụ thể Nội dung của cuộchội thoại khi trò chuyện sẽ được cập nhật ngay lập tức, giống như các tính năng tròchuyện của facebook, skype, zalo,… mà chúng ta thường hay sử dụng

Ngoài ra, ứng dụng SignalR trong việc quản lý cũng rất quan trọng Ví dụ khi xâydựng các module quản lý thì chúng ta thường sẽ hiển thị dữ liệu trên các bảng Và khibảng dữ liệu có những cập nhật, thay đổi mới thì dữ liệu trong bảng sẽ không thay đổingay lập để chúng ta thấy mà chúng ta phải làm mới lại trang để thấy được sự thay đổi

dữ liệu Do đó áp dụng SignalR để xây dựng các bảng thời gian thực (table real-time) làmột việc làm cần thiết

Trong các ứng dụng trò chơi thì chúng ta cũng dễ dàng nhìn thấy SignalR trong

đó Khi chúng ta chơi game thì chắc chắn là nó luôn có tính liên tục, ví dụ như game

“Đột kích” thì chẳng có thể mà chúng ta bắn 1 phát đạn 10, 20 giây sau thì viên đạnmới được bắn đi

Các nền tảng ASP.NET Core SignalR hỗ trợ

ASP.NET Core SignalR sẽ hỗ trợ bất kỳ nền tảng nào mà ASP.NET Core hỗ trợ

Trang 25

JavaScript client

Bảng 2 2: ASP.NET Core SignalR hỗ trợ JavaScript client

Microsoft Edge Phiên bản hiện tại trở lên

Mozilla Firefox Phiên bản hiện tại trở lên

Google Chrome; bao gồm cả Adroid Phiên bản hiện tại trở lên

Safari Phiên bản hiện tại trở lên

Microsoft Internet Explorer 11

.NET client

.NET client chạy trên mọi nền tảng ASP.NET Core hỗ trợ Ví dụ các nhà pháttriển Xamarin có thể sử dụng SignalR để xây dựng ứng dụng Android bằng phiên bảnXamarin.Android 8.4.0.1 trở lên, xây dựng ứng dụng iOS bằng phiên bản Xamarin.iOS11.14.0.4 trờ lên

Java client

Hỗ trợ Java 8 và các phiên bản mới hơn

Các nền tảng ASP.NET Core không hỗ trợ

C ++ client và Swift client là các nền tảng hiện nay không được hỗ trợ hoặc có thểkhông bao giờ được hỗ trợ

2.3 Mô hình MVC

Hình 2 1: Mô hình MVC

Trang 26

Trong lập trình web chia ra ba tầng như sau:

+ Presentation Layer (tầng 3): tầng này giúp hiển thị giao diện

+ Bussiness Logic Layer (tầng 2): tầng này chứa các hàm thực thi, giúp xử lý sự kiện ra trên Presentation Layer

+ Data Access Layer (tầng 1): tầng này chứa hàm kết nối với các hệ quản trị

cơ sở dữ liệu như SQL Server, MySQL, Orancle, …

MVC (Model – View - Controller) là một design partern đã tồn tại rất lâu trongngành công nghệ phần mềm Một ứng dụng viết theo mô hình MVC sẽ bao gồm 3thành phần tách biệt nhau đó là Model, View, Controller Giống như trong cấu trúcThree – Tier, mô hình MVC giúp tách biệt 3 tầng trong mô hình lập trình web, vì vậygiúp tối ưu ứng dụng, dễ dàng thêm mới và chỉnh sửa code hoặc giao diện

Model

+ Three – Tier thì trong đó gồm có 2 tầng Data Access Layer và tầng BusinessLogic Layer Hai tầng này là hai tầng tương đương với tầng Model trong mô hình MVC

View: là tầng giao diện, hiển thị dữ liệu được truy xuất từ tầng model Tầng

này tương đương với tầng Presentation Layer trong cấu trúc Three – Tier

Controller: đây là tầng giúp kết nối giữa tầng Model và tầng View trong mô

hình MVC, có nghĩa là nếu phía Client yêu cầu hiển thị dữ liệu thì Controllergọi giữ liệu từ Model và trả về cho View vì view tương tác trực tiếp với Client

Cơ chế hoạt động của mô hình MVC

- User gửi một yêu cầu tới server bằng cách truyền vào một URL trong browser

- Yêu cầu đó được gửi tới Controller đầu tiên, Controller sẽ xử lý yêu cầu,

nếu yêu cầu cần truy xuất dữ liệu thì Controller sẽ chuyển qua tầng Model

- Tại tầng Model, dữ liệu được truy xuất từ Database và sau đó truyền qua

View thông qua Controller

- Controller sẽ giúp dữ liệu được chuyển từ Model qua View

- View là tầng cuối cùng giao tiếp với User, mọi dữ liệu sẽ được hiển thị cho User thông qua tầng View

2.4 Hệ thống gợi ý (Recommendation Systems)

2.4.1 Hệ thống gợi ý dựa trên nội dung sản phẩm (Content-based Recommender

Systems)

Cụ thể dễ hiểu hơn đây là hệ thống gợi ý dựa trên hành vi của người dùng Nhưngvới tên gọi như vậy thì tất nhiên nó phụ thuộc vào thuộc tính của các sản phẩm Ví dụ

Trang 27

một người dùng thường rất hay xem phim võ thuật, chẳng hạn “Diệp Vấn”, vậy thì hệthống sẽ gợi ý các bộ phim có đặc tính là võ thuật, chẳng hạn “Lý Tiểu Long” Cáchtiếp cận này yêu cầu việc sắp xếp các sản phẩm vào từng nhóm hoặc đi tìm đặc tính củatừng sản phẩm.

Ví dụ:

Hình 2 2: Ví dụ bài toán về hệ thống gợi ý dựa trên nội dung

Cho một ma trận gợi ý bài hát (như hình trên), các số ở ô nền màu xanh là đánh giá củangười dùng theo mức độ từ 0 (không thích) đến 5 sao (rất thích) Các dấu ? ở ô nềnmàu xám là các dữ liệu cần được giải quyết bài toán để tìm ra giá trị Mục tiêu của bàitoàn không phải là tìm chính xác các giá trị mà là cần tìm ra các khoảng đánh giá mức

độ để xem người dùng có thích bài hát hay là không?

Bên trái là các bài hát, bên phải là các người dùng A, B, C, D, E, F

Giải quyết bài toán

Nhìn vào 5 bài hát, có thể dễ dàng phân loại: Mưa nửa đêm, Cỏ úa, Vùng lá me bay làthuộc dòng “Trữ tình”, Con cò bé bé và Em yêu trường em là các bài hát thuộc dòng

“Thiếu nhi”

- Người A đánh giá 5 sao cho các bài hát Mưa nửa đêm và Cỏ úa, đánh giá 1 sao

cho bài Con còn bé bé và Em yêu trường em

- Người B đánh giá 5 sao cho bài hát Mưa nửa đêm và 4 sao cho bài hát Vùng lá

me bay Đánh giá lần lượt 1 sao và 0 sao cho bài hát Con cò bé bé và em yêu trường em

Trang 28

→ Do đó dự đoán được người A và người B sẽ thích dòng nhạc “Trữ tình” và khôngthích dòng nhạc “Thiếu nhi” Từ đó suy đoán số sao cho từng ô ? của người A và

người B

- Người C đánh giá lần lượt 0 sao và 1 sao cho các bài hát Mưa nửa đêm và Vùng

lá me bay Đánh giá lần lượt 4 sao và 5 sao cho các bài hát Con cò bé bé và Em yêu trườngem

- Người D đánh giá 0 sao cho các bài hát Mưa nửa đêm và Cỏ úa Đánh giá 4 sao cho bài hát Con cò bé bé

- Người E đánh giá 1 sao cho bài hát Mưa nửa đêm Đánh giá 4 sao cho bài hát

Con cò bé bé

- Người F đánh giá 1 sao cho bài hát Vùng lá me bay

→ Do đó dự đoán được người dùng C, D, E, F sẽ không thích dòng nhạc “Trữtình” và sẽ thích dòng nhạc “Thiếu nhi” Từ đó suy đoán số sao cho từng ô ? của người C, D,

Đối với phương pháp này, có 2 cách tiếp cận nhỏ hơn đó là user-based và

item-based

Trang 29

Hình 2 3: Cách tiếp cận phương pháp Collaborative Filtering Cách tiếp cận User-based

Ví dụ: Có rất nhiều người thích phim “Kungfu Panda”, liệu rằng bạn có thích “Kungfu Panda” như vậy không?

Ý tưởng của cách tiếp cận này là, lấy 20-50 người cùng chia sẻ với bạn rằng họ thích

“Kungfu Panda” do đó, mức độ thích bộ phim này của bạn phụ thuộc vào mức độ thíchcủa họ

Hướng tiếp cận chính đó là hệ thống sẽ gợi ý sản phẩm dựa vào số người có cùng sở

thích với người dùng hiện tại

Dựa vào hình ảnh ở trên, chúng ta sẽ cùng thực hiện ví dụ minh họa về cách tiếp cận

user-based

- Bên trái sẽ có 3 người (A, B, C), bên phải sẽ có 4 loại trái cây (nho, dâu, dưa hấu

và cam)

- Người A thích cả 4 loại trái cây, người B thích dâu và người C thích dâu, dưa hấu

→ Mục tiêu của chúng ta dựa vào hình ảnh sẽ chứng minh tại sao hệ thống lại gợi ý

nho và cam cho người C

Giải quyết bài toán

- Người B có cùng 1 sở thích với người C là thích dâu

- Người A có cùng 2 sở thích với người C là thích dâu và dưa hấu

- Người A sẽ có nhiều sở thích chung với người C hơn người B

Trang 30

- Cách tiếp cận của user-based là dựa vào số người có cùng nhiều sở thích nên hệ

thống gợi ý trái nho và trái cam cho người C là hoàn toàn đúng logic

Giả sử một bài toán khác

Hình 2 4: Ví dụ bài toán khác của hướng tiếp cận User-based

- Thêm một người dùng thứ 4 (người D) và thêm một trái táo

- Người thứ 4 thích dâu, dưa hấu và táo

Hệ thống có gợi ý trái táo cho người C hay không?

Giải quyết bài toán

- Người D có cùng sở thích với người C là đều thích dâu và dưa hấu

- Hệ thống sẽ gợi ý táo cho người C là đúng logic

- Nhưng mục đích cao hơn đó là nếu thêm một người E có cùng sở thích vớingười C và thích thêm trái dâu thì hệ thống cũng sẽ gợi ý trái dâu cho người C, đó là theologic

- Như vậy, nếu có hàng nghìn người dùng có cùng sở thích tương quan với người

E thì có thể hệ thống sẽ gợi ý toàn bộ sản phẩm cho người C

- Cách giải quyết là việc chúng ta muốn hiển thị bao nhiêu sản phẩm được gợi ý

và thêm trọng số để ưu tiên những người dùng giống người C hơn, từ đó gợi ý các sản phẩmtốt nhất

Cách xây dựng:

- Biểu diễn mỗi người dùng bằng một vector các sản phẩm đã tương tác, có thể cótrọng số

Trang 31

- Tính độ tương tự giữa các vector đại diện cho người dùng.

- Đối với người dùng hiện tại, ước tính độ phù hợp của sản phẩm dựa vào lịch sử của nhóm người dùng tương tự như người dùng hiện tại

- Có thể chọn k người dùng gần giống người dùng hiện tại nhất, hoặc chọn tất cảngười dùng nhưng thêm trọng số để ưu tiên những người dùng giống người dùng hiện tạihơn

Cách tiếp cận Item-based

Ví dụ: Bạn đã từng xem những bộ phim hay và không hay trước đó, vậy có thể gợi ý

cho bạn rằng, bạn có nên xem “Ip Man 4” hay không?

Ý tưởng của cách tiếp cận này là, lấy 20-50 bộ phim mà bạn đã xem trước đó, màchúng có cùng đối tượng với “Ip Man 4”, mức độ mà bạn sẽ thích “Ip Man 4” phụ thuộc vàomức độ bạn thích những bộ phim trước đó

Hướng tiếp cận chính đó là hệ thống sẽ gợi ý các sản phẩm có cùng nội dung, đặc điểmvới sản phẩm người dùng hiện tại đang tương tác và thêm một yếu tố đó là sản phẩm

đó phải được nhiều người dùng khác tương tác, yêu thích

Dựa vào hình ảnh ở trên, chúng ta sẽ cùng thực hiện ví dụ minh họa về cách tiếp cậnitem-based

- Bên trái sẽ có 3 người (A, B, C), bên phải sẽ có 4 loại trái cây (dưa gang, dâu, dưahấu và cam)

- Người A thích dưa gang, dưa hấu, cam, người B thích dưa gang, dưa hấu và

người C thích dưa hấu

Mục tiêu của chúng ta dựa vào hình ảnh sẽ chứng minh tại sao hệ thống lại gợi

ý dưa gang cho người C

Giải quyết bài toán

- Giả sử ta thấy trái dưa gang có những đặc điểm giống trái dưa hấu, cùng loại dưa

chẳng hạn mà người C thích

- Trái dưa gang cũng có được người A và người B thích, tính trên 3 người thì gọi là nhiều người thích

- Do đó hệ thống gợi ý trái dưa gang cho người C là hợp lý theo logic

Giả sử bài toán khác

Trang 32

Hình 2 5: Ví dụ bài toán khác của hướng tiếp cận Item-based

- Thêm một người dùng thứ 4 (người D)

- Người thứ 4 thích cam

Hệ thống có gợi ý trái cam cho người C hay không?

Giải quyết bài toán

- Trái cam sẽ có khá nhiều đặc điểm giống với trái dưa hấu

- Đầu tiên chúng ta thấy trái cam được người C và người D thích

- Do đó, hệ thống có thể sẽ gợi ý trái cam cho người C (trong trường hợp chỉ có 4 trái này)

- Nếu trường hợp có nhiều có trái khác thì sẽ tùy thuộc mức độ giống nhau củatừng đặc điểm với trái dưa hấu mà quyết định có gợi ý trái cam hay là không?

Cách xây dựng

- Biểu diễn mỗi sản phẩm bằng một vector người dùng

- Tính độ tương quan giữa các sản phẩm

- Đối với người dùng hiện tại , tìm các sản phẩm tương tự với các sản phẩm mà

người dùng hiện tại đã tương tác

- Gợi ý sản phẩm cho người dùng hiện tại từ các sản phẩm được nói như ở trên,thông qua các tiêu chi như mức độ giống nhau của từng đặc điểm (trọng số cao hơn), nhiềungười tương tác

Trang 33

Chương 3: XÁC ĐỊNH YÊU CẦU

3.1 Yêu cầu người dùng

Bảng 3 1: Yêu cầu người dùng

1 Giao diện Dễ nhìn, bắt mắt, đơn giản hóa và thân thiện

với người dùng Không phức tạp, chằng chịtgây nên sự rối rắm

2 Các chức năng cơ bản phía Có các chức năng cơ bản của một websitekhách hành thương mại như đăng ký, đăng nhập, thêm

vào giỏ hàng, quản lý giỏ hàng, thanh toán,đặt lại mật khẩu, thay đổi mật khẩu, quản lýthông tin tài khoản, lịch sử đơn hàng, thêmsản phẩm yêu thích, danh sách sản phẩm đãxem

3 Đăng nhập với các tài khoản Ngoài việc đăng nhập với tài khoản đã đăngmạng xã hội ký với hệ thống, cho phép người dùng sử

dụng các tài khoản facebook, google đểđăng nhập vào hệ thống, tạo sự tiện lợinhanh chóng

4 Trò chuyện trực tuyến Chức năng quan trọng Dễ sử dụng, không

quá nhiều thao tác để bắt đầu cuộc tròchuyện trực tuyến với nhân viên Tương tựgiống chức năng messenger của Facebook.Bắt buộc phải real-time, phản hồi ngay lậptức

5 Tích hợp thanh toán trực tuyến Ngoài chức năng thanh toán của hệ thống

Tích hợp chức năng thanh toán trực tuyếnPayPal giúp người dùng thanh toán tiện lợi

và nhanh chóng

6 Hệ thống gợi ý Gợi ý các sản phẩm được nhiều người xem(Recommendation Systems) nhiều, mua nhiều, có mức rating cao cho

người dùng

7 Thông kê số liệu (dashboard) Tính toán thực hiện các phép tính các số

liệu nghiệp vụ kế toán Tổng doanh thu,tổng lợi nhuân, tổng chi phí, tổng chi tiêu,

số lượng người dùng, số lượng sản phẩm đãbán, số lượng review của tất cả sản phẩm,

Trang 34

số lượng người dùng ghé thăm website làcác phần bắt buộc phải có.

8 Các module quản lý Các module quản lý bắt buộc phải có như

quản lý sản phẩm, loại sản phẩm, đơn hàng,tài khoản các người dùng, Role, tiếp nhậncác đóng góp về website Yêu cầu các thaotác CRUD dễ sử dụng, các thao tác trongmodule chi tiết rõ ràng

9 Trình quản lý các cuộc hội thoại Trình quản lý hội thoại sẽ như một khung

cửa sổ bên trái là danh sách các cuộc hộithoại, bên phải là nội dung của cuộc hộithoại Thông tin về các cuộc hội thoại đầy

đủ thông tin khách hàng tên, ngày hội thoại.Bắt buộc real-time, phản hồi ngay lập tức.Tham khảo trình quản lý hội thoạimessenger của Facebook

3.2 Yêu cầu hệ thống

3.2.1 Các tác nhân

Bảng 3 2: Mô tả các tác nhân

1 Khách (chưa đăng nhập) Được thao tác toàn bộ các chức năng cần

thiết nhất của việc mua hàng Không cóchức năng quản lý thông tin tài khoản, quản

lý đơn hàng, thêm sản phẩm yêu thích, xemdanh sách sản phẩm yêu thích, xem danhsách sản phẩm đã xem

2 Người dùng (đã đăng nhập) Được thao tác toàn bộ chức năng trang

khách hàng (giao diện mua sắm) Khôngđược quyền truy cập vào trang quản trị

3 Nhân viên Nhân viên sẽ có các quyền nhất định để thao

tác vào các module quản lý, hội thoại trựctiếp với khách hàng Module quản lý tàikhoản người dùng và Roles thì không đượcphép truy cập

4 Quản trị viên (Admin) Được thao tác toàn bộ chức năng của hệ

thống

Trang 35

3.2.1.1 Chức năng của các tác nhân

Bảng 3 3: Chức năng của từng tác nhân

2 Đăng nhập (trang khách

xhàng)

18 Đăng xuất (trang khách

xhàng)

Trang 36

cửa hàng

Trang 37

26 Trình quản lý các cuộc hội

thoại

28 Chỉnh sửa thông tin tài

Trang 38

Chú thích:

- Các chức năng được làm mờ đi là các chức năng đã thực hiện ở kỳ tiểu luậnchuyên ngành, tuy nhiên có một tính năng được cải thiện như thêm sản phẩm vào giỏ hàng(điểu chỉnh số lượng, kích thước và màu), quản lý giỏ hàng (điều chỉnh số lượng), sửa lỗi khitải, xóa hình ở quản lý hình ảnh sản phẩm (phần quản trị), điều chỉnh tăng giảm số lượng khisản phẩm được bán ở quản lý số lượng sản phẩm (phần quản trị), sửa lỗi cấp quyền cho vaitrò người dùng trong hệ thống

- Các chức năng được làm rõ là các chức năng được xây dựng trong kỳ khóa luận lần này

Bảng 3 4: Chi tiết lược đồ chức năng

Tài khoản đã đăng ký UC1.1

1 Đăng nhập (trang khách hàng) Tài khoản Facebook UC1.2

Tài khoản Google UC1.3

Chọn mốc số lượng hiển thị UC5.3

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

Xem đánh giá về sản phẩm UC6.1

Đánh giá về sản phẩm UC6.2

8 Thêm sản phẩm vào giỏ hàng UC8.2

Xóa sản phẩm khỏi giỏ hàng UC9.1

9 Quản lý giỏ hàng

Trang 39

10 Thanh toán

Thanh toán PayPal UC10.2

11 Đánh giá giá website, cửa UC11.1hàng

Trang 40

Hủy đơn hàng UC13.1

Xem chi tiết đơn hàng UC13.2

15 Quản lý sản phẩm yêu thích Xóa sản phẩm yêu thích UC15.1

16 Xem danh sách sản phẩm đã UC16.1xem

Thêm sản phẩm mới UC20.1Sửa thông tin sản phẩm UC20.2Xóa sản phẩm UC20.3Quản lý hình ảnh UC20.4Quản lý số lượng UC20.5

Nhập sản phẩm ra excel UC20.7Tải template mẫu excel UC20.8

Tìm kiếm sản phẩm theo từ

UC20.9khóa

Chọn mốc số lượng hiển thị

UC20.10sản phẩm

Thêm danh mục mới UC21.1

Ngày đăng: 27/12/2021, 08:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w