Tải bản đầy đủ (.pdf) (134 trang)

KHÓA LUẬN 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 (5.16 MB, 134 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 q 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 quá 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ừ q 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 3-34: 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 3-59: 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 3-65: 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 3-68: 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 –
Filtering

iiCF

Item
–item
Filtering

user

Collaborative Phương pháp lọc cộng tác dựa
trên người dùng
Collaborative 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

Furniture Shop

Tính năng
Thanh tốn online

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

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 gian,
tiện trong quá trình mua 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 cho
đảm bảo thơng tin chính địa chỉ dễ bị sai, không
xác, thuận tiện.

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ỏ hàng
được chọn sẽ tiến hành chỉ có thể mua tất cả
thanh tốn, cịn các sản hoặc xóa bớt. Điều này
phẩm bỏ chọn sẽ lưu lại làm hạn chế sự thoải mái
trong giỏ hàng cho việc cho khách hàng.
mua sau.

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ận đơn hàng sau. Điều


nhà bán.

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: Contentbased 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 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


×