Tải bản đầy đủ (.docx) (75 trang)

XÂY DỰNG hệ THỐNG THƯƠNG mại điện tử hỗ TRỢ KINH DOANH mặt HÀNG nội THẤT NHÀ ở kết hợp tư vấn bán HÀNG BẰNG CHATBOT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (799.04 KB, 75 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

LÊ NGỌC CHÂU

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

XÂY DỰNG HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ HỖ
TRỢ KINH DOANH MẶT HÀNG NỘI THẤT NHÀ Ở
KẾT HỢP TƯ VẤN BÁN HÀNG BẰNG CHATBOT
Building an ecommerce system to support purchasing and selling
furniture combined with sales consulting by chatbot

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM


TP. HỒ CHÍ MINH, 2021

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

LÊ NGỌC CHÂU - 16520109

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

XÂY DỰNG HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ HỖ
TRỢ KINH DOANH MẶT HÀNG NỘI THẤT NHÀ Ở


KẾT HỢP TƯ VẤN BÁN HÀNG BẰNG CHATBOT
Building an ecommerce system to support purchasing and selling
furniture combined with sales consulting by chatbot

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
TS. NGUYỄN HÀ GIANG
ThS. NGUYỄN THỊ THANH TRÚC


TP. HỒ CHÍ MINH, 2021

THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày
………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. …………………………………………. – Chủ tịch.
2. …………………………………………. – Thư ký.
3. …………………………………………. – Ủy viên.
4. …………………………………………. – Ủy viên.

LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại Trường Đại học Công nghệ Thông tin, được sự
tận tình giảng dạy và giúp đỡ của quý thầy cô, đặc biệt là quý thầy cô của khoa Công nghệ
Phần mềm, chúng em đã gặt hái được rất nhiều kiến thức nền tảng bổ ích, có thể áp dụng vào
luận văn cũng như áp dụng trong những chặng đường tiếp theo sau này.
Chúng em xin chân thành cảm ơn quý thầy cô của trường Đại học Công nghệ Thơng tin nói
chung, q thầy cơ của khoa Cơng nghệ Phần mềm nói riêng, và đặc biệt đến cơ Nguyễn Hà
Giang, cơ Nguyễn Thị Thanh Trúc đã tận tình hướng dẫn và đóng góp ý kiến để chúng em có

thể hồn thành khóa luận này một cách tốt nhất.
Bên cạnh đó, nhóm xin gửi lời cảm ơn đến các bạn cùng lớp đã có những lời góp ý,
động viên để nhóm có thêm động lực thực hiện khóa luận trong khoảng thời gian khó khăn
này.
Trong suốt q trình chúng em tìm hiểu và thực hiện khóa luận, do thời gian và khả
năng có giới hạn nên chúng em vẫn cịn nhiều thiếu sót. Do đó, nhóm chúng em rất mong
nhận được sự thơng cảm và những ý kiến đóng góp chân thành từ quý thầy cô và các bạn.
Một lần nữa, nhóm chúng em xin chân thành cảm ơn mọi người.

Thành phố Hồ Chí Minh, 25 tháng 06 năm 2021
Sinh viên
LÊ NGỌC CHÂU

MỤC LỤC


TÓM TẮT KHÓA
LUẬN.........................................................................................................................1 Chương
1: GIỚI THIỆU CHUNG..........................................................................................................2
1.1. Lý do chọn đề
tài .............................................................................................................................2
1.2. Tính năng mới/ khác biệt về chức năng của đề tài so với một số website thương mại
điện tử hiện
nay................................................................................................................................3
1.3.

Đối

tượng


nghiên

cứu ....................................................................................................................4 1.4. Phạm
vi nghiên cứu ........................................................................................................................4
1.5.

Phương

pháp

thực

hiện..................................................................................................................4
Chương 2: KIẾN THỨC NỀN
TẢNG..................................................................................................6 2.1. Tổng quan về
Nodejs .....................................................................................................................6 2.1.1.
Khái
niệm ..................................................................................................................................6
2.1.2. Lý do lựa
chọn .........................................................................................................................7 2.2. Tổng
quan về Express Framework............................................................................................8
2.2.1. Giới thiệu ExpressJS
Framework......................................................................................8 2.2.2. Lý do lựa
chọn .........................................................................................................................8 2.3. Tổng
quan về EJS template..........................................................................................................9
2.3.1. Giới
thiệu ...................................................................................................................................9


2.3.2. Lý do lựa

chọn ...................................................................................................................... 10 2.4. Cơ sở
dữ liệu PostgreSQL......................................................................................................... 10
2.4.1. Giới
thiệu ................................................................................................................................ 10
2.4.2. Lý do lựa
chọn ...................................................................................................................... 11 2.5.
Chatbot
Dialogflow ..................................................................................................................... 11
2.5.1. Tìm hiểu
chatbot .................................................................................................................. 11 2.5.2.
Giới thiệu Chatbot Dialogflow........................................................................................ 14
2.5.3. Lý do lựa
chọn ...................................................................................................................... 16 2.5.4. Áp
dụng vào đề tài............................................................................................................... 16 2.6.
Thuận toán khuyến nghị Neighborhood - Based Collaborative Filtering................. 17 2.6.1.
Giới thiệu – Lý do lựa chọn ............................................................................................. 17
2.6.2. Một số định
nghĩa ................................................................................................................ 19 2.6.3. Tiến
hành thực hiện............................................................................................................. 22 2.6.4.
Áp dụng vào đề tài. ............................................................................................................. 25
Chương 3: XÂY DỰNG HỆ
THỐNG ............................................................................................... 27 3.1. Xây dựng kiến
trúc hệ thống .................................................................................................... 27 3.1.1. Xác
định yêu cầu hệ thống ............................................................................................... 27 3.1.2.
Phân tích yêu cầu hệ thống............................................................................................... 28
3.2. Phân tích thiết kế hệ


thống........................................................................................................ 32 3.2.1. Sơ đồ Use
case...................................................................................................................... 32 3.2.2. Sơ

đồ lớp................................................................................................................................. 66
3.2.2.2. Phân tích và thiết kế cơ sở dữ liệu .............................................................................
68 3.3. Thiết kế giao
diện......................................................................................................................... 96 3.3.1.
Giao diện dành cho khách hàng...................................................................................... 96
3.3.2. Giao diện dành cho người
bán.......................................................................................105 3.2.2.2. Giao diện dành cho
admin ..........................................................................................111
Chương 4: KẾT LUẬN, HƯỚNG PHÁT
TRIỂN.......................................................................116 4.1. Kết quả đạt
được.........................................................................................................................116 4.2.
Nhược
điểm..................................................................................................................................117
4.3. Hướng phát
triển.........................................................................................................................117 TÀI
LIỆU THAM
KHẢO ....................................................................................................................118
DANH MỤC HÌNH VẼ
Hình 2-1: Các điểm mạnh của Nodejs
Hình 2-2: Cơ chế Non I/O Blocking
Hình 2-3: Tổng quan mơ hình hoạt động của ExpressJS
Hình 2-4: Các tính năng của ExpressJS
Hình 2-5: EJS template
Hình 2-6: Hệ quản trị cơ sở dữ liệu PostgreSQL


Hình 2-7: Cách hoạt động của chatbot
Hình 2-8: Một số nền tảng, framework chatbot
Hình 2-9: Lợi ích của chatbot
Hình 2-10: Sơ đồ của một Dialog Flow hồn chỉnh

Hình 2-11: Ví dụ về Agent trong Dialogflow
Hình 2-12: Mơ tả cuộc trị chuyện giữa người và máy Hình 2-13:
Chatbot phản hồi câu hỏi của khách hàng Hình 2-14: Ví dụ về
Neighborhood-based Collaborative Filtering Hình 2-15: Ma trận
tương tác Người dùng – Sản phẩm Hình 2-16: Cơng thức tính độ
tương đồng giữa 2 vector Hình 2-17: Cơng thức dự đốn rating của
user U cho item I Hình 2-18: Cơng thức tính RMSE
Hình 2-19: Utility Matrix Y
Hình 2-20: Lọc cộng tác dựa theo sản phẩm
Hình 2-21: Ma trận chuẩn hóa (iiCF)
Hình 2-22: Ma trận tương đồng giữa các items
Hình 2-23: Ma trận normalized ratings matrix đầy đủ (iiCF)
Hình 2-24: Gợi ý sản phẩm bằng Item –item Collaborative Filtering trên website
Hình 3-1: Use case tổng quát của Admin
Hình 3-2: Use case tổng quát của nhà bán
Hình 3-3: Use case tổng quát của khách hàng
Hình 3-4: Use case khách hàng đăng ký tài khoản
Hình 3-5: Use case người bán đăng ký tài khoản bán hàng
Hình 3-6: Use case đăng nhập
Hình 3-7: Use case quản lý danh mục sản phẩm
Hình 3-8: Use case quản lý sản phẩm của Admin
Hình 3-9: Use case quản lý đơn hàng của Admin


Hình 3-10: Use case quản lý khách hàng
Hình 3-11: Use case quản ký nhà bán
Hình 3-12: Use case thống kê doanh thu
Hình 3-13: Use case quản lý sản phẩn của Người bán
Hình 3-14: Use case quản lý khuyến mãi
Hình 3-15: Use case quản lý đơn hàng của Người bán

Hình 3-16: . Use case quản lý thơng tin Người bán
Hình 3-17: Use case quản lý ví tiền
Hình 3-18: Use case tìm kiếm sản phẩm
Hình 3-19: Use case xem thơng tin sản phẩm
Hình 3-20: Use case xem sản phẩm của shop
Hình 3-21: Use case đặt và mua hàng
Hình 3-22: Use case quản lý giỏ hàng
Hình 3-23: Use case theo dõi đơn hàng
Hình 3-24: Use case chỉnh sửa thông tin cá nhân (Khách hàng)
Hình 3-25: Use case quản lý sổ địa chỉ (Khách hàng) Hình 3-26:
Use case đánh giá sản phẩm
Hình 3-27: Sơ đồ lớp tổng quát
Hình 3-28: Sơ đồ tuần tự khách hàng đăng ký tài khoản
Hình 3-29: Sơ đồ tuần tự đăng nhập
Hình 3-30: Sơ đồ tuần tự thêm sản phẩm (Người bán)
Hình 3-31: Sơ đồ tuần tự cập nhật sản phẩm
Hình 3-32: Sơ đồ tuần tự cập nhật trạng thái đơn hàng
Hình 3-33: Sơ đồ tuần tự thêm khuyến mãi mới Hình 334: Sơ đồ tuần tự xóa khuyến mãi
Hình 3-35: Sơ đồ tuần tự báo vi phạm sản phẩm


Hình 3-36: Sơ đồ tuần tự duyệt sản phẩm
Hình 3-37: Sơ đồ tuần tự hủy đơn hàng (Admin) Hình 3-38: Sơ
đồ tuần tự thêm sản phẩm vào giỏ hàng Hình 3-39: Sơ đồ tuần tự
cập nhật số lượng sản phẩm trong giỏ Hình 3-40: Sơ đồ tuần tự
xóa sản phẩm khỏi giỏ hàng Hình 3-41: Sơ đồ tuần tự đặt và mua
hàng
Hình 3-42: Sơ đồ tuần tự hủy đơn vừa mua (Khách hàng)
Hình 3-43: Giao diện trang chủ
Hình 3-44: Giao diện đăng nhập (khách hàng)

Hình 3-45: Giao diện đăng ký
Hình 3-46: Giao diện thơng tin cá nhân
Hình 3-47: Giao diện đổi mật khẩu
Hình 3-48: Giao diện sổ địa chỉ
Hình 3-49: Giao diện chi tiết sản phẩm
Hình 3-50: Giao diện giỏ hàng
Hình 3-51: Giao diện thanh tốn
Hình 3-52: Giao diện tất cả đơn hàng
Hình 3-53: Giao diện đơn hàng chờ nhà bán giao hàng
Hình 3-54: Giao diện đơn hàng đã giao thành cơng Hình
3-55: Giao diện đơn hàng đã hủy
Hình 3-56: Giao diện cập nhật sản phẩm
Hình 3-57: Giao diện cập nhật biến thể
Hình 3-58: Giao diện trạng thái sản phẩm Hình 359: Giao diện danh sách khuyến mãi Hình 3-60:
Giao diện thêm mới khuyến mãi Hình 3-61: Giao
diện xem trạng thái các đơn hàng Hình 3-62: Giao
diện chi tiết đơn hàng


Hình 3-63: Giao diện chờ xác nhận chuẩn bị hàng
Hình 3-64: Giao diện thống kê doanh thu Hình 365: Giao diện quản lý ví tiền
Hình 3-66: Giao diện địa chỉ giao hàng
Hình 3-67: Giao diện thêm mới danh mục Hình 368: Giao diện hiện thị tất cả danh mục Hình 3-69:
Giao diện xem tất cả sản phẩm Hình 3-70: Giao
diện báo cáo sản phẩm vi phạm
Hình 3-71: Giao diện xem tất cả đơn hàng
Hình 3-72: Giao diện xác nhận đơn hàng
Hình 3-73: Giao diện quản lý khách hàng
Hình 3-74: Giao diện quản lý nhà bán
DANH MỤC BẢNG

Bảng 1-1: Bảng so sánh sự khác biệt giữa Furnoture Shop và các website khác
Bảng 2-1: Ví dụ về chuẩn hóa ma trận uuCF
Bảng 3-1: Đặc tả Use case đăng ký tài khoản (Khách hàng) Bảng 3-2:
Đặc tả Use case đăng ký tài khoản bán hàng (Người bán) Bảng 3-3:
Đặc tả Use case đăng nhập
Bảng 3-4: Đặc tả Use case quản lý danh mục
Bảng 3-5: Đặc tả Use case quản lý sản phẩm (Admin)
Bảng 3-6: Đặc tả Use case quản lý đơn hàng (Admin)
Bảng 3-7: Đặc tả Use case quản lý khách hàng (Admin)
Bảng 3-8: Đặc tả Use case quản lý nhà bán (Admin)
Bảng 3-9: Đặc tả Use case thống kê doanh thu
Bảng 3-10: Đặc tả Use case quản lý sản phẩm (Người bán)
Bảng 3-11: Đặc tả Use case quản lý khuyến mãi


Bảng 3-12: Đặc tả Use case quản lý đơn hàng (Người bán)
Bảng 3-13: Đặc tả Use case quản lý thông tin Người bán
Bảng 3-14: Đặc tả Use case quản lý ví tiền
Bảng 3-15: Đặc tả Use case tìm kiếm sản phẩm
Bảng 3-16: Đặc tả Use case xem thông tin sản phẩm
Bảng 3-17: Đặc tả Use case xem ản phẩm của shop
Bảng 3-18: Đặc tả Use case đặt và mua hàng
Bảng 3-19: Đặc tả Use case quản lý giỏ hàng
Bảng 3-20: Đặc tả Use case theo dõi đơn hàng
Bảng 3-21: Đặc tả Use case chỉnh sửa thông tin cá nhân (Khách hàng)
Bảng 3-22: Đặc tả Use case quản lý sổ địa chỉ
Bảng 3-23: Đặc tả Use case đánh giá sản phẩm
Bảng 3-24: Danh sách các actors
Bảng 3-25: Danh sách các use cases
Bảng 3-26: Các lớp của sơ đổ lớp

Bảng 3-27: Các đối tượng và thuộc tính của đối tượng
Bảng 3-28: Bảng ViolateInfo
Bảng 3-29: Bảng ViolateType
Bảng 3-30: Bảng ProductViolate
Bảng 3-31: Bảng CategoryLevel1
Bảng 3-32: Bảng CategoryLevel2
Bảng 3-33: Bảng Product
Bảng 3-34: Bảng ProductVariant
Bảng 3-35: Bảng Images
Bảng 3-36: Bảng VariantDetail
Bảng 3-37: Bảng Shop


Bảng 3-38: Bảng Purchase
Bảng 3-39: Bảng Order
Bảng 3-40: Bảng OrderDetail
Bảng 3-41: Bảng Payment
Bảng 3-42: Bảng AddressOrder
Bảng 3-43: Bảng User
Bảng 3-44: Bảng AddressBook
Bảng 3-45: Bảng Province Bảng
3-46: Bảng District Bảng 3-47:
Bảng Ward
Bảng 3-48: Bảng Identity
Bảng 3-49: Bảng Rating
Bảng 3-50: Bảng Admin
Bảng 3-51: Bảng Cart
Bảng 3-52: Bảng Voucher
Bảng 4-1:Kết quả đánh giá
DANH MỤC TỪ VIẾT TẮT

Từ viết tắt

Từ đầy đủ

Giải thích

CF

Collaborative Filtering

Một phương pháp gợi ý sản
phẩm

UM

Utility matrix

Ma trận biểu diễn mức độ quan
tâm (rating) của user với mỗi
item

CSDL

Cơ sở dữ liệu

Cơ sở dữ liệu cho website

uuCF

User – user Collaborative

Filtering

Phương pháp lọc cộng tác dựa
trên người dùng

iiCF

Item –item Collaborative
Filtering

Phương pháp lọc cộng tác dựa
trên sản phẩm


TĨM TẮT KHĨA LUẬN
Khóa luận với đề tài “Xây dựng hệ thống thương mại điện tử hỗ trợ kinh doanh mặt hàng nội
thất nhà ở kết hợp tư vấn bán hàng bằng chatbot” giúp cho người tiêu dùng có thể mua các
sản phẩm về nội thất nhà ở một cách thuận tiện và nhanh chống, đồng thời cũng đảm bảo về
sự tin cậy, tồn và uy tính.
Hệ thống giúp cho các xưởng gỗ, người kinh doanh nội thất có một kênh bán hàng tiện dụng,
hỗ trợ từ khâu nhập sản phẩm, đưa sản phẩm lên hệ thống, giao hàng cho người mua, thống
kê doanh thu bán hàng chi tiết, rõ ràng và minh bạch kết hợp với giao diện thân thiện, giúp
người dùng dễ sử dụng mà không cần quá nhiều tài nguyên và nhân lực để quản lý.
Về nghiệp vụ, hệ thống đã xây dựng đầy đủ mơ hình quản lý cho người quản trị website,
người bán hàng và mua hàng với người tiêu dùng.
Trong khóa luận này, nhóm đã sử dụng và kết hợp các công nghệ mới để xây dựng ứng dụng
website mang lại lợi ích, hiệu quả tốt nhất như NodeJs, ExpressJs.
Khóa luận được trình bày gồm 4 chương:
Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các ứng dụng trước. Tiếp đến
là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra. Ngoài ra, chương 1 cũng đề cập

đến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu.
Chương 2: Trình bày các kiến thức nền tảng, các cơng nghệ và thuật tốn gợi ý sản phẩm
được sử dụng để xây dựng website bán hàng, chatbot để tư vấn bán hàng.
Chương 3: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích u cầu
bài tốn cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho website.
Chương 4: Kết luận, rút ra được các ưu nhược điểm của ứng dụng và hướng phát triển trong
tương lai.

1

Chương 1: GIỚI THIỆU CHUNG
1.1. Lý do chọn đề tài


Ngày nay, công nghệ thông tin ngày một phát triển, kéo theo đó là sự bùng nổ của các thiết bị
điện tử, đặc biệt là điện thoại thông minh và máy tính. Cùng với đó là mạng lưới rộng lớn
của Internet đã dẫn đến sự phát triển mạnh mẽ của các ngành dịch vụ thương mại điện tử.
Đối với người tiêu dùng, thương mại điện tử giúp người mua chỉ ngồi tại nhà mà vẫn có thể
lựa chọn hàng hóa, dịch vụ trên các thị trường ở mọi nơi trên thế giới bằng một vài động tác
kích chuột. Nhờ vậy mà gần như ở bất kì nơi nào trên thế giới, thậm chí ở một nước nghèo
nhất, một vùng xa xơi hẻo lánh trên địa cầu, cũng có thể dễ dàng tiếp cận với các thị trường
rộng lớn thông qua mạng Internet.
Hiện nay, với sự bùng phát nguy hiểm của đại dịch COVID-19 trên tồn cầu, trong đó có
Việt Nam, nó đã thay đổi thói quen của hầu hết mọi người trong việc đi mua sắm, giải trí.
Trong lúc tình hình dịch bệnh căng thẳng như thế này, Thương mại điện tử được coi là một
trong những động lực phát triển chủ yếu của nền kinh tế và dần trở thành xu hướng tất yếu.
Trên cơ sở các kiến thức được học trong nhà trường và quá trình tìm hiểu các trang web
thương mại điện tử trong thực tế, nhóm chúng em đã quyết định chọn đề tài “Xây dựng hệ
thống thương mại điện tử hỗ trợ kinh doanh mặt hàng nội thất nhà ở kết hợp tư vấn bán hàng
bằng chatbot”.

Phục vụ tốt hơn nhu cầu của khách hàng và quản lý cửa hàng trong hoạt động kinh doanh.

2
1.2. Tính năng mới/ khác biệt về chức năng của đề tài so với một số website thương
mại điện tử hiện nay
Website
Tính năng

Furniture Shop

Website thương
mại điện tử khác


Thanh toán online

Thanh toán bằng tài khoản

Phải thao tác chuyển

ngân hàng ngay tại shop,

khoản đồng thời chờ

xuất thông báo thành cơng/

admin xác nhận thanh

thất bại ngay tức thì, thuận


tốn khiến mất thời

tiện trong quá trình mua

gian, dễ nhầm lần.

hàng.
Địa chỉ nhận hàng

Địa chỉ chọn từ hệ thống,

Nhập bằng tay khiến

đảm bảo thơng tin chính

cho địa chỉ dễ bị sai,

xác, thuận tiện.

không

xác định được

nơi giao hàng
Giỏ hàng

Sản phẩm trong giỏ hàng

Sản phẩm trong giỏ


được chọn sẽ tiến hành

hàng chỉ có thể mua tất

thanh tốn, cịn các sản

cả hoặc xóa bớt. Điều

phẩm bỏ chọn sẽ lưu lại

này làm hạn chế sự

trong giỏ hàng cho việc

thoải mái cho khách

mua sau.

hàng.

Admin xác nhận giao

Sau khi nhà bán giao hàng

Nhà bán nhận tiền và

hàng

cho shipper, hàng đến tay


xác nhận đơn hàng. Đối

khách hàng, admin xác

với trường hợp thanh

nhận đơn hàng thành cơng,

tốn online, nhà bán

tiền sẽ chuyển vào ví của

nhận tiền trước và xác

nhà bán.

nhận đơn hàng sau.
Điều này gây bất tiện
cho các

3
trường hợp thất lạc hàng
hóa, khó giải quyết.

Bảng 1-1: Bảng so sánh sự khác biệt giữa Furnoture Shop và các website khác


1.3. Đối tượng nghiên cứu
- Doanh nghiệp, xưởng gỗ, xưởng làm nội thất, người bán hàng nội thất trong nước Người tiêu dùng muốn mua sản phẩm nội thất trong nước
1.4. Phạm vi nghiên cứu

- Chức năng:
• Website thương mại điện tử Funiture Shop hướng sử dụng cho các doanh
nghiệp, xưởng nội thất và người tiêu dùng trong nước trên nền

tảng

website cho các trình duyệt chạy trên hệ điều hành Windows, Mac.
• Tìm hiểu về hệ thống gợi ý sản phẩm đối với 2 phương pháp: Content based
method, Collaborative filtering method.
• Tìm hiều chatbot Dialogflow
- Cơng nghệ:
• NodeJs
• ExpressJs
• Chatbot DialogFlow
• PostgreSql
1.5. Phương pháp thực hiện
- Phân tích đề tài.
- Tham khảo các trang web/hệ thống hiện có.
- Phân tích các yêu cầu đã thu thập được.
- Thiết kế cơ bản các yêu cầu.
- Nghiên cứu công nghệ để áp dụng.
- Nghiên cứu tài liệu liên quan.
4
5

Chương 2: KIẾN THỨC NỀN TẢNG
2.1. Tổng quan về Nodejs
2.1.1. Khái niệm
Node.js là một JavaScript thời gian thực được xây dựng trên Chrome’s V8 JavaScript engine.
Node.js sử dụng các phần phát sinh các sự kiện (event-driven), mơ Hình nonblocking I/O để



tạo ra các ứng dụng nhẹ và hiệu quả cao cho các ứng dụng về dữ liệu thời gian thực chạy trên
các thiết bị phân tán.

Hình 2-1: Điểm mạnh của Nodejs
NodeJS được phát triển bởi Ryan Dahl vào năm 2009 và có thể chạy trên nhiều hệ điều hành
khác nhau: OS X, Microsoft Windows, Linux. Phần Core bên dưới của Nodejs được viết hầu
hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao.
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực.
Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới
công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể.

6
2.1.2. Lý do lựa chọn
Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thông
dụng. Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript có những đặc tính mà
làm cho nó rất khác biệt so với các ngơn ngữ lập trình động cịn lại, cụ thể là nó khơng có
khái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.”
Tốc độ xử lý nhanh: Được thực thi dựa trên V8 JavaScript Engine của Google Chorme. Khả
năng tự build server bằng ngôn ngữ client giúp cho việc trung chuyển dữ liệu diễn ra nhanh
hơn. Đồng thời giảm khả năng rủi ro bị ngắt. Ngoài ra nhờ cơ chế Non I/O Blocking, tận
dụng tối đa tài nguyên của server, không tạo ra độ trễ như các ngôn ngữ
server-side khác.


Hình 2-2: Cơ chế Non I/O Blocking
Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị.
Node.js sử dụng một mơ hình luồng duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các
máy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả 19 năng mở

rộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.
Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có thể
cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như
Apache HTTP Server.
7
Hỗ trợ rất tốt cho việc xây dựng ứng dụng thời gian thực
2.2. Tổng quan về Express Framework
2.2.1. Giới thiệu ExpressJS Framework
Expressjs là một framework được xây dựng trên nền tảng của Nodejs. Nó cung cấp các tính
năng mạnh mẽ để phát triển web hoặc mobile. Expressjs hỗ trợ các method HTTP và
midleware tạo ra API vô cùng mạnh mẽ và dễ sử dụng.


Hình 2-3: Tổng quan mơ hình hoạt động của ExpressJS
2.2.2. Lý do lựa chọn
ExpressJS được xây dựng dựa trên NodeJs, được hỗ trợ việc phát triển ứng dụng theo mơ
hình MVC, mơ hình phổ biến cho việc lập trình web hiện nay.

8

Hình 2-4: Các tính năng của ExpressJS
Cho phép định nghĩa Middleware hỗ trợ cho việc tổ chức và tái sử dụng code. Định nghĩa


routes và các request method đến server một cách dễ dàng.
Hỗ trợ REST API. Và còn rất nhiều thứ mà framework này hỗ trợ.
2.3. Tổng quan về EJS template
2.3.1. Giới thiệu
EJS ( Embedded JavaScript ), là một thư viện được sử dụng để phân tích các tập tin ejs, và
tạo ra HTML trả về cho client (Trình duyệt). Nó là một trong những View engine phổ biến

nhất cho Node.js và Expressjs.

9
Hình 2-5: EJS template
View engine là cơng cụ giúp viết code HTML một cách ngắn gọn và đơn giản hơn cách
thơng thường, đồng thời nó có thể sử dụng lại. Ngồi ra nó có thể đưa dữ liệu vào từ phía
server và render ra đoạn HTML cuối cùng.
2.3.2. Lý do lựa chọn
EJS cho phép ta tạo các ứng dụng nhanh chóng khi ta khơng cần bất cứ thứ gì q phức tạp.
Bằng cách sử dụng các thành phần và có khả năng dễ dàng chuyển các biến đến dạng xem
của bạn , ta có thể xây dựng một số ứng dụng tuyệt vời một cách nhanh chóng.
2.4. Cơ sở dữ liệu PostgreSQL
2.4.1. Giới thiệu


Hình 2-6: Hệ quản trị cơ sở dữ liệu PostgreSQL
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ – đối tượng, được phát triển bởi Khoa
Điện toán, Đại học California – Hoa Kỳ dựa trên Postgres bản 4.2. Chương trình này đã mở
đường cho nhiều khái niệm về hệ quản trị dữ liệu thương mại sau này.
Ban đầu, hệ quản trị được thiết kế để chạy trên các nền tảng tương tự như Unix. Sau này,
PostgreSQL được điều chỉnh trở nên linh động và chạy trên nhiều nền tảng khác nhau như
Windows, Mac OS X, Solaris với nhiều tính năng và đặc điểm nổi bật. PostgreSQL là mã
nguồn mở miễn phí, được xây dựng theo chuẩn SQL-99. Người dùng có thể tự do
10
sử dụng, chỉnh sửa và phân bổ PostgreSQL theo nhiều hình thức khác nhau. So với nhiều hệ
quản trị cơ sở dữ liệu khác, PostgreSQL khơng q u cầu về cơng tác bảo trì bởi tính ổn
định cao, có thể phát triển nhiều ứng dụng khác nhau với chi phí tương đối thấp.
2.4.2. Lý do lựa chọn
PostgreSQL không chỉ là cơ sở dữ liệu quan hệ, nó là quan hệ hướng đối tượng. Điều này
cung cấp cho nó một vài lợi thế so với các cơ sở dữ liệu SQL mã nguồn mở khác như

MySQL, MariaDB và Firebird.
Mảng nhiều chiều: Bởi vì PostgreSQL là một cơ sở dữ liệu quan hệ hướng đối tượng, mảng
các giá trị có thể lưu trữ hầu hết các kiểu dữ liệu có sẵn.
Dữ liệu hình học: Dữ liệu hình học nhanh chóng trở thành một yêu cầu cốt lõi cho nhiều
ứng dụng. PostgreSQL từ lâu đã hỗ trợ một loạt kiểu dữ liệu hình học như points, lines,
circles, và polygons.
Hỗ trợ JSON: Hỗ trợ JSON của PostgreSQL cho phép bạn ít sơ đồ (schema-less) trong một
cơ sở dữ liệu SQL. Điều này có thể hữu ích khi cấu trúc dữ liệu yêu cầu phải có sự linh hoạt


bởi vì nó vẫn thay đổi trong phát triển hoặc khi nó khơng biết các trường dữ liệu mà đối
tượng dữ liệu sẽ chứa.
Chức năng bảo mật: Bảo mật, xác thực (SCRAM-SHA-256, SSPI, LDAP, GSSAPI,
Certificate và các hình thức khác), hệ thống kiểm soát truy cập mạnh mẽ, bảo mật cấp độ cột
– hàng.
Toàn vẹn dữ liệu: Ràng buộc loại từ, Primary Keys, Foreign Keys, UNIQUE, NOT NULL,
Khóa khuyến nghị/ Advisory Locks, Khóa hàm số/ Explicit Locks,…
2.5. Chatbot Dialogflow
2.5.1. Tìm hiểu chatbot
2.5.1.1. Khái niệm chatbot

11
Định nghĩa một cách đơn giản nhất, chatbot là một chương trình máy tính tương tác với
người dùng bằng ngôn ngữ tự nhiên dưới một giao diện đơn giản, âm thanh hoặc dưới dạng
tin nhắn.

Hình 2-7: Cách hoạt động của chatbot
Chatbot phục vụ trong rất nhiều lĩnh vực:
- Chăm sóc khách hàng
- Đặt chỗ, mua hàng

- Giới thiệu sản phẩm
- Tin tức
- Tìm kiếm
- Trợ lý cá nhân


2.5.1.2. Lý do sử dụng chatbot

12


Hình 2-8: Một số nền tảng, framework chatbot
Nhờ được trang bị trí thơng minh nhân tạo (AI) và phần mềm xử lý ngôn ngữ tự nhiên
(NLP), Chatbot đã phát triển đáng kể trong thời gian gần đây. Hiện nay, chatbot là những
công cụ cực kỳ hữu dụng và quan trọng giúp chúng ta có thể tự động hóa một số quy trình
trong kinh doanh và đi kèm với vơ vàn lợi ích như:
- Tăng tương tác với khách hàng.
- Cá nhân hóa trải nghiệm khách hàng.
- Thu thập và phân tích dữ liệu.
- Cung cấp phản hồi ngay lập tức
- Tiết kiệm thời gian.
13
- Tiết kiệm chi phí quảng cáo.
- Giảm chi phí hoạt động của doanh nghiệp.

Hình 2-9: Lợi ích của chatbot
2.5.2. Giới thiệu Chatbot Dialogflow

Hình 2-10: Sơ đồ của một Dialog Flow hoàn chỉnh



Api.ai là một startup về natural language conversations, đã được Google mua lại và đổi tên
thành DialogFlow.
Dialogflow giúp các lập trình viên dễ dàng hơn khi lập trình các sản phẩm có giao tiếp giữa
người dùng với sản phẩm thơng qua các đoạn hội thoại bằng văn bản (text) hoặc giọng nói
(voice).
14
Dialogflow sử dụng trí tuệ nhân tạo (AI) giúp phân tích ngơn ngữ tự nhiên để hiểu được
những gì người dùng đưa vào.
Các khái niệm cơ bản trong DialogFlow
- INTENT: là đại diện cho một ánh xạ giữa những gì người dùng đưa vào, và hành
động sẽ được thực hiện bởi phần mềm.
+ Ví dụ: 2 câu hỏi với bot dự báo thời tiết:
▪ Hơm nay ở Hồ Chí Minh nắng to khơng?
▪ Hà Nội 2 tuần tới có mưa không?
+ Với cả hai câu hỏi này, người dùng đều đang mong muốn Chatbot trả lời
thông tin dự báo về thời tiết. Như vậy, khi lập trình Chatbot, chỉ cần 1 hành động cho
cả hai câu hỏi, hay cần tạo một INTENT cho chúng.
+ Nói một cách khác, một INTENT là một tập những gì người dùng nói mà chúng có
cùng một ý nghĩa.
- ENTINY: được sử dụng để trích xuất các giá trị của tham số từ ngơn ngữ tự nhiên.
Chúng giúp xác định các từ khóa cụ thể quan trọng để hướng đến mục đích cụ thể
cho câu trả lời.
+ Ví dụ: Từ 2 câu hỏi với bot dự báo thời tiết ở trên, ta thấy “Hôm nay”, “2
tuần tới” sẽ có một entity tương ứng là Thời gian. Hồ Chí Minh, Hà Nội, sẽ là
entity Vị trí
- AGENT: dùng để đại diện cho một mơ-đun (module) NLU (Natural Language
Understanding – Phân tích để hiểu ngơn ngữ tự nhiên).



×