1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn tốt nghiệp Khoa học máy tính: Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử

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

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

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

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

ỨNG DỤNG PHÂN HỆ GỢI Ý VÀO HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ

Ngành: KHOA HỌC MÁY TÍNH

HỘI ĐỒNG: KHOA HỌC MÁY TÍNH GVHD: TS PHAN TRỌNG NHÂN GVPB: ThS NGUYỄN ĐÌNH THÀNH

-o0o -

SVTH: NGUYỄN BỬU THỊNH – 1720065

TP HỒ CHÍ MINH, 8/2021

Trang 2

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

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA:KH & KT Máy tính NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP

BỘ MÔN:HTTT Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình

HỌ VÀ TÊN: Nguyễn Bửu Thịnh _ MSSV: 1720065 HỌ VÀ TÊN: _ MSSV: _ HỌ VÀ TÊN: _ MSSV: _ NGÀNH: Khoa học Máy tính _ LỚP:

1 Đầu đề luận án:

Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử _ _

2 Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):

✔ Tìm hiểu và phân tích các hệ thống gợi ý

✔ Tìm hiểu các công nghệ hiện đại để phát triển hệ thống thương mại điện tử ✔ Thiết kế hệ thống tích hợp

✔ Tích hợp phân hệ gợi ý và chatbot vào hệ thống thương mại điện tử ✔ Thử nghiệm và đánh giá hệ thống

3 Ngày giao nhiệm vụ luận án: 01/03/2021 4 Ngày hoàn thành nhiệm vụ: 01/08/2021

5 Họ tên giảng viên hướng dẫn: Phần hướng dẫn:

1) TS Phan Trọng Nhân 2) 3)

Nội dung và yêu cầu LVTN đã được thông qua Bộ môn

Ngày 01 tháng 03 năm 2021

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

PGS TS Trần Minh Quang TS Phan Trọng Nhân

PHẦN DÀNH CHO KHOA, BỘ MÔN:

Người duyệt (chấm sơ bộ): Đơn vị: _ Ngày bảo vệ: Điểm tổng kết: _ Nơi lưu trữ luận án: _

Trang 3

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc -

Ngày 05 tháng 08 năm 2021

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho người hướng dẫn)

1 Họ và tên SV: Nguyễn Bửu Thịnh

MSSV: 1720065 Ngành (chuyên ngành): Khoa học Máy tính 2 Đề tài: Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử

3 Họ tên người hướng dẫn: TS Phan Trọng Nhân 4 Tổng quát về bản thuyết minh:

-Ứng dụng chatbot còn giới hạn và chưa thật sự thuận tiện với người dùng

8 Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ  9 3 câu hỏi SV phải trả lời trước Hội đồng:

a b c

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi-Xuất sắc Điểm: 9.5/10 Ký tên (ghi rõ họ tên)

Phan Trọng Nhân

Trang 4

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc -

Ngày 10 tháng 8 năm 2021

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho người hướng dẫn/phản biện)

1 Họ và tên SV: Nguyễn Bửu Thịnh MSSV: 1720065Ngành (chuyên ngành): Hệ thống thông tin

2 Đề tài: Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử3 Họ tên người phản biện: Ths Nguyễn Đình Thành

4 Tổng quát về bản thuyết minh:

 Đã tìm hiểu và áp dụng tốt được các công nghệ liên quan.

 Hiểu và ứng dụng được các giải thuật hệ thống gợi ý: giải thuật lọc cộng tác, và lọc dựa trên nội dung.

 Báo cáo trình bày tốt, rõ ràng.

 Khối lượng công việc lớn nhưng đã hoàn thành tốt.7 Những thiếu sót chính của LVTN:

 Phần báo cáo nên tập trung vào phân hệ gợi ý, chatbox thông minh thay vì hệ thống bán hàng điện tử.

 Phân hệ gợi ý nên thiết kế theo hướng module, plugin hay lib để dễ dàng tích hợp vào các trang thương mại điện tử.

 Phần đánh giá performance hệ thống còn sơ sài: ví dụ tập mẫu còn quá ít, do đó kết quả đánh giá hệ thống lỗi còn rất cao: trên 40%.

8 Đề nghị: Được bảo vệ ■ Bổ sung thêm để bảo vệ □ Không được bảo vệ □9 3 câu hỏi SV phải trả lời trước Hội đồng:

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): giỏiĐiểm : 9.5/10

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

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan Luận văn tốt nghiệp đề tài “Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử” là hệ thống do chính tôi thực hiện Các số liệu, nội dung và kết quả trình bày trong Luận văn tốt nghiệp của tôi là hoàn toàn trung thực, nếu sai tôi xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của khoa, bộ môn và nhà trường đề ra

Tp Hồ Chí Minh, tháng 7/2021

Sinh viên thực hiện

Nguyễn Bửu Thịnh

Trang 6

LỜI CẢM ƠN

Quá trình thực hiện Luận Văn Tốt Nghiệp là giai đoạn quan trọng nhất trong quãng đời mỗi sinh viên Luận Văn Tốt Nghiệp là tiền đề nhằm trang bị cho em những kỹ năng nghiên cứu, những kiến thức quý báu, cần thiết trong quá trình làm việc sau này

Trước hết, em xin chân thành cảm ơn quý Thầy, Cô trong khoa Khoa Học và Kỹ Thuật Máy Tính đã tận tình chỉ dạy và trang bị cho em những kiến thức cần thiết trong suốt quá trình học tập trên giảng đường

Em xin chân thành cảm ơn Tiến sĩ Phan Trọng Nhân, thầy đã trực tiếp hướng dẫn em trong suốt quá trình thực hiện đề tài Luận Văn Tốt Nghiệp, thầy đã trực tiếp theo dõi cũng như góp ý, sửa chữa những sai sót cho em trong suốt quá trình thực hiện Luận Văn Tốt Nghiệp Bên cạnh sự nỗ lực của bản thân, sự hỗ trợ nhiệt tình của thầy đã giúp em hoàn thành Luận Văn Tốt Nghiệp một cách thuận lợi

Con xin chân thành gửi lời cảm ơn sâu sắc đến Ba Mẹ đã sinh thành, dưỡng dục, tạo mọi điều kiện thuận lợi cả về vật chất lẫn tinh thần, giúp con có được ngày hôm nay Xin chân thành cám ơn sự ủng hộ, động viên của những người bạn trong quá trình làm Luận Văn Tốt Nghiệp

Mặc dù đã cố gắng hết sức để hoàn thành Luận Văn Tốt Nghiệp, nhưng chắc chắn sẽ không tránh khỏi sai sót, rất mong nhận được sự góp ý và chỉ bảo từ quý thầy cô và các bạn

Xin chân thành cảm ơn thầy cô và các bạn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng với mọi người

Tp Hồ Chí Minh, tháng 7/2021

Sinh viên thực hiện

Nguyễn Bửu Thịnh

Trang 7

TÓM TẮT LUẬN VĂN

Đề tài: Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử

Trong đề tài Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử này, ta sẽ thực hiện thiết kế một website thương mại điện tử mua bán sản phẩm công nghệ như điện thoại, laptop, máy tính bảng, đồng hồ thông minh có tích hợp phân hệ gợi ý vào website Phân hệ gợi ý có chức năng gợi ý các sản phẩm thương mại điện tử cho người dùng dựa trên thông tin trải nghiệm của người dùng trong quá khứ khi người dùng xem các sản phẩm có trên website cũng như gợi ý thêm các sản phẩm liên quan khác cho người dùng dựa trên mức độ tương tự, liên quan giữa các sản phẩm Bên cạnh đó, website đã tích hợp chatbot để tự động trả lời tin nhắn cho người dùng khi người dùng đặt câu hỏi Chatbot này cũng được tích hợp machine learning để có thể phân biệt ngữ cảnh tin nhắn của người dùng cũng như gợi ý sản phẩm cho người dùng khi người dùng đặt câu hỏi tìm kiếm sản phẩm trên chatbot Chatbot còn có khả năng hỗ trợ người dùng thêm sản phẩm vào giỏ hàng và đặt hàng trên chatbot

Để làm đề tài này, mình đã tìm hiểu nghiệp vụ của các website kinh doanh các sản phẩm thương mại điện tử khác và từ đó phân tích, triển khai một mô hình website kinh doanh các sản phẩm công nghệ có tích hợp phân hệ gợi ý và các mô hình machine learning khác vào website và chatbot

Bên cạnh việc tìm hiểu nghiệp vụ của các website thương mại điện tử, mình cũng đã tìm hiểu các công nghệ, các framework liên quan để thực hiện đề tài này Sản phẩm của đề tài là một website thương mại điện tử có khả năng gợi ý sản phẩm cho người dùng dựa trên thông tin trải nghiệm người dùng xác thực cũng như những người dùng trải nghiệm với tư cách là khách, đồng thời người dùng có thể nhắn tin trên chatbot, chatbot có khả năng gợi ý sản phẩm cho người dùng, người dùng cũng có thể đặt mua hàng trên chatbot một cách tự động mà không cần phải tương tác với người kinh doanh sản phẩm

Trang 8

1.3 Nội dung của luận văn 13

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 14

2.1 Cơ sở lý thuyết 14

2.1.1 Thương mại điện tử 14

2.1.2 Phân hệ gợi ý 15

2.1.3 Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử 15

2.1.4 Một số website có tích hợp phân hệ gợi ý và cơ chế 16

3.1.1 Yêu cầu phi chức năng 26

