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

Xây dựng web bán hàng tích hợp gợi ý sản phẩm đến người dùng

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.92 MB, 100 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

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

XÂY DỰNG WEB BÁN HÀNG TÍCH HỢP
GỢI Ý SẢN PHẨM ĐẾN NGƯỜI DÙNG

GVHD: TỪ TUYẾT HỒNG
SVTH: NGUYỄN HUỲNH VINH

SKL 0 0 7 0 5 9

Tp. Hồ Chí Minh, tháng 07/2020


TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƢỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG WEB BÁN HÀNG TÍCH HỢP GỢI Ý
SẢN PHẨM ĐẾN NGƢỜI DÙNG

SVTH: NGUYỄN HUỲNH VINH
MSSV: 16110269
KHĨA: 2016
NGÀNH: CƠNG NGHỆ THƠNG TIN
GVHD: TỪ TUYẾT HỒNG



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


TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƢỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG WEB BÁN HÀNG TÍCH HỢP GỢI Ý
SẢN PHẨM ĐẾN NGƢỜI DÙNG

SVTH: NGUYỄN HUỲNH VINH
MSSV: 16110269
KHĨA: 2016
NGÀNH: CƠNG NGHỆ THƠNG TIN
GVHD: TỪ TUYẾT HỒNG

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


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày 01 tháng 07 năm 2020

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên : Nguyễn Huỳnh Vinh

MSSV : 16110269


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

Lớp: 16110ST2

Giảng viên hƣớng dẫn: Từ Tuyết Hồng
Ngày nhận đề tài: 24/02/2020

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

1. Tên đề tài: Xây dựng web bán hàng tích hợp gợi ý sản phẩm đến ngƣời dùng
2. Các số liệu tài liệu ban đầu:thu thập từ một số website và tự thêm
3. Nội dung thực hiện đề tài:
- Tìm hiểu Neo4j, xây dựng ứng dụng Web gồm các chức năng: đăng nhập
mua hàng, xem hàng, tìm kiếm sản phẩm, thêm sản phầm vào giỏ hàng.
Phần quản trị sẽ có phần quản lý sản phẩm, quản lý khách hàng, quản lý thể
loại, quản lý hóa đơn
- Phần chính quan trọng là gợi ý cho ngƣời dùng, dựa vào thông tin tài khoản
của ngƣời dùng có những thơng tin về tuổi, tùy vào từng loại thơng tin và
ngữ cảnh thì sẽ có những sản phẩm phù hợp để gợi ý. Đối với những tài
khoản đã mua hàng thì sẽ gợi ý theo những sản phẩm đã mua và những loại
sản phẩm tƣơng tự, và cũng gợi ý theo hành vi của ngƣời dùng dựa vào lƣợt
click vào sản phẩm, hay thời gian xem sản phẩm.
- Khách hàng sẽ đƣợc gợi ý những mặt hàng mà họ đang quan tâm mỗi khi họ
quay lại hệ thống, giúp họ nhìn thấy ngay những sản phẩm họ đang quan tâm
trên web.
4. Sản phẩm:
TRƢỞNG NGÀNH

GIẢNG VIÊN HƢỚNG DẪN


i


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN
Họ và tên sinh viên : Nguyễn Huỳnh Vinh

MSSV : 16110269

Ngành: Công Nghệ Thông Tin
Tên đề tài: Xây dựng web bán hàng tích hợp gợi ý sản phẩm đến ngƣời dùng
Họ và tên Giáo viên hƣớng dẫn: Từ Tuyết Hồng
NHẬN XÉT
1. Về nội dung đề tài và khối lƣợng thực hiện:
.......................................................................................................................................
.......................................................................................................................................
2. Ƣu điểm:
.......................................................................................................................................
.......................................................................................................................................
3. Khuyết điểm:
.......................................................................................................................................
.......................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
.......................................................................................................................................
5. Đánh giá loại:
.......................................................................................................................................
6. Điểm: ................................ (Bằng chữ: ...................................................................)

.......................................................................................................................................
Tp. Hồ Chí Minh, ngày 01 tháng 07 năm 2020
Giáo viên hƣớng dẫn
(Ký và ghi rõ họ tên)

ii


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên : Nguyễn Huỳnh Vinh

MSSV : 16110269

Ngành: Công Nghệ Thông Tin
Tên đề tài: Xây dựng web bán hàng tích hợp gợi ý sản phẩm đến ngƣời dùng
Họ và tên Giáo viên phản biện:
NHẬN XÉT
1. Về nội dung đề tài và khối lƣợng thực hiện:
.......................................................................................................................................
.......................................................................................................................................
2. Ƣu điểm:
.......................................................................................................................................
.......................................................................................................................................
3. Khuyết điểm:
.......................................................................................................................................
.......................................................................................................................................

4. Đề nghị cho bảo vệ hay không?
.......................................................................................................................................
5. Đánh giá loại:
.......................................................................................................................................
6. Điểm: ................................ (Bằng chữ: ...................................................................)
.......................................................................................................................................
Tp. Hồ Chí Minh, ngày

