Ung dụng chủ yếu hướng đến giải quyết bài toán gợi ý sản phẩm dựa trên hành vi mua sắm cũng như tìm kiếm của những người dùng với nhau để tìm ra những điểm tương đồng trong việc mua sắm
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
LÊ THÀNH AN
KHÓA LUẬN TÓT NGHIỆP
XÂY DỰNG VÀ PHÁT TRIEN UNG DUNG BAN HANG TÍCH HỢP GỢI Ý
SAN PHAM DEN NGƯỜI DUNG
E-Commerce Recommendation Application
KY SU NGANH TRUYEN THONG VA MẠNG MAY TÍNH
TP HO CHi MINH, 12/2020
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG ĐẠI HỌC CONG NGHỆ THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG
LE THANH AN - 16520008
KHOA LUAN TOT NGHIEP
XÂY DỰNG VA PHAT TRIEN UNG DUNG BAN HÀNG TÍCH HỢP GOI Y
SAN PHAM DEN NGƯỜI DUNG E-Commerce Recommendation Application
KY SƯ NGANH TRUYEN THONG VÀ MẠNG MAY TÍNH
TP HO CHi MINH, 12/2020
Trang 3DANH SÁCH HỘI DONG BAO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng năm
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
CỦA CÁN BỘ HƯỚNG DÂN
Tên khoá luận:
XÂY DUNG VA PHAT TRIEN UNG DUNG BAN HÀNG TÍCH HỢP GOI Ý
SAN PHAM DEN NGUOI DUNG
SV thực hiện: Cán bộ hướng dẫn:
Lê Thành An 16520008 Ths.Thái Huy Tân
Đánh giá khoá luận
1 Về cudn báo cáo:
Số trang - Số chương
So bảng sô liệu So hình vẽ
Số tài liệu tham khảo Sản phâm
Một số nhận xét về hình thức cuốn báo cáo:
Đánh giá chung:
Điểm sinh viên: Người nhận xét
Lê Thành An Levees eee /10 (Ký tên và ghi rõ họ tên)
Trang 5ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
XÂY DUNG VA PHAT TRIEN UNG DỤNG BAN HANG TÍCH HỢP GOI Ý
SAN PHAM DEN NGƯỜI DUNG
SV thực hiện: Cán bộ phản biện:
Lê Thành An 16520008
Đánh giá khoá luận
1 Vé cuôn báo cáo:
Số trang Số chương
So bảng sô liệu So hình vẽ
S6 tài liệu tham khảo Sản phâm
Một số nhận xét về hình thức cuốn báo cáo:
Đánh giá chung:
Điểm sinh viên: Người nhận xét
Lê Thành An Levees eee /10 (Ký tên và ghi rõ họ tên)
Trang 6LOI CAM ONĐầu tiên, với tat cả lòng biết ơn và su kính trọng, em xin trân trọng cảm on quý thay,
cô khoa Mạng máy tính và Truyền thông, cũng như các thầy, cô đang công tác tạitrường Đại học Công nghệ Thông tin - ĐHQG-HCM đã dùng tat cả tri thức và tâmhuyết dé truyền đạt những kiến thức, kinh nghiệm quý báu cho em trong suốt quá trình
học tập và rèn luyện tại ngôi trường này.
Đặc biệt, em xin gửi lời tri ân chân thành và sâu sắc đến Ths Thái Huy Tân — ngườithầy hướng dẫn đã hết sức tận tâm, nhiệt tình hỗ trợ và hết lòng giúp đỡ cho em trongsuốt quá trình thực hiện khóa luận tốt nghiệp Những định hướng, bổ sung, góp ý củathầy là nguồn cảm hứng và nền tảng cơ sở góp phần giúp em có những nghiên cứuđúng đắn, đạt được kết quả tốt nhất trong việc xây dựng, phát triển ứng dụng và hoànthiện khóa luận tốt nghiệp
Tiếp theo, em xin được phép gửi lời cảm ơn đặc biệt đến gia đình và người thân Giađình luôn là chỗ dựa tinh thần vững chắc, là nguồn động lực lớn giúp em vượt qua mọikhó khăn, phan dau hoàn thành tốt khóa luận nay
Cuối cùng, em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên trường Đại họcCông nghệ Thông tin đã nhiệt tình hỗ trợ, chia sẻ ý kiến, góp ý giúp em trong suốt thời
gian thực hiện khóa luận.
Một lần nữa, em xin chân thành cảm ơn và xin gửi lời chúc sức khỏe đến quý thầy, cô.Kính chúc khoa Mạng máy tính và Truyền thông ngày càng phát triển và thành công
trong sự nghiệp “chẻo đò” cao quý.
TP Hồ Chí Minh, tháng 12 năm 2020
Tác giả
Trang 7ĐẠI HỌC QUOC GIA TP HO CHÍ MINH CONG HOA XÃ HỘI CHỦ NGHĨA VIET NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
ĐÈ CƯƠNG ĐÈ TÀI LUẬN VĂN KỸ SƯ
1 Tên đề tài hoặc hướng NC:
Tên tiếng Việt: Ứng dụng bán hàng tích hợp gợi ý đến người dùng
Tên tiếng Anh: E-Commerce Recommendation Application
2 Ngành và mã ngành đào tạo:
Ngành: Truyền thông và mạng máy tính
Mã ngành : 52480102
3 Họ tên học viên thực hiện dé tài, khóa-đợt học:
Họ tên sinh viên: Lê Thành An MSSV: 16520008
Người hướng dẫn: ThS Thái Huy Tân
Địa chỉ email: tanth@uit.edu.vn Điện thoại: 0383410784
4 Tổng quan tình hình NC
Trong những năm gần day, việc sử dụng các ứng dụng trên các thiết bị di động dan trở
nên phổ biến hơn và gần như trở thành một phan trong cuộc sống hằng ngày Các ứng
dụng di động có mặt trong nhiều lĩnh vực như giáo dục, tài chính — kinh doanh, báo
chí, giao thông, y tế, công nghiệp, nông nghiệp, du lich, dich vu, giải trí và thé thao.
Xây dựng ứng dụng trên thiết bị di động đã và đang tiếp tục là xu thế trong nền công
nghiệp phần mềm.
Hiện nay có khá nhiều Web/ Ứng dụng 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 ứng dụng 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
mua sắm online thì có hai xu hướng: thứ nhất là họ đã định hướng được sản phẩm mà
Trang 8họ sẽ mua, thứ hai là họ chỉ tham quan mà chưa biết mình sẽ mua gì Van dé đặt ra là
làm sao người dùng có thể chọn mua được những sản phẩm phù hợp nhất với mình
trong vô vàn sản phẩm mà họ đang tìm 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 đề này.
5 Tính khoa học va tính mới
Ý tưởng về ứng dụng mua sắm tích hợp gợi ý dựa trên các tiêu chí do người ding cung
cấp là một ý tưởng mới và trên thị trường vẫn chưa có nhiều ứng dụng đáp ứng được nhu cầu trên Nên có thể xem đây là một vấn đề mới, đáp ứng được nhu cầu, cũng như
xu hướng hiện tại của ngành lập trình ứng dụng di động và rất cần được nghiên cứu,
khai thác.
Ung dụng chủ yếu hướng đến giải quyết bài toán gợi ý sản phẩm dựa trên hành vi mua sắm cũng như tìm kiếm của những người dùng với nhau để tìm ra những điểm tương đồng trong việc mua sắm từ đó tạo nên một hệ thống gợi ý sản phẩm Đây là một
hướng giải quyết mới hơn so với các ứng dụng hiện nay trên thị trường.
Ứng dụng được kỳ vọng sẽ mang lại lợi ích thiết thực khi tạo ra trải nghiệm mua săm tốt hơn cho người dùng, phần nào làm tăng giá trị của doanh nghiệp, cũng như tăng tỉ
lệ mua hàng thành công hơn khi khách hàng khi đến với app.
6 Mục tiêu, đối tượng và phạm vi nghiên cứu
6.1 Mục tiêu
Xây dựng một ứng dụng di động hoạt động trên nền tảng Android mang tên “EC
Mobile” với những mục tiêu cụ thể như sau:
- Ung dụng giải quyết được van dé đặt ra ban đầu về nhu cầu mua sắm của người
dùng Gợi ý sản phẩm cho người dùng, tuỳ 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
hang thì sẽ gợi ý theo những sản pham đã 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 yêu thích sản phẩm.
Trang 9- Thu thập thông tin dir liệu các sản phẩm từ trang tiki.vn về làm dữ liệu chính
của ứng dụng.
- Ứng dụng cung cấp các chức năng cơ bản như đăng ký, đăng nhập, sửa chữa
profile, thêm giỏ hàng, thanh toán, bình luận sản phẩm.
- Ứng dụng có các tinh năng nâng cao như hiển thị các sản phẩm nội bật, các sản
phẩm gợi ý theo từng người dùng dựa trên thuật toán từ đó mang đến cho người
dùng những trãi nghiệm hữu ích.
6.2 Đối tượng nghiên cứu
Khóa luận này hướng đến việc nghiên cứu các đối tượng sau:
- Nghiên cứu và tìm hiểu về thư viện React Native trong việc xây dựng giao diện
cho ứng dụng.
- _ Nghiên cứu và tìm hiểu về Node.js và hệ quản trị cơ sở dữ liệu Neo4j trong việc
xây dựng server cho ứng dụng.
6.3 Phạm vi nghiên cứu
Đề tài được nghiên cứu trong phạm vi phòng thí nghiệm.
7 Nội dung, phương pháp
Giai đoạn 1: Khảo sát, phân tích và thiết kế hệ thống cho ứng dụng.
- Kết quả dự kiến: Xác định các chức năng, luồng xử lý dữ liệu của ứng dụng.
Định hướng quá trình xây dựng và phát triển ứng dụng.
- Phương pháp: Thu thập thông tin người dùng, xây dựng các mô hình phân ra
chức nang, usecase, luồng đữ liệu và mô hình thực thể kết hợp.
Giai đoạn 2: Nghiên cứu, tìm hiểu công nghệ, kỹ thuật, các thư viện cần sử trong để
xây dựng và phát triển ứng dụng Xây dựng Server cho ứng dụng.
- _ Kết quả dự kiến: Xây dựng Server cho ứng dung.
- Phương pháp: Ap dụng các công nghệ kỹ thuật Node.js, hệ quản trị cơ sở đữ
liệu Neo4j Thực hiện kết nối gửi, nhận đữ liệu thông qua tương tác API.
Giai đoạn 3: Xây dựng giao diện và phát triển chức năng cho ứng dụng.
Trang 10- _ Kết quả dự kiến: Xây dựng hoàn chỉnh ứng dụng từ giao điện đến chức năng.
- Phuong pháp: Sử dụng các kỹ thuât, công nghệ, thư viện mà cộng đồng lập trình
React Native hỗ trợ để hoàn thành việc xây dựng ứng dụng Kiểm thử nhiều lần
dé hoàn thiện hệ thống.
Giai đoạn 4: Hoàn thiện báo cáo.
- Kết quả dự kiến: Hoàn chỉnh bảo cáo, trình bày báo cáo trước giảng viên và hội
đồng.
- Phương pháp: Tự đánh giá và so sánh kết quả đạt được với các mục tiêu dé ra
ban dau dé tiến tới kết luận, nhìn nhận ưu khuyết điểm và hoàn thiện báo cáo.
8 Kế hoạch bố trí thời gian NC
Thời gian Nội dung tập trung thực hiện
07/09/2020 — 21/09/2020 Tìm hiểu về Cơ sở dit liệu Neo4j
19/10/2020 — 26/10/2020 Chinh stra va hoan thién back-end.
26/10/2020 — 09/11/2020 Xây dung giao điện cho Mobile và đô di
liệu.
09/11/2020 - 16/11/2020 Xây dựng trang admin quản lí khách
hàng.
16/11/2020 — 29/11/2020 Tiến hành deploy server và xuất file app
30/11/2020 — 20/12/2020 Tổng duyệt hệ thống, kiểm tra độ chính
xác.
Trang 1121/12/2020 — 27/12/2020 Hoan tat báo cáo khoá luận tốt nghiệp.
28/12/2020 — 10/01/2020 Phản biện khoá luận tốt nghiệp
11/01/2020 — 17/01/2020 Bảo vệ khoá luận tốt nghiệp
9.Tai liệu tham khảo
[1] [Trực tuyến] Available: https://nodejs.org/en/ [Đã truy cập tháng 10 2020]
[2] [Trực tuyến] Available: https://neo4j.com/ [Đã truy cập thang 10 2020]
[3] [Trực tuyến] Available:
https://www.dbooks.org/graph-algorithms-14920578 19/read/ [Đã truy cập thang 10 2020].
[4] [Truc tuyén] Available:
https://go.neo4j.com/rs/710-RRC-335/images/Graph_Databases_for_Beginners.pdf [Đã truy cập thang 10 2020].
[5] [Truc tuyến] Available: https://reactnative.dev/docs/getting-started [Đã truy cập
thang 10 2020].
TP HCM, ngày tháng năm
NGƯỜI HƯỚNG DẪN SINH VIÊN
(Họ tên và chữ ký) (Họ tên và chữ ký)
Trang 121.1 Tên để tài -226xccc chu cong 191111 c1 HH1 1111111 1111111 111111.10111111 11.111 2
1.3 Muc n0 vi SN .e ö443 31.4 Đối tượng và phạm vi nghiên cứu -¿¿2+2++22EEE+++t2EEEE+z+tttEEk+errrrrrkecree 5
1.4.1 Đối tượng nghiên CỨU -2- ¿5£ S£+E£+E£+EE£EE+EEEEEEEEEEEEEEEEEEEEEEEErkrkrrrkrree 5
1.4.2 Pham h0) an 6
1.5 Nội dung và phương pháp nghiên CỨU - 252522 S2£+E+E+tEEE+E+t+eEexetxersrreererre 6
1.6 Cấu trúc khoá luận -. -¿- -s+22+2+EEE22EE22E1127E12E112E1127E122111211E2211 2112112 E1 Errrky 12
Trang 13Chương 2 CƠ SỞ LÝ THUYÊTT - 2-2-2 S£9E2E££E£+EEEEE£EEEEEEEEEEEEEEEEEEEErrkrrerrree 13
2.1 Tổng quan công nghê sử dụng 2-©+2++2EE+++2EEEE+tEEEEEEEEEEtEEEkxrrrrrkrrere 13
2.1.1 GiGi thigu CHUNG 0.134 13
2.1.2 Lý do chọn công Nghé - 5 21199 gu ngư 13
"8Ð 0 hồ 13
2.2.1 GiGi thigu 13
2.2.2 Tai sao nên sử dụng Node.js eceeescesceceneceeeeeceseeeceaeeeacecseeceaeeeeeeseeeeaeeeaee 14
2.2.3 Ap dung Node.js vào dé tài xây dựng ứng dung EC Mobile - 15
2.3 Neo4| Œp đe @ / 16
2.3.3 Labels trong ÏNe0O4|J, - cà LH HS HH HH He 18
2.3.4 Relationships trong ÌNe0O4|J - - nh HH HH ng ng Hư 19
2.3.5 Properties trong NCO4] oc cecesceseesceseeecceseescceseceeeeseceeeseceeeseeseceaeeeeeaeeaeeees 19
2.3.6 Traversal trong NC04] ce eesssessessececcesecseesseeseceseseceseseseseseeeaeeeeeeeeeeeaes 20
2.3.8 Interaction 0n 20
2.3.9 Isolation Ï€V€ÌÏS 2010101101101 111 1111199535111 1kg 5 kg 21
Trang 142.3.10 Default locking behavior - - 5 + E111 1 vn rệt 21
2.3.11 Deadlocks - án TH TH TH HH re 21
2.3.12 Delete S€IanIICS - 5 HH TH TH HH gi nu ưự 22
2.3.13 Create Unique node - - (5 1319011211 11 911111 ng gi ng ng ng ry 23
2.3.14 Transaction ©V€TI( (+13 23191 1H TH TH TH TT TH HH Hàn 23
2.3.15 Nền tang d6 thị Neo4j ứng dụng - 2 2 2 s+E+£E+£EerEerkerrrrerree 242.3.16 Thuật toán tim đường và tìm kiếm trong đồ thị -¿s2sz5ss5s+2 242.3.17 Ngôn ngữ truy van Cypher trong Neo4j, - 2-2 + ++x+zxerxzxerxecree 25
2.3.18 TÍnh TỞ - s6 G1111 v9 TH TH TH Tu Hi HH nà rờ 26
2.3.19 Tại sao nên sử dụng NeO4] - c1 SH HH gniệt 26
2.3.20 Áp dụng Neo4j vào dé tài xây dựng ứng dụng EC Mobile 27
"con on 28
2.4.2 Tại sao nên sử dung React Native LH ng HH gi, 28
2.4.3 Áp dung React Native vào dé tài xây dựng ứng dụng EC Mobile 28Chương 3 PHAN TÍCH VÀ THIET KE HE THÓNG : ¿- 525: 29
3.1 Kiến trúc hệ thống -22-+2++++2EE+E+2EEE1222211122711127211E22711127111 2.011 Xe 20
3.2 Mô hình phân rã chức nang - +: 5+ ++2+t+t*+E+k+EESEEEEEEEEEEEEEEEEESEEEkrkrkrrrrke 30
Trang 15E600 06 75a 33
3.3.1 Mô tả Use Case đăng ký khách hàng 5 5c + + Esserseesersree 34
3.3.2 Mô tả Use Case Đăng nhập của khách hàng -. -+ <++<<x+<s++ 34
3.3.3 Mô tả Use Case Mua hàng của khách hàng - - « +s «+ csesserseess 34
3.3.4 Mô tả Use Case xem danh sách sản phẩm của khách hàng 36
3.3.5 Mô tả Use Case đăng nhập của Admin 5 5< + *S+x£+skseseeeerrexes 38
3.3.6 Mô ta Use Case quản lý sản phâm Admin 2-2 5 5£s+£E£zEz2zz25+2 38
3.3.7 Mô ta Use Case quan lý danh mục Admn - -. 5< << <£++++sex+ses2 39
3.3.8 Mô tả Use Case quản lý hóa đơn - - + SE SE + +vkskkskkskrskeskrkkree 39
3.3.9 Mô tả Use Case quản lý khách hàng -¿- +2 +5+++2£+<£+sEzsreereererse 40
3.3.10 Mô tả Use Case thong kê doanh thu 2 2 2 2 +2£E£E£EezEzzzzzzs+2 403.4 Lược d6 lớp ¿¿¿2222222222222222122221112271112221112211122201122.022.222 cu 4I3.5 Lượt đồ Sequence - 2++++2E+++222211222711127111122711127111E2.711 11 2 CC 41
3.5.1 Lượt đồ Đăng nhập - 2© 2+1 2 SEEEEE1E71211071121171211111 21111 re 41
3.5.2 Lược đồ xem danh sách sản phẩm - 2 ¿+ z++++£++Extzzxerxezrxrres 423.5.3 Lược đồ bình luận sản phẩm - ¿2 2 £+£+S++EE+EE+EEeEEerEerkerrerrerree 433.5.4 Lược đồ thêm sản phẩm vào giỏ hàng và thanh toán - - 443.6 Thiết kế cơ sở dữ LGU eeceeccescseccssecssecsssecesecesucessesesecesuccssecsssessusersesssuesstecsuesesesesteensees 45
Trang 163.6.1 Mô hình thực thé kết hOp ceccscceccsssessessessessessessessussussesssessessessessessecsecsessecaes 45
3.6.2 Mô tả thuộc tính các node đại diện - - 5-5 5523 S* 3+ +2 £++zeeezeeeeess 45
3.7 Xác định mô hình gỢI - - c5 22t S*5E2E2E121211E11111112111111711111.1111 1e 48
Chương 4 HIỆN THUC UNG DUNG EC MOBILE - 2-22 5¿2z+£xzzzxerxz 49
4.1 Các giao diện chính của Ung Ụng - - - - +52 St St EvEeEerererererrrrkrkereeerke 49
4.2 Đặc tả giao diện của Ứng Ụng ¿+ +: se ++x+t SE H1 111 111k re 49
4.2.1 Giao diện đăng nhập 5 s11 HH ng HH ng rệc 49
4.2.2 Giao diện Trang ChỦ - <1 1E HH HH Hư, 51
4.2.3 Giao diện trang tìm kiếm sản phẩm + 2 2 2 +2 ++£E+£xezEezxz+zzzzez 524.2.4 Giao diện Danh mục sản phẩm -° š mm 53
4.2.5 Giao diện quản lí cá nhân khách hàng - s2 +s+5+++s£+x£+£+vesersxss 54
4.2.6 Giao diện xem chi tiết sản Pham ¿2© 2 £+£+££2+£E+EE+£EerEezrzrerree 55
4.3 Đặc ta giao diện Web Admin - c5 2: 31+ * 2221211211111 57
4.3.1 Giao diện đăng nhập - 5-6 2c 1191 TH HH ng ngư 57
4.3.2 Giao diện chiến dịch giảm giá 2-22 2£ ©S2+EE£EESEEtEEEEEErrrxerkrerkrree 574.3.3 Giao diện sản phẩm - + 2 kSt+EE+2EEE2E211211221211121 7171211 cxeC 584.3.4 Giao diện thêm sản phẩm lấy từ dit liệu của tiki.vn 2-22 59Chương 5 KET LUẬN VA HƯỚNG PHAT TRIÉN 2- 2 5 s+£s2+£zzz2ce2 60
Trang 175.1 Kết Ua cecccccccccccccseccsecsuccsucssecsuecsucssecsuecsucsuecsusssucsuessuessussueesuessucssecsuesscsusesuessessueesueesvees 60
“mô ằăằẰằẽẼ -alDGỢNCNŨ 605.1.2 Nhược điỂm ¿- -ScSt+ESt+EEE1SEEE1SEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESEEEESEEEkrrrrrree 615.2 Huong phat trim Ng: 3“: 61
Tai ligu tham Khao eee cece 63
Trang 18DANH MỤC HÌNH VE
Hình 3.1 Công thức tính chỉ số PageRank - 2-2 5 x+E+£E+EE££E£E£EzEezrerrerrxee 7Hình 3.2 Mô tả độ ảnh hưởng của sản phẩm trên hệ thong 2 2 2 2 5+‡ 8Hình 3.3 Công thức tính chi số Jaccard c.ccccscsssessesssessssssesssessesssessesssessesssecsessseeseseseesees 9Hình 3.4 Mối quan hệ tương đồng của khách hàng - -«- -=++sx*+kEssvesseessee 9
Hình 3.5 Gợi ý từ hóa đơn của khách hang - s6 S5 + *+sEsekeerrsseeerrsee 10
Hình 3.6 Dữ lệu có được sau khi thu thập từ trang TIki.Vn -+-s++<<++sx+s+2 11
Hình 2.1 Tinh năng của NOd€.]S - c1 S191 kt 14
Hình 2.2 Ví dụ mô hình lưu dữ liệu Neo44J .- - - S5 ** +2 ++EEseerseesrerrsreree 16
Hình 2.3 Mô hình lưu trữ trong ÌNe€0O4|J - - c c1 2 1H HH ng giệt 18
Hình 2.4 Vi du node trong N@04j eeeeceesceesccesceceeeeeeeceesneceaeeesceseeeesaeeeaeeseaeesaeesaee 18
Hình 2.5 Vi du Labels trong ÌNeo04J - - - - E1 111111119 Hkt 19
Hình 2.6 Ví du Relationship trong NeO4J eseecceecceeseeesceeseeceseeeseecseeceaeeseeseeeeeaeeaee 19
Hình 2.7 Mô hình ứng dụng đồ thị NeO4) c.cccccecescesseesessessessesssessssesessessessessesseeseeaees 24
Hình 4.1 Giao diện đăng nhập - - - - + 1 11911911211 91 20901 ng nh ngàn gớc 50
Hình 4.2 Giao diện Trang chủ - <5 1 019119019111 HH 51
Hình 4.3 Giao diện Trang tìm kiẾm 2-2 2© +E£2E2EE£EE2EEEEEEEEEEEEEEEEEerkrrkrrrree 52Hình 4.4 Giao diện Danh mục sản phẩm ¬— 53
Trang 19Hình 4.5 Giao diện quản lí cá nhân khách hàng - + +22 + + + ***EE++EE+eEEseereskrrerreees 54
Hình 4.6 Giao diện chỉ tiết sản pham c cccccsccsssessssessseesseesssesssecsssesssesssecssecsssecssecssecsseessseesseee 55
Hình 4.7 Giao diện đăng nhập web admin 5 2+ 2 32x E* SH TH HH rêp 57
Hình 4.8 Giao diện chiến dịch giảm giá -2- 22 ©++2+++EEEtEEESEE+eEEErEExrerkrerrrrrrrree 58
Hình 4.9 Giao điện sản phamn ccccccccsssssssessseessessseesssessssssecsseessssesueesseessssssecsseesseeeseesseesseee 58
Hình 4.10 Giao điện thêm sản phẩm từ tiki.Vn 2-2¿52222+2E+2EE+eEEEvtrxrerxrerrrrrrrrrr 59
Trang 20DANH MỤC SƠ ĐỎ
Sơ đồ 3.1 Sơ đồ kiến trúc hệ thống -2- 2-25 +E£+E£2E2EE£EEEEEEEEEEEEEEEEEEEErkerrerree 29
Sơ đồ 3.2 Sơ đồ phân rã chức năng của khách hàng -. - 2-2 + +£+£s£zx£+£z+se2 31
Sơ đồ 3.3 Sơ đồ phân rã chức năng của Adimin 2 ¿©s+x++z++zx++zxvzxezrxeee 32
Sơ đồ 3.4 Sơ đỒ US€CaSG G5 St E1 E211 1111111111111 1111111111111 1111111 cE 33
Sơ đồ 3.5 Sơ đỗ quan hỆ - 2-2292 EEEE2E1211271211271211111211111211 11.1111 xe 41
Sơ d6 3.6 Sơ đồ đăng nhập - ¿- + 2 251 SE£EEEEEEEE2E21121121121122121111171 2121 1 cre 41
Sơ đồ 3.7 Sơ đồ xem danh sách sản phâẩm - + 2+2 ++£E+EE+EE+EEeEE£EzEerrerree 42
Sơ đồ 3.8 Sơ đồ bình luận sản phẩm 2-2-5 £2E£+E£2EE2EE+EE£EESEESEEeEEeEEerkerrerree 43
Sơ đồ 3.9 Sơ đồ thêm giỏ hàng và thanh toán -2- ¿2 +£+££+x+£Ee£xz+zxvrxezrxeee 44
Sơ đồ 3.10 Lược d6 quan hỆ - 2-22 2 S£2S2‡EE2EE9EEE2EE2E1E71211171221171.211 21 xe 45
Trang 21DANH MỤC BANG BIEU
Bang 1.1 Thống kê chức năng ứng dụng - 2-2 2 x+SE+£E+EEtEE£E£EzErrerrerrxee 3Bang 1.2 Bảng thuộc tính sản phẩm -2- 2: 5£ £2E2£E£+E£2EE£EE2EEEEEEEEeEErrkerrerreee 11
Bang 3.1 Mô tả Use Case đăng ký khách hang cee ceeeseeseceeeneceeeeeeeeceseeeeeeeeaeeees 34
Bang 3.2 Mô ta Use Case Đăng nhập của khách hang +5 «++sc+s<++exsss2 34
Bang 3.3 Mô tả Use Case mua hàng - - - 5 11T ng rệt 34
Bang 3.4 Mô ta Use Case xem danh sách sản phẩm 2-2 2£ + +£x+£xzxz+zz+t 36
Bảng 3.5 Mô tả Use Case đăng nhập Admin - - s25 + £+*£+eeeexeereeeseereses 38
Bang 3.6 Mô tả Use Case quản lý sản phẩm - 5 s1 E + kEsvEssesiesseesrsree 38
Bang 3.7 Mô ta Use Case quan lý danh mục «5 5+ +52 **+£+2E£eEesEeereererrsee 39
Bảng 3.8 Mô ta Use Case quản lý hóa đơn c5 3 + SEEsresrrereseserrree 39
Bang 3.9 Mô ta Use Case quản lý khách hàng - 5 56+ + *++2kE+skEssereeereses 40
Bang 3.10 Mô ta Use Case thống kê danh thu 2 2 22522 E£E+£Ee£Ee£EzEezreee 40
Bảng 3.11 “Thuộc tính PrOC[UCS - 5 2< E22 E311 1931133111 1119119 1119111 1 ng Hệt 45
Bảng 3.12 Thuộc tính Categories - - (5 131911911211 1 91101 ng ng nàn gớc 46
Bang 3.13 Thuộc tính CuSfOIm€TS - G5 5 1119301910111 191v ng 46
Bang 3.14 Thuodc tinh Admins 0 n ằ - 47
Bảng 3.15 Thuộc tính Orders G5 + 21115311931 1511 1E 11 9119 111kg kt 47
Trang 22Bảng 3.16 Thuộc tính Comments
Bảng 3.17 Thuộc tính Campains.
Trang 23DANH MỤC TU VIET TAT
STT | Từ viết tắt Nội dung
1 API Application Programming Interface
2 CSDL Co sở đữ liệu
3 WWW World Wide Web
4 HTTP Hypertext Transfer Protocol
Trang 24TÓM TẮT KHOÁ LUẬN
Khóa luận với đề tài Xây dựng app bán hàng tích hợp gợi ý sản phâm đến người dùng
— EC Mobile được thực hiện trong bối cảnh sự phát triển mạnh mẽ và bùng nô củangành lập trình ứng dụng trên thiết bị di động
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 app bán hàng tích hợp gợi ý sản phẩm đến người dùng” giúp chongười mua hang cảm thấy tiện lợi hơn, được gợi ý những sản phẩm đang quan tâmkhô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
Ứng dụng EC Mobile được áp dụng các công nghệ, kỹ thuật và thư viện cần thiết như
Node.Js, Neo4j, React Native vào xây dựng và phát triển
Ứng dụng EC Mobile có giao diện trực quan, hiện đại và thân thiện với người dùng.Cùng với đó, EC Mobile sở hữu các chức năng như tìm kiếm sản pham, thêm giỏ hàng,thanh toán, bình luận và đặc biệt là chức năng hỗ trợ gợi ý sản phâm phù hợp
TP Hồ Chí Minh, ngày 15 tháng 12 năm 2020
Tác giả
Trang 25Chương 1 TONG QUAN VE DE TÀI
1.1 Tén dé tai
XAY DUNG VA PHAT TRIEN UNG DUNG BAN HANG TICH HOP GOI Y SAN
PHAM DEN NGƯỜI DUNG — EC MOBILE
(E-Commerce Recommendation Application)
1.2 Dat van dé
Hiện nay có kha nhiều web bán hàng thuộc các đơn vi 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ảnphẩm cụ thê mà họ đã mua, thứ hai là họ chỉ định hướng được loại sản phẩm ma 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, van dé 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 cau của họ Vấn dé đặ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 ý san phâm dé giải quyết van đề 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ùngxem, 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 ding 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
Do đó tại sao chúng ta không tích hợp hệ gợi ý người dùng cho một ứng dụng bán
hàng? Với nó, phần nào làm tăng giá trị của doanh nghiệp, cũng như tăng tỉ lệ thành
Trang 26công hơn khi khách hàng khi đến với app, cũng tăng trải nghiệm cho người dùng tốt
hơn.
1.3 Mục tiêu của đề tài
Xây dựng ứng dụng di động mang tên EC Mobile với những mục tiêu cụ thể như sau:
- Ung dụng giải quyết được vấn đề đặt ra ban đầu về nhu cầu mua sắm của khách
hàng Từ đó hỗ trợ gợi ý sản phẩm phủ hợp nhất dựa trên sự tương tác trong quátrình mua sắm của khách hàng
- Ung dụng cung cấp day đủ các chức năng cơ bản như đăng kí, đăng nhập, xem
hàng, thêm giỏ hàng, thanh toán, bình luận sản phẩm
- Giao diện ứng dụng được thiết kế một cách trực quan, chuyên nghiệp, thân thiện
Tìm kiếm, thêm sản phẩm vào giỏ hàng và thanh toán
(Admin) Công cụ thu thập thông tin đữ liệu sản phẩm từ trang thương
„ mại điện tử tikI.vn, lưu vê cơ sở dữ liệu.
Trang 27bình luận và mua sản pham)
- _ Nội dung bình luận
Chức năng bình luận bao gồm:
- Nội dung bình luận
- Mute độ hai lòng (tốt, không tốt) đối với sản phẩm
Gợi ý sản phẩm
đang nằm trong
chiên dịch giảm giá
Hệ thống tạo nhiều chiến dịch giảm giá, trong mỗi chiến dịchbao gồm các sản phẩm phù hợp theo nội dung chiến dịch vàđược giảm theo một mức giá nhất định
cao trong tuân
Hệ thống sử dụng thuật toán PageRank dé đánh giá tam quantrọng tương đối của 1 sản phâm nhất định trong toàn bộ hệthống Từ đó có được danh sách những sản phẩm tốt, đượcnhiều người quan tâm giúp khách hàng có trãi nghiệm tốt hơn
trong việc tìm kiêm sản phâm.
việc mua sam.
Thuật toán này so sánh tập hợp các nút (ở đây là những khách
Trang 28các khách hàng với | hàng) có những điểm chung ví dụ cùng yêu thích một sản
nhau phẩm, từ đó thống kê được danh sách những Khách hang có
chung sở thích.
Khi đó hệ thống sẽ gợi ý những sản phẩm mà khách hàng này
đã mua cho các khách hàng khác có chung sở thích với mình.
(Nỗi bật) Khi tìm kiếm một sản phẩm, hệ thống sẽ gợi ý những sản phẩm
tương tự mà những người bạn cũng đã từng tương tác với
1.4 Đối tượng và phạm vi nghiên cứu
1.4.1 Đối tượng nghiên cứu
Khoá luận này hướng đến việc nghiên cứu các đối tượng sau:
- _ Nghiên cứu và tìm hiểu về nhu cầu thực tế của người dùng đối với ứng dụng
mua sắm gợi ý sản phẩm đến người dùng
- _ Nghiên cứu về các yêu cầu và kỹ thuật trong việc xây dựng ứng dụng trên thiết
bị di động.
- _ Nghiên cứu về các thuật toán ma Neo4j hỗ tro dé giải quyết các van đề về gợi ý
sản phâm đên người dùng.
- _ Nghiên cứu về công nghệ, cơ chế hoạt động và ứng dụng của NodeJS, hệ quan
trị cơ sở dữ liệu Neo4j trong việc xây dựng server và quản lý, lưu trữ co sở dữ liệu cho ứng dụng.
Trang 29- _ Nghiên cứu ứng dụng các kĩ thuật, thư viện hỗ trợ thiết kế giao diện ứng dụng
phù hợp với xu hướng thiết kế hiện tại trên thị trường
1.4.2 Phạm vi nghiên cứu
Đề tài được nghiên cứu và xây dựng ứng dụng cho thiết bị đi động hoạt động ở hai hệđiều hành Android và IOS Đề tài được nghiên cứu, hoàn thiện thành một sản phẩm cụthê và được kiểm tra, thử nghiệm ở quy mô vừa phải
1.5 Nội dung và phương pháp nghiên cứu
Nôi dung 1 Khảo sát nhu cầu, cách thức hoạt động của ứng dụng
Mục đích: Nắm rõ nhu cầu mua sắm online của khách hàng, biết được khi nàokhách hàng quan tâm đến những mặt hàng nào
Phương pháp thực hiện: Phân tích, khảo sát thực tế về nhu cầu của người sửdụng đối với các ứng dụng khai thác về đề tài mua sắm online
Kết quả thực hiện: Khảo sát được số liệu thống kê về nhu cầu mua sắm online,mức độ cần thiết của ứng dụng Lên kế hoạch xây dựng và phát triển ứng dụng
Nôi dung 2 Phân tích, thiết kế hệ thống và các thuật toán áp dụng để có được kết quảgợi ý sản phẩm đến người dùng
Mục đích Ap dụng các thuật toán vào xử li dit liệu dé cho ra được kết qua gỢI ý
chính xác và tốt nhất đến khách hàng
Phương pháp thực hiện Tham khảo những tài liệu về phân tích chức năng ứngdụng, tiến hành nghiên cứu các thuật toán và áp dụng vào giải quyết vấn đề
Kết quả thực hiện:
(1) Thuật toán Page Rank [3]:
Dé giải quyết bài toán gợi ý những sản pham có độ ảnh hưởng cao trong hệ thống chokhách hàng ta dùng thuật toán PageRank PageRank là thuật toán phân tích các liên kết
được dùng trong Google Search để xếp hạng các trang web Thuật toán này chỉ định
giá trị nhất định cho mỗi thành phần của một tập hợp các văn bản liên kết với nhau, ví
dụ như WWW Mục đích "đo" tầm quan trọng tương đối của các liên kết trong tập hợp
Trang 30đó Áp dụng vào bài toán dùng để đánh giá tầm quan trọng tương đối của 1 sản phẩmnhất định trong toàn bộ hệ thống Giả sử sản phâm A được các khách hàng T1 Tn quantâm (dựa vào lượt xem , mua, bình luận) Ta có công thức tính chi sỐ PageRank của sảnphẩm A như sau:
Hình 1.1 Công thức tính chỉ số PageRank
Trong đó:
T: Số lượng và chất lượng quan tâm của khách hàng đối với sản phẩm
C: Số lượng Outlink trên mỗi sản phâm.
PR: Chỉ số PageRank trên từng sản phẩm
Tham số d: Hệ số điều chỉnh, đa phần thường lấy d là 0,85
PageRanks tạo một tỉ lệ % phân bố điểm số trên các sản phẩm, do đó PageRank củatổng tất cả các sản phâm sẽ là một
Giá trị PageRank càng cao đồng nghĩa sản phẩm đó càng được nhiều người ưa chuộng.
Từ đó ta có được danh sách các sản pham đang Hot
Trang 31+ — OF ——h00000)
~~ SIMILARITY
Hình 1.2 Mô tả độ ảnh hưởng của sản phẩm trên hệ thong
Chú thích:
(1)- Node Product: Là những sản phẩm của hệ thông
(2)- Node User: Là những khách hàng của hệ thống
(3)- Node Order: Là những giỏ hàng đã được thanh toán của khách hàng.
(4)- Node Comment: Là những bình luận về một sản phâm của khách hàng
(2) Thuật toán NodeSimilarity [3]:
Sử dụng thuật toán tìm điểm tương đồng (Node Similarity) tính toán và tìm ra đượcnhững khách hàng có điểm chung trong việc mua sắm
Thuật toán này so sánh tập hợp các nút (ở đây là những khách hàng) có những điểmchung ví dụ cùng yêu thích một sản phẩm, từ đó thống kê được danh sách nhữngKhách hàng có chung sở thích Node Similarity tính toán các điểm tương đồng theocặp dựa trên số liệu Jaccard, còn được gọi là Điểm tương tự Jaccard
Trang 32Chi số Jaccard là một số từ 0 đến 1 cho biết hai tập hợp giống nhau như thé nào Nếuhai tập hợp không có phần tử chung, thì chỉ số Jaccard bằng 0 Jaccard được tính băng
cách chia kích thước giao của hai tập hợp cho hợp của hai tập hợp đó.
Trang 33Chú thích:
(1)- Node User: Là những khách hàng của hệ thống
(2)- Node Product: Là những sản phẩm của hệ thống
(3)- Relationship FOCUS: Là quan hệ về sự quan tâm của khách hàng đối với sảnphẩm được tổng hợp dựa trên 3 yếu tố: lượt xem, lượt bình luận, lượt mua
(4)- Relationship SIMILARITY: Dựa vào điểm Jaccard sau khi tính toán hệ thống sẽgán mối quan hệ “tương đồng” giữa các khách hàng
Day | Can dong ho Sức
Hình 1.5 Gợi y từ hóa đơn của khách hàng
Những sản phẩm mà User8 đã mua sẽ được mang qua dé gợi ý cho User10.
Nôi dung 3: Xây dựng công cụ thu thập dit liệu sản phẩm từ trang thương mại đện tử
tiki.vn.
Mục đích: Dé có được một lượng lớn đữ liệu sản pham đủ dé đáp ứng cho ứngdụng thì việc tạo dữ liệu băng tay hoàn toàn bất khả thi Công cụ Crawl dữ liệu manglại một khối dữ liệu lớn thuận tiện cho việc xây dựng dữ liệu ban đầu
10
Trang 34Phương pháp nghiên cứu: Thực hiện khảo sát và thu thập dữ liệu từ nhiềunguồn, các trang web thương mại điện tử Tìm hiểu và nghiên cứu các thư viện Crawl.Chọn tiki.vn làm trang thu thập đữ liệu sản phẩm.
Kết quả thực hiện: Xây dựng dữ liệu ban đầu bằng cách thu thập hơn 700 sảnphẩm theo danh mục từ trang thương mại điện từ tiki.vn
Sản phẩm thu thập bao gồm các thông tin:
Bảng 1.2 Bảng thuộc tính sản phẩm
Field Data Type M6 ta
id String Mỗi sản phẩm có 1 ID khác nhau
name String Tên của sản phẩm
price Number Giá của sản phẩm
image String Đường dan hình ảnh của san phẩm
decription String Mô tả thông tin chi tiết của sản phẩm
Xe Phoenix
Hình 1.6 Dữ léu co được sau khi thu thập từ trang Tiki.vn
Chú thích:
11
Trang 35(1)- Tất cả danh mục trong hệ thống
(2)- Tất cả sản phẩm nằm trong một danh mục của hệ thống
1.6 Câu trúc khoá luận
Trong bài báo cáo này, em xin được trình bày về những kiến thức, cơ sở lý thuyết mà
em đã nghiên cứu và áp dụng Cũng như những phân tích, đánh giá trong quá trình làm
việc, xây dựng và phát triển ứng dụng EC Mobile Báo cáo khóa luận này được trình
bày với câu trúc như sau:
Chương 1: Giới thiệu tổng quan về dé tài nghiên cứu, các van dé cần giải quyết,
mục đích nghiên cứu, phạm vi nghiên cứu và phương pháp nghiên cứu.
Chương 2: Giới thiệu các kĩ thuật công nghệ, các thư viện cần thiết đã nghiêncứu, tìm hiểu và áp dụng vào việc xây dựng phát triển dé tài
Chương 3: Đề ra các đặc tả yêu cầu phân tích thiết kế hệ thống, thiết kế kiến
trúc và các mô hình cần thiết cho toàn bộ hệ thong
Chương 4: Trinh bày việc thực hiện các thiết kế được xây dung từ chương 3,
hiện thực và giới thiệu giao diện ứng dụng, minh hoạ cách thức hoạt động thực
tế của ứng dụng
Chương 5: Tổng kết khoá luận, nêu lên ý nghĩa khoá luận, trình bày những mặt
tích cực đã đạt được cũng như nhìn nhận, đánh giá về những hạn chế còn tồn đọng Từ đó đưa ra cách giải quyết, hướng phát triển tiếp theo cho ứng dụng EC
Mobile
12
Trang 36Chương 2 CƠ SỞ LÝ THUYET
2.1 Tổng quan công nghê sử dụng
2.1.1 Giới thiệu chung
Xây dựng App:
- Back end : Nodejs, Javascript
- Font end :React Native.
- 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à co sở dữ liệu đồ thị mạnh mẽ trong phần gợi ý người ding, mang xã
hội.
2.2 NodeJS
2.2.1 Giới thiệu
Dựa theo [1] định nghĩa từ website chính thức của Node.js https://nodejs.org thì
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 phan phát sinh các sự kiện (event-driven), mô hình
non-blocking I/O dé 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
13
Trang 37Run High
Eas
Fast ¥
Integration With JS
Stacks
Versatile Processing
Times
Hình 2.1 Tinh năng cua NodeJs
Node.js là một mã nguồn mở được phat triển bởi Ryan Dahl Phiên bản đầu tiên của
Node.js được cho ra mắt vào năm 2009 Node.js có thể chạy được trên nhiều nền tảng
khác nhau như Windows, Linux hay Mac OS.
Điều đặc biệt ở Node.js mang lại là mặc dù các JavaScript thường được sử dụng trên
client thì Node.js dù được xây dựng trên nền tảng JavaScript một ngôn ngữ thuần client
nhưng có thé sử dụng dé thực hiện các công việc trên ca client va server
2.2.2 Tại sao nên sử dung Node.js
Một số đặc điểm [1] quan trọng giúp Node.js trở nên rất đáng dé nghiên cứu sử dụng
đó là:
- _ Không đồng bộ và phát sinh sự kiện (Event Driven): Tất cả các API của thư
viện Node.js đều không đồng bộ, nghĩa là blocking (khóa) Nó rất cần thiết vì
Node.js không bao giờ đợi một API trả về dữ liệu Server chuyên sang một APIsau khi gọi nó và có cơ chế thông báo về sự kiện của Node.js giúp Server nhận
được phản hồi từ các API gọi trước đó.
- Tốc độ xử ly nhanh: Được thực thi dựa trên V8 JavaScript Engine của Google
Chorme Kha năng tự build server bằng ngôn ngữ client giúp cho việc trung
14
Trang 38chuyên dữ liệu diễn ra nhanh hơn Đồng thời giảm khả năng rủi ro bị ngắt(interupt) Ngoài ra nhờ cơ chế NonI/O Blocking, tận dụng tối da tài nguyên của
server, không tạo ra độ trễ như các ngôn ngữ server-side khác
- Các tiến trình đơn giản nhưng hiệu năng cao: Node.js sử dung một mô hình
luồng đơn (single thread) với các sự kiện lặp Các cơ chế sự kiện giúp Server trảlại các phản hồi với một cách không khóa va tạo cho Server hiệu quả cao ngượclại với các cách truyền thống tạo ra một số lượng luồng hữu hạn để quản lý
request Nodejs sử dụng các chương trình đơn luồng và các chương trình nàycung cấp các dịch vụ cho số lượng request nhiều hơn so với các Server truyềnthống như Apache HTTP Server
- JavaScript là một ngôn ngữ phổ biến, điều này đã giúp node.js trở nên dễ dang
được sử dụng và áp dụng rộng rãi hơn.
- Node.js hỗ trợ rất tốt cho việc xây dựng ứng dụng thời gian thực
2.2.3 Áp dung Node.js vào đề tài xây dung ứng dụng EC Mobile
Nhóm sử dụng Node.Js vào việc xây dựng server cho ứng dụng, tạo các phương thức
Get/Post nhận và gửi kết quả cho client bởi những lợi ích to lớn mà Node.js mang lại
Khả năng xử lý dữ liệu thời gian thực, tốc độ xử lý nhanh chóng, thực hiện được nhiềuyêu cau cùng lúc va dé dang sử dụng rat phù hợp dé xây dựng server cho ứng dụng di
động Bên cạnh đó, việc sử dụng Node.js dé xây
dựng server cho phép dễ dàng can thiệp sâu vào việc xử lý, lưu trữ dữ liệu và khả
năng mở rộng lớn.
15
Trang 392.3 Neo4j
2.3.1 Giới thiệu
Neo4j [2] [4] là cơ sở dữ liệu đồ thi, cơ sở dit liệu đồ thị là một dang cơ sở dit 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, dạng mà ở đó thông tin mô tả như một thực thé trên một đồ thị có hướng
Hình 2.2 Vi du mô hình lưu dit liệu Neo4j
Neo4j là hệ quản tri cơ sở dữ liệu đồ thị đầu tiên được giới thiệu vào năm 2007 va 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ở dir 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
16
Trang 40“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).
Hiện nay, hầu hết các thách thức đữ liệu xoay quanh các mối quan hệ, không chỉ lậpBang dữ liệu rời rac Công nghệ đồ thi và phân tích cung cấp các công cụ mạnh mẽ dé
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ư:
- _ 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
- Du 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.
- Tim các tính năng dự đoán cho máy hoc dé chéng lại tội phạm tài chính
- Kham phá các mau 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ầnthiết dé 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ượngmang đặc điểm của cơ sở đữ liệu dạng đồ thị nói chung Tức là Neo4J lưu trữ dữ liệutrên các nút (node), xây dựng lên các cau trúc dit liệu khác nhau băng các relationships
17