3.1.2 Yêu cầu chức năng 26

3.1.2.1 Tổng quát 26

3.1.2.2 Yêu cầu chức năng của quản trị viên 26

3.1.2.3 Yêu cầu chức năng của nhân viên 27

Trang 9

3.1.2.4 Yêu cầu chức năng của người dùng 27

3.1.2.5 Yêu cầu chức năng của người dùng với tư cách khách 28

3.2 Lược đồ Use-Case 28

3.3 Đặc tả Use-Case cho các chức năng chính 33

3.4 Phân tích các yêu cầu chính 39

3.5 Phân tích các yêu cầu khác 40

CHƯƠNG 4: THIẾT KẾ HỆ THỐNG VÀ THUẬT TOÁN 41

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

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

4.2.1 Mô hình thực thể liên kết – EERD 42

4.2.2 Ánh xạ sang mô hình dữ liệu quan hệ 47

4.3 Các thuật toán học máy (machine learning) và phân hệ gợi ý (recommendation system) 50

4.3.1 Giải thuật lọc cộng tác (Neighborhood-based Collaborative Filtering) 50

4.3.3 Giải thuật K-nearest Neighbors(KNN) 56

4.4 Thiết kế lớp đối tượng 56

4.5 Chức năng gợi ý sản phẩm(viết bằng Python) 58

CHƯƠNG 5: HIỆN THỰC HỆ THỐNG 59

5.1 Công nghệ sử dụng 59

5.2 Xây dựng website 59

5.2.1 Trang chủ khi người dùng chưa đăng nhập 59

5.2.2 Trang chủ khi người dùng đã đăng nhập 60

5.2.3 Chatbot và thanh toán trên chatbot 62

5.2.4 Xem chi tiết sản phẩm 64

5.2.5 Đặt hàng trên hệ thống, thanh toán tiền mặt, paypal 65

5.2.6 Một số phần chính của trang quản trị viên 70

5.2.7 Quản trị viên xem danh sách đơn hàng 75

5.2.8 Nhân viên xác nhận đơn hàng 76

5.2.9 Hiển thị danh sách các sản phẩm gợi ý được người dùng xem, thêm vào giỏ hàng, mua nhiều nhất 78

Trang 10

CHƯƠNG 6: KIỂM THỬ PHẦN MỀM 82

6.1 Chức năng gợi ý sản phẩm của phân hệ gợi ý hoặc sản phẩm phổ biến 82 6.2 Chức năng thêm sản phẩm vào giỏ hàng, đặt hàng và thanh toán trên website 87

6.3 Chức năng tìm kiếm và đặt hàng trên chatbot 92

6.4 Kiểm thử kịch bản của chatbot 94

6.5 Kiểm thử tính năng đặt hàng trên chatbot 95

CHƯƠNG 7: ĐÁNH GIÁ HỆ THỐNG VÀ PERFORMANCE 98

7.1 Đánh giá hiệu quả của phân hệ gợi ý 98

7.2 Đánh giá performance 99

7.2.1 Đánh giá trang chủ của website khi người dùng chưa đăng nhập 100

7.2.2 Đánh giá trang danh sách từng loại sản phẩm 103

7.2.3 Đánh giá performnace cho trang chủ khi người dùng đăng nhập vào tài khoản cá nhân 105

7.2.4 Đánh giá performance khi nhiều người dùng cùng tìm kiếm sản phẩm theo từ khoá 108

7.2.5 Đánh giá performance khi nhiều người dùng truy cập vào trang xem chi tiết sản phẩm 110

8.2.2 Những hạn chế chưa thực hiện được 113

8.3 Hướng phát triển tương lai 114

DANH MỤC TÀI LIỆU THAM KHẢO 115

PHỤ LỤC 116

Trang 11

DANH MỤC BẢNG BIỂU

Bảng đặc tả 3.1: gợi ý sản phẩm theo từng người dùng 33 Bảng đặc tả 3.2: gợi ý kèm theo với từng sản phẩm cụ thể 33 Bảng đặc tả 3.3: chức năng tìm kiếm sản phẩm trên thanh tìm kiếm 34 Bảng đặc tả 3.4: chức năng đặt hàng trên hệ thống 34 Bảng đặc tả 3.5: chức năng thanh toán paypal 35 Bảng đặc tả 3.6: chức năng trò chuyện với chatbot 35 Bảng đặc tả 3.7: chức năng đặt hàng trên chatbot 36 Bảng đặc tả 3.8: chức năng xem danh sách gợi ý trên trang người dùng 37 Bảng đặc tả 3.9: chức năng xem thông tin thống kê trên trang quản trị viên 37 Bảng đặc tả 3.10: chức năng thêm mới sản phẩm của quản trị viên 38 Bảng đặc tả 3.11: chức năng xem chi tiết đơn hàng phía quản trị viên 38

Trang 12

Bảng PL15: chức năng xem danh sách sản phẩm, chi tiết sản phẩm 140 Bảng PL16: chức năng quản lý đơn hàng cho trang nhân viên, quản trị viên 141 Bảng PL17: chức năng xem, thêm, xoá, sửa sản phẩm ở trang quản trị viên 143

Trang 13

DANH MỤC HÌNH ẢNH

Hình 2.1: sơ đồ tương tác giữa người dùng vào chatbot 17 Hình 2.2: sơ đồ mô hình thanh toán paypal 24 Hình 3.1: lược đồ Use-Case tổng quát cho tất cả người dùng 29 Hình 3.2: lược đồ Use-Case chi tiết cho người xem với tư cách khách 29 Hình 3.3: lược đồ Use-Case chi tiết cho người dùng 30 Hình 3.4: lược đồ Use-Case chi tiết cho nhân viên 31 Hình 3.5: lược đồ Use-Case chi tiết cho quản trị viên 32 Hình 4.1: kiến trúc mô hình của hệ thống 41

Hình 5.1: giao diện trang chủ của website 60 Hình 5.2: nội dung hiển thị trang chủ khi người dùng đã đăng nhập 61 Hình 5.3: giao diện hiển thị khi click vào icon messenger chatbot 62 Hình 5.4: giao diện khung chat để trò chuyện với chatbot 62 Hình 5.5: giao diện thanh toán trên chatbot khi người dùng chưa đăng nhập 63 Hình 5.6: các trường thông tin trong giao diện thanh toán khi đã đăng nhập 63 Hình 5.7: hình 1 sản phẩm cụ thể hiển thị trong danh sách sản phẩm 64

Hình 5.9: popup hiển thị danh sách sản phẩm đã đặt mua trong giỏ hàng 66

Hình 5.11: thông báo đặt hàng thành công khi thanh toán tiền mặt 68

Hình 5.13: thông báo đặt hàng trên hệ thống và thanh toán paypal thành công 70 Hình 5.14: thống kê thông tin số lượng người dùng, số đơn hàng, số sản phẩm 71 Hình 5.15: top 5 sản phẩm được xem nhiều nhất 71 Hình 5.16: thông tin đánh giá mô hình phân hệ gợi ý và thông tin website 71 Hình 5.17: thanh tuỳ chọn cho phép hiển thị số lượng top sản phẩm gợi ý 71 Hình 5.18: top sản phẩm gợi ý theo sản phẩm được tương tác nhiều nhất 72 Hình 5.19: top sản phẩm gợi ý theo sản phẩm được tương tác nhiều nhất 72 Hình 5.20: top sản phẩm gợi ý theo sản phẩm được xem nhiều nhất 73 Hình 5.21: top gợi ý theo sản phẩm được thêm vào giỏ hàng nhiều nhất 73 Hình 5.22: top gợi ý theo sản phẩm được người dùng đặt mua nhiều nhất 74 Hình 5.23: top gợi ý cho từng người dùng được người dùng xem nhiều nhất 74 Hình 5.24: top gợi ý cho từng người dùng được thêm vào giỏ hàng nhiều nhất 75 Hình 5.25: top gợi ý cho từng người dùng được đặt mua nhiều nhất 75 Hình 5.26: xem danh sách đơn hàng ở trang quản trị viên 76 Hình 5.27: quản trị viên xem chi tiết đơn hàng 76 Hình 5.28: xem danh sách đơn hàng ở trang nhân viên 77 Hình 5.29: nhân viên xem chi tiết đơn hàng 77 Hình 5.30: danh sách gợi ý theo các sản phẩm được tương tác nhiều nhất 78 Hình 5.31: danh sách gợi ý cho người dùng được tương tác nhiều nhất 78 Hình 5.32: danh sách gợi ý theo sản phẩm được người dùng xem nhiều nhất 79 Hình 5.33: danh sách gợi ý theo sản phẩm được thêm vào giỏ hàng 79 Hình 5.34: danh sách gợi ý theo sản phẩm được người dùng mua nhiều nhất 80 Hình 5.35: danh sách gợi ý cho người dùng được xem nhiều nhất 80 Hình 5.36: danh sách gợi ý cho người dùng được thêm vào giỏ hàng 81

Trang 14