tháng

năm 2020

Giáo viên phản biện
(Ký và ghi rõ họ tên)
iii


LỜI CẢM ƠN

Lời đầu tiên em xin cảm ơn khoa Công nghệ thông tin đã mở môn tiểu luận
chuyên ngành đã giúp bọn em có thêm nhiều thử thách mới, kiến thức mới, và nhiều
đề tài nghiên cứu mới lạ. Em cũng xin cảm ơn cô Từ Tuyết Hồng giáo viên hƣớng
dẫn của em trong khóa luận này, cơ đã ln giúp đỡ tận tình, cũng nhƣ cho em các
lời khun khi làm đề tài, để em có thể hồn thành đề tài này.

Sinh viên thực hiện
Nguyễn Huỳnh Vinh

iv



TĨM TẮT

Cơng nghệ thơng tin đang phát triển với tốc độ rất nhanh, và sẽ không xa lạ
nếu chúng ta thấy bây giờ có khá nhiều web bán hàng xuất hiện trên thị trƣờng, và
cũng không quá bất ngờ nếu bạn đang lƣớt facebook và xem một chủ đề thì sau đó
khi quay lại facebook hàng loạt các tin về chủ để bạn đã xem lúc trƣớc hiện lên,
điều đó thật tốt và làm cho ngƣời dùng thật sự thích thú. Vì những trải nghiệm đó
nên em quyết định chọn đề tài ―Xây dựng web bán hàng tích hợp gợi ý sản phẩm
đến ngƣời dùng‖ giúp cho ngƣời mua hàng cảm thấy tiện lợi hơn, đƣợc gợi ý những
sản phẩm đang quan tâm khơng cần phải tìm kiếm nhiều, cũng nhƣ tăng độ trải
nghiệm cho ngƣời dùng.

v


MỤC LỤC

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP....................................................................................... i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN ......................................................ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ........................................................iii
LỜI CẢM ƠN ....................................................................................................................... iv
TÓM TẮT .............................................................................................................................. v
DANH MỤC HÌNH .............................................................................................................. ix
DANH MỤC BẢNG ............................................................................................................ xi
CHƢƠNG 1. TỔNG QUAN ................................................................................................. 1
1.1

TỔNG QUAN ĐỀ TÀI ........................................................................................... 1


1.1.1

Đặt vấn đề ........................................................................................................ 1

1.1.2

Giới thiệu chung .............................................................................................. 2

1.1.3

Giải pháp .......................................................................................................... 3

CHƢƠNG 2. CƠ SỞ LÝ THUYẾT ..................................................................................... 4
2.1

Tổng quan công nghê sử dụng ................................................................................ 4

2.1.1

Giới thiệu chung .............................................................................................. 4

2.1.2

Lý do chọn công nghệ ...................................................................................... 4

2.2

Nodejs ..................................................................................................................... 4

2.2.1

2.3

Express và JavaScript .............................................................................................. 6

2.3.1
2.4

Giới thiệu ......................................................................................................... 4
Giới thiệu ......................................................................................................... 6

Neo4j ....................................................................................................................... 9

2.4.1

Giới thiệu ......................................................................................................... 9

2.4.2

Phƣơng pháp, kỹ thuật xử lý đồng thời.......................................................... 14

2.4.3

Nền tảng đồ thị Neo4j ứng dụng .................................................................... 19

2.4.4

Thuật tốn tìm đƣờng và tìm kiếm trong đồ thị ............................................. 20

2.4.5


Ngơn ngữ truy vấn Cypher trong Neo4j ........................................................ 21

2.4.6

Yêu cầu phần cứng và phần mềm .................................................................. 21

2.4.7

Tính mở .......................................................................................................... 22

2.4.8

Giới hạn ......................................................................................................... 23

2.4.9

Ƣu nhƣợc điểm .............................................................................................. 24

2.5

Recomendation system.......................................................................................... 26

vi


2.5.1

Tổng quan về hệ thống gợi ý ......................................................................... 26

2.5.2


Các cách gợi ý ................................................................................................ 27

CHƢƠNG 3. YÊU CẦU PHẦN MỀM ............................................................................... 31
3.1

Xác định yêu cầu ................................................................................................... 31

3.1.1

Giới thiệu về website ..................................................................................... 31

3.1.2

Mô tả chức năng............................................................................................. 31

3.1.3

Mô tả phi chức năng ...................................................................................... 32

3.2

Lƣợc đồ Usecase ................................................................................................... 33

3.2.1

User tổng quan ............................................................................................... 33

3.2.2


Use Case chi tiết quản lý sản phẩm ............................................................... 34

3.2.3

Use Case chi tiết quản lý danh mục ............................................................... 34

3.2.4

Use Case chi tiết đặt hàng ............................................................................. 35

3.2.5

Use Case chi tiết quản lý khách hàng ............................................................ 35

