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 4do – 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 5do – 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 8NHIỆ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 93.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 104.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 115.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 126.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 13Hì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 14Hì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 15Hì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 16Bả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 17Bả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 18Chươ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 191.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 20b) 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 21Chứ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 22vấ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 23Chươ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 25JavaScript 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 26Trong 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 27mộ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 29Hì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 32Hì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 33Chươ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 34số 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 353.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 36cửa hàng
Trang 3726 Trình quản lý các cuộc hội
thoại
28 Chỉnh sửa thông tin tài
Trang 38Chú 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 3910 Thanh toán
Thanh toán PayPal UC10.2
11 Đánh giá giá website, cửa UC11.1hàng
Trang 40Hủ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