Hình 5.37: danh sách gợi ý cho người dùng được mua nhiều nhất 81 Hình 6.1: gợi ý sản phẩm phổ biến khi người dùng chưa đăng nhập 83 Hình 6.2: gợi ý sản phẩm cho người dùng mới 84 Hình 6.3: gợi ý sản phẩm dựa trên lịch sử tương tác của người dùng 85 Hình 6.4: danh sách sản phẩm liên quan, gần gũi với sản phẩm cụ thể 86 Hình 6.5: trường tìm kiếm sản phẩm, gõ tên sản phẩm đang cần tìm 86 Hình 6.6: danh sách kết quả trả về khi tìm kiếm sản phẩm 86 Hình 6.7: hiển thị nút thêm sản phẩm và xem chi tiết sản phẩm khi rê chuột 89 Hình 6.8: Số lượng sản phẩm đang có trong giỏ hàng 89 Hình 6.9: popup danh sách sản phẩm đã được thêm vào giỏ hàng 89 Hình 6.10: Form khi người dùng đăng nhập để mua sản phẩm 90 Hình 6.11: Trang thông tin thanh toán 90 Hình 6.12: trang thông báo đặt hàng thành công bằng tiền mặt 91 Hình 6.13: email xác nhận đặt hàng thành công 91 Hình 6.14: trang đăng nhập vào paypal để thanh toán đơn hàng 91 Hình 6.15: trang thanh toán bằng paypal để tiến hành thanh toán 92 Hình 6.16: thông báo đặt hàng thành công bằng paypal 92

Hình 6.19: tin nhắn trả về trên chatbot khi tin nhắn gửi tới là lời chào 94 Hình 6.20: tin nhắn trả về trên chatbot khi hỏi mua hàng 94 Hình 6.21: trang đặt hàng trên chatbot khi người dùng chưa đăng nhập 96 Hình 6.22: trang đặt hàng trên chatbot khi người dùng đã đăng nhập 97 Hình 7.1: kết quả đánh giá tổng quát mức độ hiệu quả của phân hệ gợi ý 99 Hình 7.2: thiết lập thông số về số người dùng truy cập và thời gian kiểm tra 99 Hình 7.3: thiết lập thông tin website mà ta thực hiện kiểm tra 100 Hình 7.4: giao diện trang chủ trong trường hợp người dùng chưa đăng nhập 101 Hình 7.5: thiết lập HTTP Request để kiểm tra trang chủ khi chưa đăng nhập 102 Hình 7.6: trang danh sách từng loại sản phẩm 103 Hình 7.7: thiết lập HTTP Request để kiểm tra trang danh sách sản phẩm 104 Hình 7.8: giao diện trang chủ khi người dùng đã đăng nhập 106 Hình 7.9: thiết lập HTTP Request để kiểm tra trang chủ khi đã đăng nhập 107 Hình 7.10: giao diện trang thông tin sản phẩm tìm kiếm 108 Hình 7.11: giao diện trả về khi tìm kiếm sản phẩm bằng từ khoá 109 Hình 7.12: thiết lập HTTP Request để kiểm tra trang tìm kiếm sản phẩm 109 Hình 7.13: giao diện trả về của trang chi tiết sản phẩm 111

Hình PL2: form đăng nhập có hiển thị cảnh báo 122 Hình PL3: form đăng ký tài khoản người dùng 123 Hình PL4: form đăng ký có hiển thị cảnh báo 123 Hình PL5: form đăng nhập để mua sản phẩm 124 Hình PL6: form đăng nhập để mua sản phẩm có hiển thị cảnh báo 124 Hình PL7: form đăng nhập cho nhân viên 125 Hình PL8: form đăng nhập khi nhập sai mật khẩu 125 Hình PL9: từ chối truy cập vào trang nhân viên 126 Hình PL10: form đăng nhập với vai trò quản trị viên 126 Hình PL11: form đăng nhập vai trò quản trị viên có hiển thị cảnh báo 127

Trang 15

Hình PL12: giao diện danh sách sản phẩm laptop 128 Hình PL13: giao diện thêm sản phẩm mới 129 Hình PL14: quản trị viên xem danh sách sản phẩm 130 Hình PL15: giao diện chỉnh sửa sản phẩm ở trang quản trị viên 131

Hình PL17: thông báo xoá sản phẩm thành công 132 Hình PL18: quản trị viên xem danh sách người dùng 133 Hình PL19: quản trị viên xem danh sách nhân viên 133 Hình PL20: form tạo tài khoản nhân viên 134 Hình PL21: thông báo tạo tài khoản nhân viên thành công 134 Hình PL22: tạo tài khoản nhân viên không thành công và hiển thị cảnh báo 135 Hình PL23: Hiển thị nút Đăng ký để đăng ký tài khoản 135

Hình PL25: Kết quả đăng ký tài khoản không thành công 137 Hình PL26: Kết quả đăng ký tài khoản thành công(trường hợp 4) 137 Hình PL27: email thông báo tạo tài khoản người dùng thành công 138 Hình PL28: Hiển thị cảnh báo khi người dùng nhập thiếu thông tin đăng nhập 138 Hình PL29: Hiển thị cảnh báo khi nhập mật khẩu không hợp lệ(dưới 8 ký tự) 138

Hình PL32: Link danh sách từng loại sản phẩm 139 Hình PL33: chỗ lấy access token và id của trang 144 Hình PL34: popup nơi lấy access token 144 Hình PL35: kết quả sau khi gõ ngrok http 8000 145

Hình PL37: popup thay đổi cấu hình webhook 146 Hình PL38: thông tin kết nối MySQL trên Clever Cloud – Console 147 Hình PL39: kết quả sau khi import cơ sở dữ liệu 147

Hình PL41: khởi tạo thông tin trong Container Registry 148 Hình PL42: kết quả sau khi khởi tạo Container Registry 148 Hình PL43: thông tin Access keys để triển khai hệ thống lên Azure 148 Hình PL44: kết quả sau khi build thành công 149 Hình PL45: kết quả trên terminal sau khi push 150 Hình PL46: thông tin điền vào trong tab Basic 151 Hình PL47: thông tin điền vào trong tab Docker 151 Hình PL48: thông báo triển khai project thành công 151 Hình PL49: thông tin URL của hệ thống ta triển khai lên 152 Hình PL50: thay đổi để có thể triển khai nhiều phiên bản hệ thống 152 Hình PL51: giao diện trang cấu hình messenger chatbot 153 Hình PL52: giao diện để thiết lập plugin chatbot trên website 153 Hình PL53: giao diện website sau khi được nhúng plugin messenger chatbot 153 Hình PL54: giao diện cấu hình webhook 154

Trang 16

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Tổng quan đề tài

Hiện nay, với sự phát triển lớn mạnh của công nghệ thông tin, hàng loạt các sản phẩm công nghệ, xu hướng mới ra đời nhằm đáp ứng và phục vụ tốt hơn cho nhu cầu của người dùng Công nghệ thông tin ngày càng phát triển đã hỗ trợ rất nhiều cho người dùng trong mọi lĩnh vực

Việc ứng dụng công nghệ thông tin vào các lĩnh vực giúp tạo ra những sản phẩm công nghệ hiện đại, phục vụ tốt cho đời sống con người hiện nay

Một trong những ứng dụng lớn của công nghệ thông tin là xây dựng ra các website thương mại điện tử để hỗ trợ người dùng mua hàng cũng như tìm ra các sản phẩm phù hợp với nhu cầu của người dùng thay vì phải ra trực tiếp cửa hàng trải nghiệm và mua trực tiếp sản phẩm như trước đây

Để phục vụ tốt hơn nữa trong việc đưa ra các sản phẩm phù hợp nhất đến tay người tiêu dùng, các website thương mại điện tử cần có những thuật toán phù hợp có khả năng tính toán và chọn ra các sản phẩm phù hợp nhất với người dùng dựa trên các tiêu chí cụ thể nào đó và gợi ý ra những sản phẩm đó cho người dùng Những thuật toán này được gọi là phân hệ gợi ý hay hệ gợi ý (recommendation system)

Việc ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử là xây dựng lên một website có tích hợp phân hệ gợi ý để gợi ý ra các sản phẩm phù hợp nhất tới tay người tiêu dùng cũng như giúp người kinh doanh có thể gợi ý ra các sản phẩm phù hợp nhất cho người dùng

1.2 Mục tiêu và phạm vi đề tài

Mục tiêu của đề tài là xây dựng một website thương mại điện tử có tích hợp phân hệ gợi ý để đề xuất ra các sản phẩm phù hợp với nhu cầu mua sắm của người dùng Để phục vụ cho việc xây dựng một website thương mại điện tử có tích hợp phân hệ gợi ý, ta sẽ tập trung nghiên cứu và phân tích nghiệp vụ rồi đề ra một mô hình website kinh doanh các sản phẩm công nghệ có tích hợp phân hệ gợi ý vào website

Phạm vi của đề tài là ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử, hướng tới mục tiêu tạo ra một website có khả năng gợi ý sản phẩm phù hợp nhất tới tay người tiêu dùng cũng như giúp người dùng trải nghiệm quá trình mua hàng online, giúp gợi ý sản phẩm tốt nhất tới tay người tiêu dùng Đồng thời xây dựng một con chatbot có khả năng trả lời tin nhắn tự động cho người dùng khi người dùng đặt câu hỏi, chatbot có khả năng gợi ý các sản phẩm liên quan dựa trên tin nhắn tìm kiếm sản phẩm của người dùng, đồng thời chatbot cũng được xây dựng cho phép người dùng có thể đặt mua sản phẩm thông qua con chatbot thay vì thêm sản phẩm vào giỏ hàng trên website

Trang 17

1.3 Nội dung của luận văn

• Chương 1: Giới thiệu đề tài

• Chương 2: Cơ sở lý thuyết và công nghệ • Chương 3: Phân tích yêu cầu