3.2.6

Use Case chi tiết quản lý hóa đơn .................................................................. 36

3.2.7

Use Case Bình luận sản phẩm........................................................................ 36

3.3

Mơ tả Usecase ....................................................................................................... 37

3.3.1

Mô tả Use Case đăng ký khách hàng ............................................................. 37


3.3.2

Mô tả Use Case Đăng nhập của khách hàng .................................................. 37

3.3.3

Mô tả Use Case Mua hàng của khách hàng ................................................... 37

3.3.4

Mô tả Use Case xem danh sách sản phẩm của khách hàng ........................... 39

3.3.5

Mô tả Use Case đăng nhập của Admin .......................................................... 41

3.3.6

Mô tả Use Case quản lý sản phẩm Admin ..................................................... 42

3.3.7

Mô tả Use Case quản lý danh mục Admin .................................................... 42

3.3.8

Mơ tả Use Case quản lý hóa đơn ................................................................... 43

3.3.9


Mô tả Use Case quản lý khách hàng .............................................................. 43

3.3.10

Mô tả Use Case thống kê doanh thu .............................................................. 44

CHƢƠNG 4. THIẾT KẾ HỆ THỐNG ................................................................................ 45
4.1

Thiết kệ hệ thống ................................................................................................... 45

4.1.1

Lƣợc đồ lớp .................................................................................................... 45

4.1.2

Lƣợc đồ Sequence .......................................................................................... 45

4.1.3

Lƣợc đồ quan hệ ............................................................................................ 53

4.1.4

Mơ tả thuộc tính các node đại diện ................................................................ 54

4.2

Mơ hình gợi ý ........................................................................................................ 56


4.2.1

Xác định mơ hình gợi ý : ............................................................................... 56

4.2.2

Áp dụng trong hệ thống: ................................................................................ 57
vii


4.3

Thiết kế giao diện : ................................................................................................ 62

4.3.1

Khách hàng : .................................................................................................. 62

4.1.2

Admin ............................................................................................................ 71

CHƢƠNG 5 THỰC NGHIỆM, PHÂN TÍCH TỔNG HỢP ................................................ 75
5.1

Cài đặt ứng dụng ................................................................................................... 75

5.2


Kiểm thử ứng dụng ............................................................................................... 75

5.2.1

Kiểm tra chứ năng khách hàng ...................................................................... 75

5.2.2

Kiểm tra chức năng admins ........................................................................... 77

CHƢƠNG 6 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 83
1

Những kết quả đạt đƣợc ............................................................................................ 83

2

Ƣu điểm đề tài........................................................................................................... 83

3

Hạn chế đề tài ........................................................................................................... 83

4

Hƣớng phát triển ....................................................................................................... 84

TÀI LIỆU THAM KHẢO ................................................................................................... 85

viii



DANH MỤC HÌNH
Hình 1.1: Mơ tả tƣợng trƣng u cầu mua hàng .................................................................... 2
Hình 2.1: Mơ hình hoạt động nodeJs ..................................................................................... 5
Hình 2.2: Cấu trúc express ..................................................................................................... 8
Hình 2.3: Ví dụ mơ hình lƣu dữ liệu neo4j .......................................................................... 10
Hình 2.4: Mơ hình lƣu trữ trong neo4j ................................................................................ 12
Hình 2.5: Ví dụ Node trong Neo4j ...................................................................................... 12
Hình 2.6: Ví dụ lables trong Neo4j ...................................................................................... 13
Hình 2.7: Ví dụ relationship trong neo4j ............................................................................. 14
Hình 2.8: Mơ hình ứng dụng đơ thị Neo4j .......................................................................... 19
Hình 2.9: Ví dụ lọc cộng tác ................................................................................................ 28
Hình 2.10: Ví dụ về lộc nội dung......................................................................................... 29
Hình 2.11: Ví dụ lọc cơ sở tri thức ...................................................................................... 30
Hình 3.1: Usecase tổng quan ............................................................................................... 33
Hình 3.2: Usecase quản lý sản phẩm ................................................................................... 34
Hình 3.3: Usecase chi tiết quản lý danh mục ....................................................................... 34
Hình 3.4: Use Case chi tiết đặt hàng .................................................................................... 35
Hình 3.5: Use Case chi tiết quản lý khách hàng .................................................................. 35
Hình 3.6: Use Case chi tiết hóa đơn .................................................................................... 36
Hình 3.7: Use Case Bình luận sản phẩm ............................................................................. 36
Hình 4.1: Lƣợc đồ quan hệ .................................................................................................. 45
Hình 4.2: Sequence danh sách sản phẩm ............................................................................. 45
Hình 4.3: Sequence thanh tốn ............................................................................................ 46
Hình 4.4: Sequence đăng nhập khách hàng ......................................................................... 46
Hình 4.5: Sequence đăng nhập admin ................................................................................. 47
Hình 4.6: Sequence danh sách sản phẩm ............................................................................. 47
Hình 4.7: Sequence thêm sản phẩm ..................................................................................... 48
Hình 4.8: Sequence Xóa sản phẩm ...................................................................................... 48

Hình 4.9: Sequence Sửa thơng tin sản phẩm ....................................................................... 49
Hình 4.10: Senquence Danh mục ........................................................................................ 49
Hình 4.11: Sequence thêm danh mục .................................................................................. 50
Hình 4.12: Sequence Xóa danh mục .................................................................................... 50
Hình 4.13: Sequence Sửa danh mục .................................................................................... 51
Hình 4.14: Sequence Quản lý hóa đơn ................................................................................ 51
Hình 4.15: Sequence quản lý khách hàng ............................................................................ 52
Hình 4.16: Lƣợc đồ quan hệ ................................................................................................ 53
Hình 4.17: Gợi ý theo nội dung ở trang chủ ........................................................................ 57
Hình 4.18:Gợi ý theo nội dung trang chủ sản phẩm nổi bậc ............................................... 58
Hình 4.19: Gợi ý theo nội dung sản phẩm tƣơng tự trang chi tiết sản phẩm ...................... 59
Hình 4. 20 Gợi ý theo nội dung trang chủ ........................................................................... 60
Hình 4.21 Lọc cộng tác ở trang chủ ..................................................................................... 61
Hình 4.22 Lọc cộng tác ở trang chủ ..................................................................................... 62
Hình 4.23 Màn hình trang chủ 1 .......................................................................................... 63
Hình 4.24 Màn hình trang chủ 2 .......................................................................................... 64
Hình 4.25 Màn hình trang chủ 3 .......................................................................................... 65
Hình 4.26 Màn hình trang chủ 4 .......................................................................................... 66
ix


Hình 4.27 Màn hình trang chủ 4 .......................................................................................... 67
Hình 4.28 Màn hình giỏ hàng 2 ........................................................................................... 67
Hình 4.29 Màn hình danh sách sản phẩm ............................................................................ 68
Hình 4.30 Màn hình chi tiết sản phẩm ................................................................................. 69
Hình 4. 31 Màn hình thơng tin ............................................................................................. 70
Hình 4.32 Màn hình liên hệ ................................................................................................. 70
Hình 4. 33 Màn hình đăng nhập admin ............................................................................... 71
Hình 4.34 Màn hình quản lý sản phẩm ................................................................................ 71
Hình 4.35 Màn hình thêm sản phẩm .................................................................................... 72

Hình 4.36 Màn hình thêm danh mục ................................................................................... 72
Hình 4.37 Màn hình quản lý danh mục ............................................................................... 73
Hình 4.38 Màn hình quản lý khách hàng ............................................................................. 73
Hình 4.39 Màn hình quản lý hóa đơn .................................................................................. 74

x


DANH MỤC BẢNG
Bảng 3.1: Mô tả Use Case đăng ký khách hàng .................................................................. 37
Bảng 3.2: Mô tả Use Case Đăng nhập của khách hàng ....................................................... 37
Bảng 3.3: Mô tả Use Case mua hàng ................................................................................... 39
Bảng 3.4: Mô tả Use Case xem danh sách sản phẩm .......................................................... 41
Bảng 3.5: Mô tả Use Case đăng nhập Admin ...................................................................... 41
Bảng 3.6: Mô tả Use Case quản lý sản phảm ...................................................................... 42
Bảng 3.7: Mô tả Use Case quản lý danh mục ...................................................................... 42
Bảng 3.8: Mơ tả Use Case quản lý hóa đơn ......................................................................... 43
Bảng 3.9: Mô tả Use Case quản lý khách hàng ................................................................... 43
Bảng 3.10: Mô tả Use Case thống kê danh thu .................................................................... 44
Bảng 4.1: Thuộc tính Products ............................................................................................ 54
Bảng 4.2: Thuộc tính Categories ......................................................................................... 54
Bảng 4.3: Thuộc tính Customers ......................................................................................... 55
Bảng 4.4: Thuộc tính Admins .............................................................................................. 55
Bảng 4.5: Thuộc tính Orders................................................................................................ 55
Bảng 4.6: Thuộc tính Comments ......................................................................................... 56
Bảng 4.7: Thuộc tính Campains .......................................................................................... 56
Bảng 5.1 Kiểm tra đăng nhập khách hàng ........................................................................... 76
Bảng 5.2 Kiểm tra đăng ký .................................................................................................. 77
Bảng 5.3 Kiểm tra đăng nhập admin ................................................................................... 78
Bảng 5.4 Kiểm tra thêm sản phẩm ....................................................................................... 80

Bảng 5.5 Kiểm tra thêm danh mục ...................................................................................... 82

xi


CHƢƠNG 1. TỔNG QUAN
1.1

TỔNG QUAN ĐỀ TÀI

1.1.1 Đặt vấn đề
-

Hiện nay có khá nhiều web bán hàng thuộc các đơn vị kinh doanh tại Việt