• Chương 4: Thiết kế hệ thống và các thuật toán • Chương 5: Hiện thực hệ thống

Trang 18

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Cơ sở lý thuyết

2.1.1 Thương mại điện tử

Thương mại điện tử là hoạt động mua bán sản phẩm (hoặc dịch vụ) thông qua các hệ thống điện tử như Internet và các mạng máy tính Thương mại điện tử còn được gọi là E-commerce, nghĩa là Electronic Commerce

Hoạt động thương mại điện tử tại Việt Nam xuất hiện vào những năm đầu của thập niên 2010 Các hoạt động thương mại điện tử đã chính thức được pháp luật công nhận và năm 2013

Thương mại điện tử dựa trên một số công nghệ như chuyển tiền điện tử, quản lý chuỗi dây chuyền cung ứng, tiếp thị internet, quá trình giao dịch trực tuyến, trao đổi dữ liệu điện tử (EDI), các hệ thống quản lý hàng tồn kho và các hệ thống tự thu thập dữ liệu

Thương mại điện tử hiện đại thường sử dụng mạng World Wide Web là một điểm ít nhất phải có trong chu trình giao dịch, mặc dù nó có thể bao gồm một phạm vi lớn hơn về mặt công nghệ như email, các thiết bị di động như là điện thoại

Có tất cả 9 hình thức giao dịch thương mại điện tử: • Chính phủ với Chính phủ (G2G)

• Chính phủ với Doanh nghiệp (G2B) • Chính phủ với Công dân (G2C) • Doanh nghiệp với Chính phủ (B2G) • Doanh nghiệp với Doanh nghiệp (B2B) • Doanh nghiệp với Khách hàng (B2C) • Khách hàng với Chính phủ (C2G) • Khách hàng với Khách hàng (C2C) • Khách hàng với Doanh nghiệp (C2B)

Trong đó có 4 hình thức chúng ta thường nghe nhất là: B2C, B2B, C2C, C2B Thương mại điện tử đã làm cho hoạt động thương mại của các doanh nghiệp vượt ra khỏi phạm vi quốc gia và trở thành hoạt động mang tính chất toàn cầu

Trước đây, lúc chưa có sự phát triển của thương mại điện tử, khi người dùng muốn mua một món hàng nào đó thì phải đến trực tiếp cửa hàng để xem, trải nghiệm và đặt hàng Điều này sẽ càng bất tiện khi người dùng muốn tìm mua các sản phẩm bên ngoài khu vực mà người dùng đang sinh sống thậm chí sản phẩm không được kinh doanh bên trong nước

Trang 19

Hiện nay, với sự phát triển của thương mại điện tử đã tạo điều kiện thuận lợi cho người dùng đặt mua sản phẩm thậm chí sản phẩm đó chỉ được bày bán ở khu vực khác thậm chí ở nước ngoài Quá trình đặt mua sản phẩm được thực hiện thông qua vài thao tác đơn giản trên các thiết bị di động công nghệ như laptop, điện thoại, máy tính bảng thông qua tương tác với các website thương mại điện tử

2.1.2 Phân hệ gợi ý

Đối với thương mại điện tử, người mua và người bán không cần gặp gỡ trực tiếp, mà họ giao dịch với nhau trên trang web Vì vậy rất cần có một trợ lý bán hàng tự động có khả năng tư vấn, khuyến nghị cho người dùng các sản phẩm phù hợp Một trong những giải pháp để phục vụ cho nhu cầu này là tích hợp các phân hệ gợi ý vào website bán hàng của chúng ta Mục tiêu của phân hệ gợi ý là gợi ý các món hàng, sản phẩm liên quan nhất tới người dùng dựa vào các tiêu chí cụ thể nào đó

Phân hệ gợi ý (recommendation system) là kỹ thuật của trí tuệ nhân tạo, được nghiên cứu để cung cấp những gợi ý tự động tới người dùng hoặc khách hàng

Có 2 phương thức gợi ý chính, bao gồm:

• Gợi ý dựa trên dữ liệu về hành vi trong quá khứ của người dùng để hướng dẫn người dùng định vị được những sản phẩm mà họ thích, giúp người dùng có những quyết định tốt khi mua sắm online

• Gợi ý những sản phẩm liên quan, gần gũi với một sản phẩm cụ thể nào đó, giúp người dùng có thể lựa chọn sản phẩm phù hợp nhất với nhu cầu sử dụng của họ Ta có thể thấy rằng phân hệ gợi ý là một trong những công cụ được sử dụng rất phổ biến trên các website thương mại điện tử hiện nay Ví dụ:

• Khi ta xem một video clip nào đó trên YouTube, YouTube đã tự động gợi ý ra các video clip có liên quan đến video clip mà bạn đang xem YouTube còn tự gợi ý ra những clip có thể bạn sẽ thích

• Khi ta mua một món hàng nào đó trên Amazon, hệ thống sẽ tự động gợi ý ra những những sản phẩm khác thường được mua kèm với sản phẩm mà ta đã đặt mua, thậm chí hệ thống còn có thể biết ta thích món hàng nào dựa trên lịch sử mua hàng của chúng ta

• Facebook hiển thị quảng cáo những sản phẩm có liên quan đến từ khoá mà ta vừa tìm kiếm

• Facebook gợi ý kết bạn cho người dùng • Netflix tự động gợi ý phim cho người dùng

2.1.3 Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử

Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử là quá trình xây dựng một website thương mại điện tử, bán hàng có tích hợp phân hệ gợi ý để gợi ý ra các sản phẩm phù hợp với người dùng dựa trên những tiêu chí về sở thích cũng như là lịch sử

Trang 20

tương tác của người dùng đối với website của chúng ta và những sản phẩm có liên quan, tương tự hay gần gũi đối với sản phẩm mà ta đang xem, nhằm đa dạng hoá việc gợi ý sản phẩm cho người dùng

Việc phát triển một hệ thống website thương mại điện tử đã giúp ích cho người dùng về nhiều mặt Thay vì phải tốn thời gian ra cửa hàng để mua và lựa chọn sản phẩm thì hiện nay, chỉ với vài thao tác trên máy tính và các thiết bị công nghệ là ta có thể xem thông tin các sản phẩm và lựa chọn đặt mua các sản phẩm cần thiết theo nhu cầu Hơn thế nữa, việc tích hợp phân hệ gợi ý vào trang thương mại điện tử lại còn giúp ích rất nhiều trong việc gợi ý sản phẩm phù hợp nhất tới tay người dùng cũng như tăng doanh thu của người khác

Đối với thương mại truyền thống trước đây thì người bán thường dựa vào những sản phẩm phổ biến được người dùng ưa chuộng và trưng bày trên các gian hàng để người mua có thể dễ dàng tiếp cận những sản phẩm phổ biến Tuy nhiên điều này lại có một hạn chế là đối với nhiều người dùng khác nhau thì nhu cầu sử dụng khác nhau nên nhiều khi không gian trưng bày có hạn, khó có thể đưa ra những sản phẩm phù hợp đối với tất cả người dùng Có khi sản phẩm nào đó phù hợp với người dùng này nhưng không phù hợp với người dùng khác, điều này dẫn đến việc khó có thể gợi ý chính xác sản phẩm phù hợp nhất với nhu cầu của người dùng

Việc tích hợp phân hệ gợi ý vào trang thương mại điện tử đã giúp khắc phục được vấn đề này Khi người dùng truy cập vào website của chúng ta để trải nghiệm và xem sản phẩm, khi đó hệ thống sẽ dựa vào lịch sử tương tác của người dùng đối với các sản phẩm trên website của chúng ta để từ đó đưa ra những gợi ý phù hợp cho người dùng, những người dùng khác nhau khi tương tác với website sẽ được đề xuất những sản phẩm gợi ý khác nhau, điều này giúp những người dùng khác nhau có thể tiếp cận đến những sản phẩm gợi ý phù hợp với họ Đồng thời thông qua các tương tác của nhiều khách hàng khác nhau ta có thể lưu trữ được những sản phẩm phổ biến, có lượt xem nhiều nhất và từ đó gợi ý cho người dùng mới

2.1.4 Một số website có tích hợp phân hệ gợi ý và cơ chế

Các phân hệ gợi ý đã và đang được nghiên cứu, ứng dụng một cách mạnh mẽ và mang lại lợi ích cho cả người cung cấp dịch vụ và người sử dụng dịch vụ Hầu hết các trang thương mại điện tử lớn trên thế giới như Amazon, YouTube, Facebook, Netflix, Spotify, Google, … đều sử dụng các phân hệ gợi ý trong website Ở Việt Nam cũng có những trang thương mại điện tử đã được tích hợp phân hệ gợi ý như: FPTShop, Thế Giới Di Động, Shopee

Việc tích hợp phân hệ gợi ý trong website giúp nâng cao trải nghiệm cho khách hàng, nâng cao chất lượng dịch vụ và thu lại lợi nhuận tốt hơn Điển hình như: ở trang Netflix, 2/3 số phim được xem đều là phim mà hệ thống sử dụng phân hệ gợi ý để đề

Trang 21

xuất cho người dùng Hay là ở trang Amazon, 35% doanh thu từ những sản phẩm bán ra đều là những sản phẩm gợi ý cho người dùng bằng phân hệ gợi ý, …

Các phân hệ gợi ý hoạt động dựa trên cơ sở là các thuật toán machine learning dựa trên các thông tin về lịch sử người dùng Khi người dùng tương tác với website, website sẽ thu thập các thông tin tương tác của người dùng như: những sản phẩm được xem nhiều nhất, người dùng cụ thể quan tâm đến những sản phẩm cụ thể nào và so sánh với những người dùng khác để từ đó đưa ra những sản phẩm gợi ý phù hợp cho người dùng dựa trên việc so sánh sở thích của những người dùng khác nhau Hoặc khi người dùng lựa chọn một sản phẩm cụ thể nào đó, hệ thống sẽ xem xét và so sánh sự tương quan về các thông tin đặc trưng của sản phẩm để rồi đưa ra những sản phẩm gần gũi nhất đối với sản phẩm mà người dùng đã xem

2.2 Công nghệ sử dụng 2.2.1 Facebook Chatbot

Facebook là một phương tiện truyền thông xã hội và dịch vụ mạng xã hội trực tuyến thành lập vào năm 2004 của Mỹ có trụ sở tại Menlo Park, California Facebook được Mark Zuckerberg cùng với các sinh viên Đại Học Harvard và các bạn cùng phòng là Eduardo Saverin, Andrew McCollum, Dustin Moskovitz, Chris Hughes sáng lập Đây được coi là một trong những công ty công nghệ Big Four cùng với Amazon, Apple và Google

Trong luận văn này, ta sẽ sử dụng chatbot messenger của facebook và nhúng plugin vào website thương mại điện tử của chúng ta và tích hợp các giải thuật của phân hệ gợi ý (recommendation system) và các giải thuật học máy(machine learning) khác vào để thực hiện trả lời câu hỏi của khách hàng khi khách hàng đặt câu hỏi trong chatbot Khi một người gửi tin nhắn trên chatbot của facebook Máy chủ của facebook gửi webhook đến URL của máy chủ máy chủ doanh nghiệp, nơi lưu trữ ứng dụng nhắn tin Ứng dụng này có thể trả lời người đó trên messenger thông qua các API gửi Bằng cách này, ta có thể tạo dựng ra các cuộc trò chuyện một cách tự động giữa người dùng và chatbot khi người dùng gửi tin nhắn tới chatbot

Hình 2.1: Sơ đồ tương tác giữa người dùng với chatbot [1]

Trang 22

Mỗi lần một người bắt đầu một cuộc trò chuyện với chatbot của chúng ta Nền tảng messenger sẽ gán cho họ một ID người dùng trong trang, thường được gọi là PSID Mỗi một người sẽ có PSID khác nhau đối với mỗi bot messenger mà họ trò chuyện Điều này đảm bảo rằng chỉ những bot mà người dùng chọn bắt đầu cuộc trò chuyện mới có thể gửi tin nhắn cho họ

Mỗi khi chatbot phản hồi tin nhắn cho một ai đó, ta sẽ thêm PSID của họ vào thuộc tính recipient.id của yêu cầu để xác định ai sẽ nhận tin nhắn Tương tự, khi một người dùng thực hiện hành động cho một cuộc trò chuyện, chẳng hạn như nhấn vào một nút nào đó hoặc gửi tin nhắn, PSID của họ sẽ được thêm vào thuộc tính sender.id trên sự kiện webhook để chatbot của chúng ta có thể xác định được ai đã thực hiện hành động đó

Nền tảng messenger của facebook cung cấp các REST API hỗ trợ chúng ta xây dựng một chatbot có khả năng tương tác với người dùng một cách tự động và một số các tính năng khác trên messenger

Trong chatbot của chúng ta, ta sẽ thực hiện nhận tin nhắn của người dùng trong messenger thông qua việc gọi các API được xây dựng sẵn bởi facebook, sau đó thông qua các thuật toán machine learning để xác định dạng của tin nhắn người gửi gửi tới(lời chào hay là tìm kiếm sản phẩm) để từ đó đưa ra các phản hồi phù hợp như là trả ra những sản phẩm mà người dùng đang tìm kiếm cũng thông qua việc gọi API của facebook

Trong chatbot của chúng ta, mỗi khi người gửi đặt câu hỏi liên quan đến tìm mua sản phẩm, ta sẽ gợi ý ra các sản phẩm kèm theo các nút bấm cho phép người dùng có thể đặt mua sản phẩm trên chatbot để thêm sản phẩm vào giỏ hàng, sau đó điền thông tin cá nhân để tiến hành đặt hàng hoặc chuyển sang trang đặt hàng để xác nhận đặt hàng trên chatbot

Để xây dựng được chatbot trên website của chúng ta, trước tiên chúng ta cần cài đặt một ứng dụng facebook (facebook app) Ứng dụng facebook này là nơi mà liên kết trang facebook của chúng ta tới webhook, chúng ta sẽ cấu hình các cài đặt để sử dụng các công cụ trong chatbot messenger, sinh ra access token để tương tác với facebook messenger thông qua API và chọn ra các sự kiện gửi tới webhook

Bên cạnh đó chúng ta cần tạo ra một trang facebook Trang facebook này là nơi mà khi người dùng gửi tin nhắn tới chatbot, tin nhắn sẽ được nhận và phản hồi lại cho người dùng Chúng ta cũng cần phải có một webhook URL, đây là nơi để tiếp nhận các sự kiện, các hành động diễn ra trong cuộc trò chuyện với chatbot của chúng ta

Các bước thiết lập webhook:

• Thêm nền tàng messenger vào ứng dụng facebook • Cấu hình webhook cho ứng dụng

Trang 23

• Chọn trang mà ta đã tạo và muốn đăng ký ứng dụng facebook để nhận các sự kiện webhook Sau khi đăng ký thành công, messenger chatbot của chúng ta có thể nhận được các sự kiện khi người dùng nhắn tin tới

Một khi thiết lập ứng dụng thành công, ta có thể bắt đầu xây dựng một chatbot để phản hồi tin nhắn của người dùng một cách tự động khi người dùng gửi tin nhắn đến

2.2.2 Python, sklearn 2.2.2.1 Ngôn ngữ Python

Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, thông dịch, mạnh mẽ, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991

Python là một ngôn ngữ lập trình mã nguồn mở, có cấu trúc dữ liệu cấp cao mạnh mẽ, hình thức cũng như cách tiếp cận đơn giản nhưng hiệu quả đối với đa số lập trình viên

Python có cú pháp rõ ràng, sáng sủa, dễ hiểu, cách gõ linh động Vì vậy, python trở thành một ngôn ngữ lý tưởng để viết kịch bản và phát ứng dụng trong nhiều lĩnh vực, đa nền tảng

Python sử dụng các từ khoá tiếng Anh gần gũi với lập trình viên

Python có hỗ trợ lập trình hàm, lập trình hướng cấu trúc cũng như lập trình hướng đối tượng

Python có thể được sử dụng như là một ngôn ngữ kịch bạn hoặc có thể biên dịch sang byte-code để xây dựng các ứng dụng lớn hơn

Mọi thứ trong python đều là hướng đối tượng Lập trình hướng đối tượng giúp giải quyết các vấn đề phức tạp một cách trực quan, ta có thể chia những vấn đề phức tạp một cách nhỏ hơn bằng cách tạo ra các đối tượng

Các chương trình Python có thể di chuyển từ nền tảng này sang nền tảng khác và chạy nó mà không có bất kỳ thay đổi nào, chạy liền mạch trên hầu hết tất cả các nền tảng như Windows, MacOS, Linux

Python có khả năng mở rộng và có thể nhúng Ta có thể dễ dàng kết hợp với các phần được viết bằng các ngôn ngữ khác như C, C++

Python có một số lượng lớn thư viện tiêu chuẩn giúp công việc lập trình trở nên dễ dàng, thuận tiện hơn

2.2.2.2 Ứng dụng của Python

Ứng dụng trong lập trình web: trong Python ta có thể tạo web app có khả năng mở rộng được bằng bằng sử dụng framework và CMS được tích hợp trong Python

Trang 24

Những nền tảng phổ biến để tạo web app là: Django, Flask, Pyramid, Plone, Django CMS Các trang web nổi tiếng như Mozilla, Reddit, Instagram đều được viết bằng Python

Ứng dụng trong khoa học dữ liệu (data science), học máy (machine learning), khai phá dữ liệu (data mining) và học sâu (deep learning) Một số thư viện phổ biến như:

• NumPy: dùng trong xử lý mảng và ma trận lớn đa chiều

• SciPy: được sử dụng phổ biến trong machine learning vì có chưa các module khác nhau để tối ưu hoa, đại số tuyến tính, tích hợp và thống kê

• Scikit-learn: là một trong những thư viện machine learning phổ biến nhất cho các thuật toán machine learning cổ điển Hỗ trợ hầu hết các thuật toán học giám sát và học không giám sát

• Theano: được sử dụng phổ biến để xác định, đánh giá và tối ưu hoá các biểu thức toán học liện quan đến mảng nhiều chiều một cách hiệu quả

• TensorFlow: được sử dụng phổ biến trong lĩnh vực nghiên cứu và ứng dụng học sâu (deep learning)

• Keras: đây là một API mạng neuron cấp cao có khả năng chạy trên TensorFlow, CNTK hoặc Theano Nó có thể chạy liên tục trên cả CPU và GPU Cho phép tạo mẫu một cách dễ dàng, nhanh chóng

• PyTorch: thư viện mã nguồn mở được triển khai bằng C với trình bao bọc trong Lua, có nhiều lựa chọn về công cụ và thư viện hỗ trợ Thị giác máy tính, xử lý ngôn ngữ tự nhiên, …