Nam trên internet, qui mô từ nhỏ đến lớn,... nhƣng đa số những web này khá tƣơng
tự nhau và chƣa có nhiều lắm sự tƣơng tác với ngƣời sử dụng. Khi một khách hàng
vào một website thƣơng mại điện tử thì có hai xu hƣớng: thứ nhất là họ đã định
hƣớng đƣợc sản phẩm cụ thể mà họ đã mua, thứ hai là họ chỉ định hƣớng đƣợc loại
sản phẩm mà họ sẽ mua. Đối với trƣờng hợp thứ nhất thì đơn giản là họ đã định
hƣớng đƣợc sẽ mua sản phẩm nào rồi, vấn đề chỉ là chọn mua ở đâu mà thôi. Đối
với trƣờng hợp thứ hai thì ngƣời dùng sẽ gặp khó khăn hơn nhiều, họ sẽ phải chọn
sản phẩm phù hợp nhất với nhu cầu của họ. Vấn đề đặt ra là làm sao họ có thể làm
đƣợc điều đó trong vơ vàn sản phẩm cùng chủng loại mà họ đang tìm. Trong trƣờng
hợp này ngƣời dùng sẽ cần đến sự trợ giúp của hệ thống gợi ý sản phẩm để giải
quyết vấn đề về này.
-

Rất lâu rồi facebook hay youtube, Ebay, Amazon, Netflix đã có chức năng gợi


ý ngƣời dùng, dựa vào chủ đề mà ngƣời dùng click và xem, cũng nhƣ thời gian
ngƣời dùng xem, hay dựa vào thông tin của ngƣời dùng nhƣ địa chỉ, tuổi, giới tính
mà có những gợi ý phù hợp, giúp cho ngƣời dùng có trải nghiệm tốt hơn, thích thú
hơn khi sử dụng.
-

Đa số các website bán hàng hiện tại chƣa có hệ thống phân tích gợi ý ngƣời

dùng hay chức năng gợi ý ngƣời dùng cũng nhƣ có các giải pháp về trải nghiệm
ngƣời dùng nhƣ lƣu lại giỏ hàng hay lƣu lại những sản phẩm đã xem nhƣng cũng
chƣa thật sự đem lại trải nghiệm tốt hơn cho ngƣời dùng.

1


Hình 1.1: Mơ tả tượng trưng u cầu mua hàng
-

Do đó tại sao chúng ta khơng tích hợp hệ gợi ý ngƣời dùng cho một web bán

hàng? Với nó, phần nào làm tăng giá trị web của doanh nghiệp, cũng nhƣ tăng tỉ lệ
thành công hơn khi khách hàng khi đến với web, cũng tăng trải nghiệm cho ngƣời
dùng tốt hơn.
1.1.2 Giới thiệu chung
-

Đề tài em chọn là ―Xây dựng web bán hàng tích hợp gợi ý sản phẩm đến ngƣời

dùng‖ em chọn cũng vì những lý do trên, bên cạnh đó cũng vì em muốn trải nghiệm
một cơng nghệ mới lạ với nhiều thử thách mới, để trau dồi bản thân.

-

Ứng dụng Web sẽ hoạt động gồm các chức năng : đăng nhập mua hàng, xem

hàng, tìm kiếm sản phẩm, thêm sản phầm vào giỏ hàng. Phần quản trị sẽ có phần
quản lý sản phẩm, quản lý khách hàng, quản lý thể loại, quản lý hóa đơn
-

Phần chính quan trọng là gợi ý cho ngƣời dùng, dựa vào thông tin tài khoản

của ngƣời dùng có những thơng tin về tuổi, tùy vào từng loại thơng tin và ngữ cảnh
thì sẽ có những sản phẩm phù hợp để gợi ý. Đối với những tài khoản đã mua hàng
thì sẽ gợi ý theo những sản phẩm đã mua và những loại sản phẩm tƣơng tự, và cũng
gợi ý theo hành vi của ngƣời dùng dựa vào lƣợt click vào sản phẩm, hay thời gian
xem sản phẩm.

2


-

Khách hàng sẽ đƣợc gợi ý những mặt hàng mà họ đang quan tâm mỗi khi họ

quay lại hệ thống, giúp họ nhìn thấy ngay những sản phẩm họ đang quan tâm trên
web.
1.1.3 Giải pháp
-

Để giải quyết bài toán này, hệ thống gợi ý trong đồ án này sẽ sử dụng kết


hợp hai phƣơng pháp gợi ý là đối sánh mẫu và phản hồi ngƣời dùng.
-

Về tổng quan hệ thống gợi ý sẽ đƣợc chia làm hai pha:

Danh sách gợi ý ban đầu: Trong phiên gợi ý này hệ thống sẽ dựa trên lịch sử phản
hồi ngƣời dùng để đƣa ra gợi ý. Phiên này, hệ thống sử dụng phƣơng pháp gợi ý đối
sánh mẫu.
Gợi ý dựa trên phản hồi ngƣời dùng: Trong phiên gợi ý này ngƣời dùng sẽ phản hồi
lại các thuộc tính của sản phẩm mà ngƣời dùng mong muốn. Từ đó hệ thống gợi ý
sẽ xử lý dữ liệu để tìm ra những sản phẩm phù hợp nhất với yêu cầu ngƣời dùng.
Ngƣời dùng phản hồi các thuộc tính một cách trực tiếp các thuộc tính dựa trên các
thuộc tính mà ngƣời dùng đang xem. Hệ thống sẽ sử dụng kết hợp hai phƣơng pháp
gơi ý là đối sánh mẫu và phản hồi ngƣời dùng.

3


CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
2.1

Tổng quan công nghê sử dụng

2.1.1 Giới thiệu chung
Xây dựng web:
+ back end : Nodejs, expressJs, Javascript
+ font end : ejs, html, css, bootraps, jquery.
+ database : neo4j.
2.1.2 Lý do chọn công nghệ
Nodejs là công nghệ sử dụng phù hợp cho các ứng dụng, web cần sự tƣơng

tác nhanh với ngƣời dùng,với cộng đồng phát triền mạnh mẽ đa số các vấn đề trong
lập với Nodejs đều đƣợc giải quyết.
Neo4j là cơ sở dữ liệu đồ thị mạnh mẽ trong phần gợi ý ngƣời dùng, mạng xã
hội.
2.2

Nodejs

2.2.1 Giới thiệu
Node.js là một nền tảng chạy trên mơi trƣờng V8 JavaScript runtime - một trình
thơng dịch JavaScript cực nhanh chạy trên trình duyệt Chrome. Bình thƣờng thì bạn
cũng có thể tải bộ V8 và nhúng nó vào bất cứ thứ gì, Node.js làm điều đó đối với các
web server. JavaScript suy cho cùng cũng chỉ là một ngơn ngữ - vậy thì khơng có lý
do gì để nói nó khơng thể sử dụng trên mơi trƣờng server tốt nhƣ là trong trình duyệt
của ngƣời dùng đƣợc.
Trong một mơi trƣờng server điển hình LAMP (Linux-Apache-MySQL-PHP),
bạn có một web server là Apache hoặc NGINX nằm dƣới, cùng với PHP chạy trên
nó. Mỗi một kết nối tới server sẽ sinh ra một thread mới, và điều này khiến ứng dụng
nhanh chóng trở nên chậm chạp hoặc quá tải - cách duy nhất để hỗ trợ nhiều ngƣời
dùng hơn là bằng cách bổ sung thêm nhiều máy chủ. Đơn giản là nó khơng có khả

4


năng mở rộng tốt. Nhƣng với Node.js thì điều này khơng phải là vấn đề. Khơng có
một máy chủ Apache lắng nghe các kết nối tới và trả về mã trạng thái HTTP - bạn sẽ
phải tự quản lý kiến trúc lõi của máy chủ đó. May mắn thay, có một số module giúp
thực hiện điều này đƣợc dễ dàng hơn, nhƣng công việc này vẫn gây cho bạn một
chút khó khăn khi mới bắt đầu. Tuy nhiên, kết quả thu đƣợc là một ứng dụng web có
tốc độ thực thi cao.


Hình 2.1: Mơ hình hoạt động nodeJs
Cách thức hoạt động
Cứ mỗi request tới sẽ đƣa vào một hàng đời,event loop trong nodejs luôn hoạt
động để bắt lấy, và những yêu cầu đó sẽ đƣợc xử lý đo lƣờng xem đó có phải là một
tiến trình bất đồng bộ khơng.Nếu là bất động bộ thì sẽ cấp một thread pool đóng vai
trị nhƣ một worker để xử lý tiến trình bất đồng bộ đó, sau khi xử lý xong, sẽ trả về

5


event loop và trả về cho ngƣời gửi. Đối với những yêu cầu không bất đồng bộ sẽ
đƣợc sử lý ngay và trả về kết quả cho ngƣời gửi.
2.3

Express và JavaScript

2.3.1 Giới thiệu
-

JavaScript:
Javascript là ngôn ngữ rất nỗi trong vài năm trong trong mảng lập trình web

back-end và cũng là ngơn ngữ chính trong lập trình web font-end trong nhiều năm.
Ngơn ngữ có cú pháp dễ dàng học, điều khiến Javascript có thể sử dụng làm
ngơn ngữ lập trình backend là do sự xuất hiện của ES5, ES6( phiên bản nâng cấp )
có nhiều các thức đồng bộ (ví dụ : promise, async await, arrow function),vv .Và
đang đƣợc cập nhật hàng ngày.Bên cận đó có cộng đồng phát triển mạnh mẽ.
Theo thống kê của


trên các nguồn nhƣ StackOverflow