• Pandas được sử dụng trong phân tích dữ liệu

Ngoài ra còn có các thư viện khác như: EarchPy được sử dụng cho khoa học trái đất, AstroPy được sử dụng cho thiên văn học

Trong luận văn này, ngôn ngữ python được sử dụng để chạy các giải thuật recommendation system để gợi ý ra các sản phẩm cho người dùng dựa trên lịch sử tương tác của người dùng với trang web cũng như những sản phẩm liên quan

Trang 25

MySQL đang trở nên phổ biến vì nhiều lý do tốt:

• MySQL rất đơn giản, dễ sử dụng, có thể hoạt động tốt trên nhiều hệ điều hành, cung cấp các tiện ích mạnh mẽ

• MySQL sở hữu khá nhiều tính năng bảo mật, bao gồm các loại hình bảo mật cấp cao

• MySQL được phát hành theo giấy phép nguồn mở, cho phép các lập trình viên sửa đổi phần mềm MySQL để phù hợp với môi trường cụ thể của riêng họ • MySQL là một chương trình rất mạnh, xử lý một tập hợp lớn các chức năng của

các gói cơ sở dữ liệu mạnh mẽ và đắt tiền nhất

• MySQL sử dụng một dạng chuẩn của ngôn ngữ SQL nổi tiếng

• MySQL hoạt động được trên nhiều hệ điều hành với nhiều ngôn ngữ như NodeJS, PHP, Java, …

• MySQL hỗ trợ cơ sở dữ liệu lớn, lên tới 50 triệu hàng hoặc nhiều hơn một bảng • Tốc độ hoạt động của MySQL nhanh hơn các phần mềm khác nhờ vào các tiêu

chuẩn được tích hợp sẵn

• MySQL cho phép người dùng khôi phục dữ liệu, tránh khỏi ảnh hưởng của các sự cố

2.2.4 HTML, Pug, CSS, Javascript, Bootstrap

HTML(viết tắt của Hypertext Markup Language) là một ngôn ngữ đánh dấu siêu văn bản, được sử dụng để định dạng và hiển thị văn bản trên trình duyệt tới người sử dụng

Đặc điểm của HMTL:

• Là một ngôn ngữ rất dễ dàng và đơn giản

• Rất dễ dàng để trình bày hiệu quả với HTML vì nó có nhiều thẻ định dạng • Có thể sử dụng một cách linh hoạt để thiết kế trang web cùng với văn bản • Có thể liên kết tới các trang web khác

• HTML là một nền tảng độc lập vì nó có thể hiển thị trên bất kỳ nền tảng nào khác như Windows, Linux, MacOS

• Ta có thể thêm hình ảnh, video, âm thanh vào các trang web khiến nó hấp dẫn và dễ tương tác hơn

HTML là một ngôn ngữ định dạng văn bản tĩnh cho một website và ta khó có thể thay đổi nó một cách linh hoạt khi hiển thị thông tin ra một website Chính vì vậy, ta cần sử dụng một template engine có thể biên dịch thành mã HTML để sinh ra các văn bản dạng HTML hiển thị lên trình duyệt cho người dùng Cụ thể ta sẽ sử dụng template engine pug

CSS(viết tắt của Cascading Style Sheets) là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML)

Trang 26

CSS được phát triển bởi W3C(World Wide Web Consortium) vào năm 1996 Phương thức hoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn, vùng chọn có thể là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là nó sẽ áp dụng các thuộc tính cần thay đổi lên vùng chọn đó

Javascript là một ngôn ngữ lập trình website, được tích hợp và nhúng trong HTML, giúp cho website có thể hoạt động linh hoạt hơn Javascript là dạng ngôn ngữ theo kịch bản, được hình thành dựa trên chính đối tượng phát triển có sẵn hoặc tự định nghĩa Javascript cho phép ta kiểm soát các hành vi của trang web tốt hơn so với việc chỉ sử dụng mỗi HTML

Nhiệm vụ của Javascript là xử lý các đối tượng HTML trên trình duyệt Nó có thể can thiệp với các hành động như thêm/xoá/sửa các thuộc tính CSS và các thẻ HTML một cách dễ dàng Nói cách khác, Javascript là một ngôn ngữ lập trình trên trình duyệt phía client

Ưu điểm của Javascript:

• Javascript giúp thao tác với người dùng ở phía cliendt và tách biệt giữa các client Khi 2 người đang truy cập vào 2 trình duyệt khác nhau thì cả hai đều có những phiên xử lý javascript khác nhau, không ảnh hưởng lẫn nhau

• Javascript có thể hoạt động trên nhiều nền tảng khác nhau như Windows, MacOS và các hệ điều hành trên điện thoại

Bootstrap là một framework front-end bao gồm các HTML, CSS và Javascript template dùng để phát triển website chuẩn responsive

Bootstrap cho phép quá trình thiết kế website diễn ra nhanh chóng và dễ dàng hơn dựa trên những thanh tố cơ bản sẵn có như typography, forms, buttons, tables, grids, navigation, image corousels, …

Bootstrap là một trong những framework được sử dụng nhiều nhất trên thế giới để xây dựng nên một website Bootstrap đã xây dựng nên một chuẩn riêng và rất được người dùng ưa chuộng

Ưu điểm của bootstrap: • Dễ sử dụng

• Responsive: Bootstrap xây dựng sẵn responsive CSS trên các thiết bị di động, máy tính bảng, desktop Tính năng này giúp cho người dùng tiết kiệm được rất nhiều thời gian trong việc tạo một website thân thiện với các thiết bị điện tử, thiết bị cầm tay

• Tương thích với hầu hết tất cả các trình duyệt

Trang 27

Trong luận văn này, ta sẽ sử dụng bootstrap 4 để xây dựng nên một responsive website bán sản phẩm công nghệ

2.2.5 NodeJS

NodeJS là một nền tảng phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng

NodeJS là một môi trường máy chủ mã nguồn mở, chạy được trên nhiều nền tảng(Windows, Linux, MacOS, …)

NodeJS sử dụng Javascript để chạy trên môi trường server NodeJS là một ngôn ngữ lập trình mã nguồn mở

NodeJS cung cấp các thư viện phong phú ở dạng Javascript Modulte khác nhau giúp đơn giản hoá việc lập trình và giảm thời gian ở mức thấp nhất

Đặc tính của NodeJS:

• NodeJS xử lý giao tiếp từ client tới máy chủ theo thời gian thực

• Tất cả các API của NodeJS đều bất đồng bộ, chủ yếu dựa trên nền của NodeJS Server và chờ đợi server trả dữ liệu về Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của NodeJS giúp máy chủ có được một phản ứng từ các cuộc gọi API trước (thời gian thực)

• NodeJS được xây dựng vào nền tảng V8 Javascript Engine nên việc thực thi chương trình rất nhanh

• NodeJS là một ngôn ngữ lập trình đơn luồng nhưng khả năng mở rộng cao

2.2.6 ExpressJS

ExpressJS là một trong những framework phổ biến dùng để xây dựng API và website phổ biến nhất của NodeJS Nó được sử dụng rộng rãi trong hầu hết các dự án web

ExpressJS cung cấp các công cụ đơn giản nhất giúp ta có thể xây dựng website hoặc ứng dụng web(web app) cũng như back-end của hệ thống

Ưu điểm của ExpressJS:

• Có nhiều tính năng hỗ trợ tất cả những gì ta cần trong việc xây dựng web và API Ví dụ như middlewares (hàm xử lý trung gian), giúp đơn giản hoá khả năng điều hướng của ứng dụng, kèm theo tích hợp hỗ trợ rất nhiều template engine, giúp ta có thể tương tác dễ dàng hơn với HTML

• Quản lý các route một cách dễ dàng

• Cung cấp một nền tảng phát triển cho các API

Trang 28

• Hỗ trợ nhiều thư viện và plugin

• Bảo mật và an toàn hơn so với việc không sử dụng framework • Hỗ trợ cộng đồng

2.2.7 Paypal

2.2.7.1 Mô hình thanh toán Paypal

Paypal là một hệ thống thanh toán lớn trên thế giới Paypal cung cấp một giao thức truyền nhận dữ liệu mang tính bảo mật, an toàn, tin cậy và thuận tiện, đó cũng chính là lý do vì nhiều hệ thống thương mại điện tử tin tưởng sử dụng dịch vụ thanh toán thông qua Paypal

Đầu tiên, chúng ta tìm hiểu về mô hình thanh toán thông qua Paypal

Hình 2.2: sơ đồ mô hình thanh toán Paypal [9]

Mô hình thanh toán thông qua Paypal trên được mô tả như sau:

• Một người dùng đầu cuối với vai trò là khách hàng của hệ thống, sử dụng trình duyệt thực hiện mua-bán trên hệ thống Sau khi chọn phương thức thanh toán Paypal, người dùng sẽ được chuyển đến trang xác thực giao dịch của Paypal Cuối cùng, khi hoàn thành giao dịch trên Paypal, người dùng được chuyển về lại giao diện website của chúng ta

• Trong khi đó, máy chủ Paypal sẽ ngầm gửi đi một IPN message đến IPN listener Script của hệ thống chúng ta

• IPN listener sẽ kiểm tra xác thực thông tin IPN gửi từ Paypal và tiến hành cập nhật cơ sở dữ liệu khi xác thực thành công

Ý tưởng chung của mô hình này là tách biệt phần thao tác người dùng và những xử lý kết nối truyền tải thông tin của hệ thống với Paypal Để thực hiện, khi bắt đầu một

Trang 29

phiên giao dịch, hệ thống của chúng ta sẽ gửi đến Paypal một request với định dạng theo Paypal API qui định, trong đó có hai thông số bắt buộc là:

• Return URL: Địa chỉ người dùng sẽ được trả về khi hoàn thành giao dịch trên Paypal

• IPN Notify URL: Địa chỉ để Paypal gửi IPN message đến IPN listener của hệ thống chúng ta

2.2.7.2 Paypal IPN

Ở đây, chúng ta tập trung đến dịch vụ IPN (Paypal's Instant Payment Notification service) và giao thức chứng thực của nó IPN là một tích hợp kết nối giữa máy chủ Paypal và máy chủ hệ thống của chúng ta Nó tách biệt hoàn toàn với những hành động của người dùng cuối khi thao tác thanh toán trên Paypal cũng như Paypal API response và trình duyệt người dùng Quá trình này xảy ra không đồng bộ với hành động trả về hệ thống (nó có thể xảy ra trước hoặc sau)

Giao thức chứng thực IPN bao gồm ba bước:

• Paypal gửi một message IPN đến IPN listener của chúng ta với nội dung mà chúng ta đã mã hóa gửi đi

• IPN listener sẽ gửi lại message này đến Paypal Nội dung và cách mã hóa không thay đổi so với message gốc

• Paypal kiểm tra message gửi đến có trùng với message gốc và gửi về một từ đơn verified/invalid Hành động này nhằm xác thực để đảm bảo nội dung mà message gửi từ Paypal đến hệ thống của chúng ta không bị thay đổi hay giả mạo

Để tránh những lỗi xảy ra do đứt gãy trên đường truyền mạng, trong trường hợp không nhận được message hồi đáp hoặc thông tin của message không trùng với message gốc được gửi đi, Paypal sẽ tiếp tục gửi lại IPN message

IPN được thiết kế với ba đặc tính: tin cậy, bảo mật và bất đồng bộ Điểm khác biệt lớn với mô hình truyền thống là trong mô hình này Paypal sẽ chính là nơi gọi dịch vụ, IPN sẽ được gọi ngầm mà không thông qua trình duyệt người dùng Bên cạnh đó, mọi thông tin dữ liệu truyền nhận giữa hệ thống và Paypal đều được mã hóa và xác thực theo Paypal API

Paypal cung cấp cho người lập trình những API và hướng dẫn chi tiết để hiện thực IPN listener cho hệ thống cũng như một hệ thống sandbox để kiểm thử chức năng hệ thống trước khi đưa vào triển khai thanh toán thực tế

Trang 30

CHƯƠNG 3: PHÂN TÍCH YÊU CẦU 3.1 Công nghệ sử dụng

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

Website có giao diện đẹp

Website cần chạy được trên nhiều nền tảng khác nhau Có thể responsive trên nhiều thiết bị khác nhau như điện thoại, máy tính bảng, desktop, …

Thiết kế sao cho thuận tiện, cấu trúc rõ ràng, dễ dàng phát triển hệ thống sau này Đầy đủ các chức năng cần thiết cho người dùng

Bảo mật thông tin người dùng Người dùng chỉ được truy cập đến những trang, phạm vi mà mình được cấp quyền

3.1.2 Yêu cầu chức năng 3.1.2.1 Tổng quát

Website cần tích hợp phân hệ gợi ý để gợi ý sản phẩm cho người dùng

Website cần tích hợp chatbot để người dùng có thể trò chuyện, đặt mua hàng trên chatbot Chatbot cần tích hợp giải thuật học máy để phân biệt kiểu của tin nhắn người dùng gửi tới cũng như phân hệ gợi ý để gợi ý ra các sản phẩm khi người dùng hỏi mua

hàng

Cho phép người dùng đặt hàng trên chatbot

Thanh toán đơn hàng thông qua công cụ thanh toán online Paypal

Ta sẽ đặt ra các yêu cầu chức năng cho các người dùng khác nhau như: quản trị

viên, nhân viên, người dùng, người dùng với tư cách khách(khách)

3.1.2.2 Yêu cầu chức năng của quản trị viên

Quản trị viên có quyền quản lý tất cả mọi thứ trên hệ thống Có quyền thực hiện các chức năng của nhân viên như đăng nhập vào tài khoản hệ thống để tương tác mua hàng trên trang chủ, xem sản phẩm, xác nhận đơn hàng của khách hàng, …

Các chức năng chính của quản trị viên:

• Đăng nhập: quản trị viên cần phải đăng nhập bằng email và password hợp lệ • Thêm sản phẩm: quản trị viên là người tạo mới một sản phẩm trên trang web để

người dùng có thể đặt mua, yêu cầu quản trị viên phải đăng nhập để thực hiện thêm sản phẩm

• Xem sản phẩm: quản trị viên là có quyền quản lý tất cả các sản phẩm mà mình đã thêm vào hệ thống, cần phải đăng nhập để thực hiện tác vụ này

Trang 31

• Chỉnh sửa sản phẩm: quản trị viên có thể điều chỉnh lại thông tin sản phẩm cho phù hợp và chính xác hơn

• Xem thông tin đơn hàng: quản trị viên có quyền quản lý, xem toàn bộ thông tin đơn hàng mà người dùng đã đặt mua trên trang quản trị viên

• Xem thông tin người dùng: quản lý thông tin người dùng thông qua trang quản trị viên, quản trị viên còn có quyền xoá thông tin người dùng đã đăng ký

• Xem thông tin nhân viên: quản lý thông tin nhân viên thông qua trang quản trị viên, quản trị viên còn có quyền xoá thông tin tài khoản của nhân viên đã được đăng ký

• Tạo tài khoản nhân viên: chỉ có quản trị viên mới có chức năng tạo tài khoản cho nhân viên

Ngoài ra quản trị viên còn có thể thực hiện các chức năng riêng dành cho nhân viên(tương tác trên trang nhân viên) cũng như người dùng thông thường và người dùng với tư cách khách(tương tác trên trang người dùng)

3.1.2.3 Yêu cầu chức năng của nhân viên

Đăng nhập: nhân viên cần phải đăng nhập vào tài khoản nhân viên do admin tạo Nhân viên sẽ đăng nhập thông qua email và password do admin tạo và cấp cho

Xem thông tin đơn hàng: nhân viên có quyền kiểm tra thông tin đơn hàng mà khách hàng đặt hàng

Xác nhận thông tin đơn hàng: khi giao hàng cho khách hàng thành công, nhân viên sẽ chuyển đổi trạng thái của đơn hàng sang trạng thái đã giao hàng Nhân viên cũng có quyền huỷ bỏ đơn hàng khi khách hàng không mua hàng nữa

Ngoài ra, nhân viên còn có thể thực hiện mọi chức năng của người dùng và người dùng khách

3.1.2.4 Yêu cầu chức năng của người dùng

Đăng nhập: người dùng đăng nhập vào tài khoản do mình tạo ra thông qua việc nhập email và password

Xem chi tiết sản phẩm: nhấp vào nút xem chi tiết sản phẩm của sản phẩm mà họ muốn xem

Xem danh sách các sản phẩm được hệ thống gợi ý theo từng người dùng: hệ thống sẽ dựa vào lịch sử tương tác của người dùng để thực hiện gợi ý sản phẩm cho người dùng

Thêm sản phẩm vào giỏ hàng: người dùng có quyền thêm sản phẩm vào giỏ hàng trên trang hiển thị danh sách các sản phẩm hoặc trang chi tiết sản phẩm

Trang 32

Đặt hàng trên hệ thống: yêu cầu người dùng phải đăng nhập bằng email và password, khi đó hệ thống sẽ lấy thông tin của người dùng để tiến hành đặt hàng

Đặt hàng trên chatbot

Quên mật khẩu: cho phép người dùng thiết lập lại mật khẩu trong trường hợp quên mật khẩu, hệ thống gửi mã OTP vào email người dùng để hỗ trợ người dùng thiết lập lại mật khẩu

Thanh toán đơn hàng khi đặt trên hệ thống: để thanh toán đơn hàng, yêu cầu người dùng phải đăng nhập để thực hiện thanh toán

3.1.2.5 Yêu cầu chức năng của người dùng với tư cách khách

Xem chi tiết sản phẩm: nhấp vào nút xem chi tiết sản phẩm của sản phẩm mà họ muốn xem

Thêm sản phẩm vào giỏ hàng: người dùng có quyền thêm sản phẩm vào giỏ hàng trên trang hiển thị danh sách các sản phẩm hoặc trang chi tiết sản phẩm

Tạo tài khoản: người dùng khách có thể tạo tài khoản thành viên để có thể đặt mua hàng cũng như được hệ thống gợi ý các sản phẩm dựa trên lịch sử tương tác

Lược đồ Use-Case tổng quát cho tất cả người truy cập vào website: • Actor: Quản trị viên, nhân viên, người dùng, khách

• Tổng số use-case: 13 • Trong đó:

o Khách là những người dùng không đăng nhập vào hệ thống, những người dùng này sẽ có thể thao tác được với một số chức năng cụ thể, và bị giới hạn một vài chức năng so với các người dùng khác

o Người dùng là những người đã đăng ký tài khoản thành viên và có thể trải nghiệm nhiều chức năng hơn so với những người dùng khách

o Nhân viên là những người được cấp tài khoản dành cho nhân viên, những người dùng này có thể thực hiện được mọi chức năng của những người dùng thông thường và một số chức năng khác của nhân viên

Trang 33

o Quản trị viên là người quản lý được mọi thông tin trên hệ thống, có đầy đủ mọi chức năng của những người sử dụng còn loại.

Hình 3.1: lược đồ Use-Case tổng quát cho tất cả các người dùng

Lược đồ Use-Case chi tiết cho người dùng khách: • Actor: khách

• Tổng số Use-Case: 5

Hình 3.2: lược đồ Use-Case chi tiết cho người xem với tư cách khách

Trang 34

Lược đồ Use-Case chi tiết cho người dùng: • Actor: người dùng

• Tổng số Use-Case: 12

Hình 3.3: lược đồ Use-Case chi tiết cho người dùng

Trang 35

Lược đồ use-case chi tiết cho nhân viên: • Actor: nhân viên

• Tổng số use-case: 15

Hình 3.4: lược đồ Use-Case chi tiết cho nhân viên

Lược đồ use-case chi tiết cho quản trị viên: • Actor: quản trị viên

• Tổng số use-case: 26

Trang 36

Hình 3.5: lược đồ use-case chi tiết cho quản trị viên

Trang 37

3.3 Đặc tả Use-Case cho các chức năng chính

Trong phần này chúng ta sẽ đặc tả Use-Case cho một số chức năng quan trọng chính trên website, các chức năng khác sẽ được đặc tả ở phần phụ lục

• Chức năng gợi ý sản phẩm cho từng người dùng:

Name Gợi ý sản phẩm theo từng người dùng

Summary Hệ thống sẽ sử dụng phân hệ gợi ý dựa trên lịch sử tương tác của người dùng để đưa ra gợi ý riêng cho mỗi người dùng Actors Người dùng

Basic course of Event - Người dùng cần đăng nhập bằng email và password - Hệ thống sẽ đưa ra những sản phẩm gợi ý khác nhau

ứng với mỗi người dùng khác nhau

Exception paths Hệ thống không gợi ý ra được những sản phẩm gợi ý riêng cho người dùng

Nguyên nhân là do người dùng mới tạo tài khoản nên chưa có lịch sử tương tác nên không có cơ sở để gợi ý

Preconditions Bắt buộc người dùng phải đăng nhập và trước đó phải tương tác với các sản phẩm của hệ thống

Post conditions Hệ thống sẽ gợi ý ra những sản phẩm riêng biệt cho mỗi người dùng

Business rules

Bảng đặc tả 3.1: gợi ý sản phẩm theo từng người dùng

• Chức năng gợi ý các sản phẩm liên quan, kèm theo 1 sản phẩm cụ thể nào

đó:

Name Gợi ý sản phẩm kèm theo sản phẩm cụ thể nào đó

Summary Hệ thống sẽ sử dụng phân hệ gợi ý để gợi ý top 4 sản phẩm gần gũi nhất với sản phẩm đang xét

Bảng đặc tả 3.2: gợi ý kèm theo với từng sản phẩm cụ thể

Trang 38

• Chức năng tìm kiếm sản phẩm dựa trên từ khoá trên thanh tìm kiếm:

Name Tìm kiếm sản phẩm dựa trên từ khoá

Summary Khi người dùng nhập vào từ khoá tìm kiếm, hệ thống sẽ dùng phân hệ gợi ý để tìm ra các sản phẩm gần gũi nhất để trả về top 8 sản phẩm cho người dùng

Preconditions Người dùng nhập vào từ khoá cần tìm kiếm trên thanh tìm kiếm

Post conditions Hệ thống sẽ trả về những sản phẩm gần gũi nhất với từ khoá mà ta tìm kiếm

Business rules

Bảng đặc tả 3.3: chức năng tìm kiếm sản phẩm trên thanh tìm kiếm

• Chức năng đặt hàng trên trang web hệ thống:

Summary Sau khi thêm sản phẩm vào giỏ hàng, ta sẽ tiến hành đặt hàng Actors Người dùng, nhân viên

Basic course of Event - Truy cập vào trang chủ

- Nhấn vào nút giỏ hàng trên thanh tìm kiếm

- Nhấn vào nút đặt hàng trong popup danh sách đơn hàng

- Chuyển tới trang đặt hàng hoặc form đăng nhập để mua hàng(nếu chưa đăng nhập)

- Lựa chọn phương thức thanh toán - Nhấn vào nút tiến hành đặt hàng Exception paths Không vào được trang đặt hàng

- Thông tin đăng nhập sai - Hệ thống bảo trì tạm thời

Preconditions Người dùng bắt buộc phải đăng nhập để có thể đặt hàng Post conditions Hiển thị thông báo đặt hàng thành công nếu thanh toán bằng

tiền mặt hoặc chuyển tới trang thanh toán bằng paypal để người dùng đăng nhập và thanh toán

Business rules

Bảng đặc tả 3.4: chức năng đặt hàng trên hệ thống

Trang 39

• Chức năng thanh toán bằng paypal:

Name Thanh toán bằng paypal

Summary Khi người dùng lựa chọn thanh toán bằng paypal, người dùng cần đăng nhập vào tài khoản paypal để tiến hành thanh toán

Actors Người dùng, nhân viên

Basic course of Event - Truy cập vào trang chủ - Thêm sản phẩm vào giỏ hàng

- Nhấn nút giỏ hàng trên thanh tiêu đề - Nhấn vào nút đặt hàng

- Hiển thị form đăng nhập để mua hàng(nếu chưa đăng nhập) hoặc trang thanh toán

- Chọn phương thức thanh toán bằng paypal - Nhấn vào nút Tiến hành đặt hàng

- Đăng nhập vào paypal để tiến hành thanh toán - Hiển thị trang đặt hàng và thanh toán thành công Exception paths Thanh toán không thành công

- Hệ thống bảo trì tạm thời

- Paypal tạm thời không hoạt động

- Chưa có tài khoản hệ thống hoặc paypal Preconditions Người dùng phải có tài khoản hệ thống và paypal Post conditions Hiển thị thông báo đặt hàng thành công

Business rules

Bảng đặc tả 3.5: chức năng thanh toán paypal

• Chức năng trò chuyện trên chatbot:

Name Trò chuyện với chatbot

Summary Hệ thống có tích hợp chatbot cho phép người dùng có thể trò chuyện cũng như tìm mua sản phẩm trên chatbot

Actors Người dùng, khách, nhân viên, quản trị viên, … Basic course of Event - Truy cập vào trang chủ

- Nhấn vào biểu tượng messenger chatbot ở góc trái bên dưới của trang web

- Nhấn vào nút Tiếp tục với vai trò khách trong popup chatbot để mở khung chat

- Nhập tin nhắn trò chuyện với chatbot

- Chatbot phản hồi tin nhắn mỗi khi ta gửi tin nhắn đến Exception paths Chatbot không phản hồi tin nhắn:

- Hệ thống bảo trì tạm thời

- Chatbot messenger bị lỗi bảo trì tạm thời

Preconditions Bất kỳ người dùng nào cũng có thể trò chuyện với chatbot

Trang 40

Post conditions Chatbot sẽ trả về tin nhắn lời chào hoặc danh sách sản phẩm trả về tuỳ vào ngữ cảnh tin nhắn người dùng gửi tới

Business rules

Bảng đặc tả 3.6: chức năng trò chuyện với chatbot

• Chức năng đặt hàng trên chatbot:

Name Đặt hàng trên chatbot

Summary Khi trò chuyện với chatbot, nếu người dùng hỏi mua sản phẩm thì chatbot sẽ phản hồi cho người dùng danh sách sản phẩm và hỗ trợ người dùng đặt hàng

Actors Người dùng, khách, nhân viên, quản trị viên, … Basic course of Event - Truy cập vào trang chủ

- Nhấn vào biểu tượng messenger chatbot ở góc trái bên dưới của trang web

- Nhấn vào nút Tiếp tục với vai trò khách trong popup chatbot để mở khung chat

- Nhập tin nhắn tìm kiếm sản phẩm nào đó

- Hệ thống sẽ gửi lại danh sách các sản phẩm gần gũi nhất với từ khoá tin nhắn ta vừa gửi để ta lựa chọn và đặt hàng

- Sau khi tìm được sản phẩm phù hợp, nhấn vào nút Chọn mua sản phẩm để thêm vào giỏ hàng, ta có thể thêm nhiều sản phẩm khác nhau vào giỏ hàng

- Nhấn vào nút chuyển tới trang đặt hàng để tiến hành đặt hàng

- Ta có thể điều chỉnh số lượng sản phẩm trong chatbot - Ta cần điền thông tin đặt hàng(tên, email, số điện thoại, địa chỉ) nếu chưa đăng nhập vào tài khoản hệ thống

- Nhấn vào nút tiến hành đặt hàng Exception paths Chatbot không phản hồi tin nhắn:

- Hệ thống bảo trì tạm thời

- Chatbot messenger bị lỗi bảo trì tạm thời

Preconditions Bất kỳ người dùng nào cũng có thể đặt hàng trên chatbot mà không nhất thiết phải đăng nhập vào tài khoản hệ thống Post conditions Đơn hàng đã được khởi tạo thành công

Business rules

Bảng đặc tả 3.7: chức năng đặt hàng trên chatbot

Ngày đăng: 31/07/2024, 10:20

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

TÀI LIỆU LIÊN QUAN

w