TIOBE, PYPL, GitHub, thì javascript là ngơn ngữ nằm trong top phổ biến nhất.
JavaScript đƣợc tiêu chuẩn hóa tại Ecma International — the European
association for standardizing information and communication systems, Liên kết
Châu Âu cho các tiêu chuẩn hóa hệ thống thơng tin và truyền thông (ECMA trƣớc
đây là viết tắt cho the European Computer Manufacturers Association) cung cấp
một tiêu chuẩn hóa, nền tảng ngơn ngữ lập trình mở quốc tế lên JavaScript. Phiên
bản đã tiêu chuẩn hóa của JavaScript đƣợc gọi là ECMAScript, làm việc giống với
cái cách mà tất cả ứng dụng đã đƣợc hỗ trợ theo tiêu chuẩn. Các công ty có thể sử
dụng tiêu chuẩn ngơn ngữ mở (open standard language) để phát triển
các implementation của JavaScript riêng cho họ. Tiêu chuẩn ECMAScript là tài liệu
nằm trong tiêu chuẩn ECMA-262 (ECMA-262 specification). JavaScript thƣờng
đƣợc nhúng trực tiếp vào một trang web hoặc đƣợc tham chiếu qua file .js riêng. Nó
là ngơn ngữ phía client, tức là script đƣợc tải về máy của khách truy cập và đƣợc xử
lý tại đó thay vì phía server là xử lý trên server rồi mới đƣa kết quả tới khách truy
cập.

6


JavaScript thƣờng đƣợc nhúng trực tiếp vào một trang web hoặc đƣợc tham
chiếu qua file .js riêng. Nó là ngơn ngữ phía client, tức là script đƣợc tải về máy của
khách truy cập và đƣợc xử lý tại đó thay vì phía server là xử lý trên server rồi mới
đƣa kết quả tới khách truy cập.
JavaScript và Java thì giống nhau ở những cái này nhƣng lại khác nhau ở cái
khác. Ngơn ngữ JavaScript có lẽ giống giống với ngơn ngữ Java nhƣng JavaScript
khơng có khai báo static cũng nhƣ không kiểm tra kiểu mạnh (strong type checking)
nhƣ Java. Cú pháp lập trình, đặt tên cơng thức và xây dựng dòng điều khiển
(control-flow) cơ bản của JavaScript phần lớn dựa theo ngơn ngữ lập trình Java, đó

cũng là lý do tại sao JavaScript đƣợc đổi tên từ LiveScript thành JavaScript.
Ngƣợc lại với hệ thống thời gian biên dịch (compile-time) Java của các lớp
đƣợc xây dựng bởi các khai báo, JavaScript hỗ trợ nền tảng hệ thống thời gian
chạy dựa trên một số lƣợng nhỏ các loại dữ liệu đại diện cho số, boolean và dữ liệu
các chuỗi. JavaScript có một mơ hình ít phổ biến hơn là mơ hình đối tƣợng dựa trên
nguyên mẫu ( prototype-based ) thay vì các mơ hình đối tƣợng dựa trên lớp (classbased). Các mơ hình dựa trên nguyên mẫu cung cấp khả năng thừa kế năng
động; nghĩa là, những gì đƣợc kế thừa có thể khác nhau cho các đối tƣợng khác
nhau. JavaScript cũng hỗ trợ các phƣơng thức (function) không khai báo bất cứ gì ở
trong. Phƣơng thức có thể là một trong các thuộc tính (property) của các đối
tƣợng, thực thi nhƣ là một phƣơng thức đã đƣợc định kiểu (loosely typed methods).
JavaScript là một ngôn ngữ rất tự do so với Java. Bạn có thể khơng cần khai
báo tất cả biến (variable), lớp (class) và cả phƣơng thức (method). Bạn không cần
quan tâm cho dù phƣơng thức đó là public, private hoặc protected, và bạn không
cần phải implement interfaces. Biến, tham số (parameters), và kiểu trả về của
phƣơng thức (function return) cũng không cần phải rõ ràng.
-Express: Đây là một framework dựa trên ngôn ngữ javascript, nên tảng
NodeJs để xây dựng, framework này hổ trợ các phƣơng thức http, midleware,...
giúp cho việc lập trình web vầ Api

7


Express js là một Framework nhỏ, nhƣng linh hoạt đƣợ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
Về các package hỗ trợ: Expressjs có vơ số các package hỗ trợ nên các bạn
không phải lo lắng khi làm việc với Framework này.
Về performance: Express cung cấp thêm về các tính năng (feature) để dev lập
trình tốt hơn. Chứ khơng làm giảm tốc độ của NodeJS
Và hơn hết, các Framework nổi tiếng của NodeJS hiện nay đều sử dụng

ExpressJS nhƣ một core function, chẳng hạn: SailsJS, MEAN,...
Cấu trúc Express :

Hình 2.2: Cấu trúc express


app.js chứa các thông tin về cấu hình, khai báo, các định nghĩa,... để ứng

dụng của chúng ta chạy ok.


package.json chứa các package cho ứng dụng chạy



Folder routes: chứa các route có trong ứng dụng



Folder view: chứa view/template cho ứng dụng

8




Folder public chứa các file css, js, images,...cho ứng dụng

Tìm hiểu các khái niệm trong express :
Tìm hiều về Router trong ExpressJS

Router là một Object (khác Routing), nó là một instance riêng
của middleware và routes. Chính vì nó là một instance của middleware và route nên
nó có các chức năng của cả hai. Chúng ta có thể gọi nó là một mini-application.
Các Application dùng ExpressJS làm core đều có phần Router đƣợc tích hợp
sẵn trong đó. Router hoạt động nhƣ một middleware nên chúng ta có thể dùng nó
nhƣ một arguments. Hoặc dùng nó nhƣ một arguments cho route khác. Nghe có vẻ
khó hiểu đúng khơng nào. Chúng ta cũng có thể sử dụng Router để chia route.
Request và Response trong ExpressJS
Request : Biểu diễn một HTTP request, và có các thuộc tính cho các request
nhƣ các chuỗi truy vấn, tham số, HTML.
Response : Biểu diễn HTTP response đƣợc ứng dụng Express gửi đi khi nó
nhận các HTTP request.
2.4 Neo4j
2.4.1 Giới thiệu
Neo4j là cơ sở dữ liệu đồ thi, cơ sở dữ liệu đồ thị là một dạng cơ sở dữ liệu
thƣờng đƣợc sử dụng trong việc mô tả các mạng thông tin nhƣ mạng xã hội, mạng
cảm biến,… các dạng mà ở đó thơng tin đƣợc mơ tả nhƣ một thực thể (một đỉnh)
trên một đồ thị có hƣớng.

9


Hình 2.3: Ví dụ mơ hình lưu dữ liệu neo4j
Neo4j là hệ quản trị cơ sở dữ liệu đồ thị đầu tiên đƣợc giới thiệu vào năm
2007 và công bố phiên bản 1.0 vào năm 2010. Hiện nay neo4j là một trong những
hệ quản trị cơ sở dữ liệu đồ thị đƣợc sử dụng nhiều nhất.
Nếu nhƣ cơ sở dữ liệu quan hệ nhƣ SQLServer, MySQL, Oracle, một đối
tƣợng nhƣ MonHoc (subject) với các đặc điểm của đối tƣợng (properties) đƣợc mô
tả bằng một Bảng dữ liệu gồm nhiều cột với tên Bảng là tên của đối tƣợng, các cột
trong Bảng mô tả đặc điểm của đối tƣợng. Mối quan hệ giữa các đối tƣợng đƣợc

xây dựng bằng cách ghi nhận thông tin của thực thể cha vào thực thể con.
Đối với neo4j đối tƣợng đƣợc mô tả thành các đỉnh của đồ thị, đặc điểm của
đối tƣợng đƣợc mô tả qua thuộc tính của đỉnh và mối quan hệ giữa các đối tƣợng
đƣợc mơ tả bằng liên kết có hƣớng giữa các đỉnh.
―Graphs are one of the unifying themes of computer science—an abstract
representation that describes the organization of transportation systems, human
interactions, and telecommuni‐ cation networks. That so many different structures
can be modeled using a single formalism is a source of great power to the educated
programmer.‖ (Steven S. Skiena, Stony Brook Uni.)

10


Phát biểu trên ta cũng thấy đƣợc tầm quan trọng hiện tại của ứng dụng đồ thị
vào trong lập trình.
Hiện nay, hầu hết các thách thức dữ liệu xoay quanh các mối quan hệ, không
chỉ lập Bảng dữ liệu rời rạc. Cơng nghệ đồ thị và phân tích cung cấp các công cụ
mạnh mẽ để kết nối dữ liệu đƣợc sử dụng trong nghiên cứu, sáng kiến xã hội và giải
pháp kinh doanh nhƣ:
o Mơ hình hóa mơi trƣờng năng động từ thị trƣờng tài chính đến dịch vụ
CNTT
o Dự báo sự lây lan của dịch bệnh cũng nhƣ sự chậm trễ và ngừng dịch vụ
của Ripple
o Tìm các tính năng dự đoán cho máy học để chống lại tội phạm tài chính
o Khám phá các mẫu cho các trải nghiệm và đề xuất đƣợc cá nhân hóa
Khi dữ liệu ngày càng kết nối với nhau và các hệ thống ngày càng tinh vi, nó
rất cần thiết để sử dụng các mối quan hệ phong phú và phát triển trong dữ liệu.
- Neo4j là cơ sở dữ liệu dạng đồ thị nên mơ hình lƣu trữ, cấu trúc lƣu trữ và
đối tƣợng mang đặc điểm của cơ sở dữ liệu dạng đồ thị nói chung. Tức là Neo4j
lƣu trữ dữ liệu trên các nút (node), xây dựng lên các cấu trúc dữ liệu khác nhau

bằng các relationships.

11


×