TÓM TẮT KHÓA LUẬNKhoá luận với đề tài “Xây dựng ứng dụng quản lý thư viện sách điện tử với chứcnăng khuyến nghị và Chatbot” là là một hệ thống với hai nghiệp vụ chính là quản lýnguồn sác
Trang 1ĐẠ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
DƯƠNG THÀNH VƯƠNG
PHAN DUY ĐỨC
KHÓA LUẬN TÓT NGHIỆP
XÂY DỰNG ỨNG DỤNG QUẢN LÝ THƯ VIỆN SÁCH
ĐIỆN TU VỚI CHỨC NĂNG KHUYEN NGHỊ VA
CHATBOT
Building an online e-book library management application with
recommendation and Chatbot
KY SU NGANH KY THUAT PHAN MEM
TP HO CHÍ MINH, 2023
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HQC CONG NGHE THONG TIN
KHOA CONG NGHE PHAN MEM
DUONG THANH VUONG - 18521677
PHAN DUY DUC - 18520621
KHOA LUAN TOT NGHIEP
XAY DUNG UNG DUNG QUAN LY THU VIEN SACH
DIEN TU VOI CHUC NANG KHUYEN NGHI VA
CHATBOT
Building an online e-book library management application with
recommendation and Chatbot
KY SU NGANH KY THUAT PHAN MEM
GIANG VIEN HUONG DANTHS TRAN THI HONG YEN
TP HO CHi MINH, 2023
Trang 3THÔ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ố
" deeteeeaeeseeeeeens ngày của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Trước hết, chúng em xin gửi lời cảm ơn chân thành đến toàn bộ các khoa, bộ môn,các thầy cô giảng viên và cán bộ công nhân viên Trường Đại học Công nghệ Thông tin,Đại học Quốc gia Thành phó Hồ Chí Minh đã tạo điều kiện tốt nhất cho quá trình học
tập hơn 4 năm tại trường.
Đặc biệt, chúng em muốn cảm ơn giảng viên Trần Thị Hồng Yến đã chia sẻ kiến thức
bổ ích và hướng dẫn chúng em trong quá trình làm khóa luận
Chúng em cũng muốn cảm ơn gia đình và bạn bè đã ủng hộ và giúp đỡ trong suốt quátrình học tập và làm khóa luận Họ là nguồn động lực và sự hỗ trợ quan trọng cho chúng
Trang 5MỤC LỤC
CHƯƠNG 1 MỞ DAU oivecccssssssssessssscssssccsssccsssccssssccsssccssnecssssccssscssssecssneeeseses 2
1.1 Giới thiệu đề tai
1.7 Phương pháp thực hiỆn «<< «<5 5s sexeetsetsesrkrkrereersnssssnssk 4
1.8 Kết quả mong Agi sssssssssssssssssssccsssssssssscccsssssssscsssssssssssssssssusssesssssssnuseseessssssssessssess 5
CHƯƠNG 2 GIỚI THIỆU CÔNG NGHỆ SỬ DỤNG -.- 6
2.1 Mô hình Client-server
2.1.1 Khái niệm
2.1.2 Nguyên tắc hoạt động.
2.1.3 Ưu nhược điểm
2.2 Hệ thống khuyến nghị dựa trên Machine Learning - The Universal
Recommender
2.2.1 Khái niệm -. +-5+-©2s St 2 ETH22210211211 T1.1 T1 8
2.2.2 Đặc trưng ¿+ cành ni O
2.2.3 Ưu điểm - 22t thue 9
2.3.1 Khái niệm -+-5+-©2s 2t 2 ETH22210211211 T1 1 11111 Eerrree 9 2.3.2 Các đặc trưng của R€act -ccccseeeerrrrrrrrrrrrrrrrrrrrrrrerrree LO
2.4 React NatÏV€ c series 11
2.4.1 Khái niệm - ¿+ nàn HH HH HH HH HH HH gái 11
2.4.3 Ưu điểm co HH ưei 11
Trang 62.5 Node.js
2.5.1 Khái niệm
2.5.2 Đặc trưng của NOde.jS - nh it 12
2.5.3 Ưu điểm của Node.js occcccseerrrrririirrrrrirrrrrrirrrrr.e, T2
CHƯƠNG 3 PHAN TÍCH THIẾT KE HỆ THONG 15
3.1 Sơ đồ UML Use case.
3.1.1 Danh sách các Actor.
3.1.2 Danh sách các Use CasSe - 5-5222 E212 221212112121 111101111111 xe 17
3.1.3 Đặc tả một $6 Use ŒaS€ 552 2 St EE1227112711221121111111 1112.11.11 xe 20
3.2 Sơ đồ UML Sequence cho các chức năng chính -s -sssss<= 27
3.3 Thiết kế kiến tTÚC cvv++ HEEEE1111117111111111114000000Eptttrtttrrrtrrsrke 30 3.3.1 Sơ đồ kiến trúc hệ thống -.-:::¿222ccssccerrrrrxseerrrerrrreeceerr , 3Ô,
3.1.2 Mô tả thành phần kiến trúc hệ thống 22+222222222z+z+ttvzvvscez 30
3.4 Thiết kế cơ sở dữ liệu s«-2+ee+S22xeeEE2LAA412213382111410173340121340021143e c7 32
3.4.1 Sơ đồ các bảng dữ liệu quan hệ 222222++22222221222222211122trrrrrrree 32
3.4.2 Danh sách các bảng dữ liệu quan hệ - +c++cccsxseereeeerereeerxeee.e OO
3.4.3 Chi tiết một số bang dữ liệu quan hệ -2-¿552ccsccccsesrrrsseecceserr 35
3.4.4 Danh sách các ràng buộc quan hé -¿-¿ ¿5+5 5+ ccsesrsesesesrrrrir OO
3.5 Thiết kế cách thức triển khai Hệ thống khuyến nghị - 40 3.6 Thiết kế cách thức triển khai Hệ thống Chatbot -css<<e 41
CHUONG 4 XÂY DUNG UNG DUNG
4.1 Xây dựng Ứng dụng A dmiin ss -+s©V©EE22++esetttvrvvxxereorrrrrrrssre 43 4.3.1 Danh sách màn hình Ứng dụng Admin ccccccseeeeeeereeeee 4S
Trang 74.3.2 Một số màn hình Ứng dụng Admin và mô tả chỉ tiết - 44
4.2 Xây dựng Ứng dụng IMobile s°©22v+++sseEEovvrvxeseeeosrrrveeseee 50
4.2.1 Danh sách màn hình Ứng dụng Mobile - -: ccccscccccsccccsssccc > SO 4.2.2 Một số màn hình Ứng dụng Mobile và mô tả chỉ tiết - - SL
CHƯƠNG 5 KET LUẬN VÀ HƯỚNG PHÁT TRIÊN 60
5.1 Kết quả dat Que c sccccccsssscsssseccsssseccsssusccsssseccssssecsssnsecssssssccssnsccessssccessnsccessnsccessnecees 60
5.2 Những hạn chế -s°+©©VE22++++tttSEE222A3122222211311.20217211311.02222122 ce 60
5.3 Thuận lợi và khó khăn s << 55< se se Sen s93 6130814033840 see 61
5.2.1 Thuan hi 61
1190 na 'Ọ 5.4 Hướng phát (riÊn -«-«-s- «se EssEnEstEktrsrktExERAEEA.1401408008018.18038.018018 013 61
TÀI LIEU THAM KHAO\ ccssssssssssssssssssscssssssssssssssssnssssssssssssssessssssssnssssssees 63
Trang 8Mô hình Client — Server 6
So dé UML Use case 1 15
Sơ đồ Sequence Admin CRUD .27
Sơ đồ Sequence Đọc sách csseccsssssesssssseessssseeesssseessssssessessseeesssseeeessseeeeess 28
Sơ đồ Sequence Chatbot 2:-222222222++EEESEEt222211 2221122221 errrkr 29
Sơ đồ kiến trúc hệ thống -:¿£©2+2+++tt222EEvvrrrrrttrrrxrrrrrrrrr 30
Sơ đồ các bang dữ liệu quan hệ -:2 ©2z+2222+zetEEEEzerrrrrkerrrrks 32
Mô hình triển khai hệ thống khuyến nghị -.-2 252¿52555c2 4I
Mô hình triển khai Hệ thống Chatbot 2¿-©2222¿2222vzz+ccvscez 42
Man hình Dang nhập A dmin - - ¿2-2-5 52 5252 522*+*‡£+£s£vzzxzxree 44 Màn hình Admin Xem thông tin và tra cứu sách - 46
Màn hình Quản lý danh sách User ¿- 5-5 5c+S+xrcexexsree 48
Màn hình Thống kê -.22:22222E222+2EES++e2EEEEveEEEEvretrrvrrerrrsree 49
Màn hình Trang chủ 5-55 +52 St rketrkerrkerrrerrrerkerrrrre 51
Maan hinh 6:0 017 7® 33Màn hình Chỉ tiết sách -iccc co cccc tre 54
Màn hình Kệ sách - (2c 2t 2122321251211 E 1211115111151 ekxrke 56 Màn hình ChatbOt - - 255255 S2 S*2E2E£EEreterrrrrrree 58
Trang 9DANH MỤC BANG
Bang 1.1: Khảo sát các sản phẩm tương tự ¿5-52 522S2+EckeEEeEzEzEerkerkerxres 3
Bảng 3.1: Danh sách UML Use case ACfOT 5 5 11k ng ng ni 17 Bảng 3.2: Danh sách UML UsSe CaSG - G2 c 122111991111 11 8101 1 911 1g vn ngư 17
Bảng 3.4: Đặc tả Use case UC2 - -.- c1 11119 11191 1H TH HH ng ng 21 Bang 3.5: Đặc ta Use case UC Ổ - G1 HH 22 Bang 3.6: Đặc ta Use case UC(4| - - - c1 v1 111 1119 1 1H HH ng HH 23
Bang 3.8: Đặc tả Use case UC6 - - 5 5 «kh HH TH ng HT ngưng 25
Bang 3.9: Đặc ta Use case Chat với ChafbOI - 5 S2 S + vsEveerrerseerrrerrrre 26
Bang 3.10: Mô tả thành phần kiến trúc hệ thống - + - 552 2+£+£+£s+£s2 30
Bảng 3.11: Danh sách các bảng dữ liệu quan hỆ ¿5-5 +++<*++s++s++erssexs 33
Bang 3.12: Chi tiết bảng USER 5 5-51 SE 1218215 12E1211211217111 11111 Ee 35 Bảng 3.13: Chi tiết bảng USER_LIBRARIES 2-22-55222S252+zx2zeccszz 36 Bang 3.14: Chi tiết bảng USER,_CHATT 5: 5S SE2EE2EE‡E£EEEEEEEEEEEzErkerkeree 36
Bảng 3.15: Danh sách các ràng buộc quan hỆ - - ¿55+ ++s*++sx++s++ersserssers 38
Bảng 4.1: Danh sách màn hình Ứng dụng Admin - - «<< <++<++ee+ses 43
Bảng 4.2: Mô tả các thành phần màn hình Đăng nhập Admin - 44 Bảng 4.3: Mô tả các thành phần màn hình Admin Xem thông tin và tra cứu sách.46 Bảng 4.4: Mô tả các thành phan màn hình Quản lý danh sách User 48 Bang 4.5: Mô tả các thành phần màn hình Thống kê - 2-2-5 5¿+5z25+25+ 49
Bảng 4.6: Danh sách màn hình ứng dụng Mobile - 5-5 +s<*s+s++sseerssers 50
Bang 4.7: : Mô tả các thành phần màn hình Trang chủ 2- 2-2 2+2 51 Bang 4.8: : Mô ta các thành phan màn hình Thể loại 2- 5252252252252: 53 Bảng 4.9: : Mô tả các thành phan màn hình Chi tiết sách - 54 Bang 4.10: : Mô tả các thành phần màn hình Kệ sách 2-52 2522552: 56 Bang 4.11: Mô ta các thành phan màn hình Chatbot - 5 2 2+52+se£s+£s2 58
Trang 10DANH MỤC TU VIET TAT
STT Ký hiệu chữ viết tắt Chữ viết đầy đủ
1 API Application Programming Interface
2 UR The Universal Recommender
3 cco Correlated Cross-Occurrence
4 DOM Document Object Model
5 UI User Interface
6 SEO Search Engine Optimization
7 UML Universal Modelling Language
Trang 11TÓM TẮT KHÓA LUẬN
Khoá luận với đề tài “Xây dựng ứng dụng quản lý thư viện sách điện tử với chứcnăng khuyến nghị và Chatbot” là là một hệ thống với hai nghiệp vụ chính là quản lýnguồn sách và cung cấp nền tảng sách dưới dạng thư viện sách điện tử Hệ thống cungcấp một nền tảng với chỉ phí thấp giúp người dùng tiếp cận nguồn sách từ các tác giả,nhà xuất bản một cách dễ dàng nhất
Đề tài được thực hiện tuần tự qua các bước: khảo sát thực trạng, phân tích ưu nhượcđiểm các mô hình tương tự trên thị trường, xác định mục tiêu, phạm vi đề tài, phân tíchyêu cầu hệ thống, thiết kế hệ thống, kiểm thử và triển khai hệ thông Nhóm đã có gắnglựa chọn những framework và công nghệ tốt nhất dé triển khai hệ thống nhanh nhất cóthể: React, React Native, NodeJS, MySQL, Universal Recommender, DialogFlow
Trong quá trình thực hiện đề tài, nhóm đã sử dụng mô hình Agile-scrum dé quản lýcũng như phát triển hệ thống một cách linh hoạt Các yêu cầu và chức năng được cập
nhật và phát triển liên tục qua các sprint Nhóm cũng sử dụng các công cụ hỗ trợ quá
trình phát triển, quản lý dự án: Trello, GoogleDrive, Figma, LucidChart, Canvas, Visual
Studio Code
Việc phát triển 4 module của hệ thống trong thời gian ngắn với những yêu cầu phứctạp đòi hỏi tỉnh thần ham học hỏi, sẵn sàng thử sức với những công nghệ mới và khảnăng quản lý thời gian hiệu quả Cả 2 thành viên phải phân chia công việc và trực tiếpquản lý tiến độ của nhau Dưới sự hướng dẫn của giảng viên, dự án đã được hoàn thànhđúng tiến độ và đạt yêu cầu dé ra ban dau
Khóa luận bao gồm năm chương:
— Chương | trình bày về dé tài và phương pháp thực hiện
— Chương 2 trình bày lý thuyết và các công nghệ được áp dụng trong đề tài
— Chương 3 tập trung vào phân tích và thiết kế hệ thống
— Chương 4 liên quan đến việc xây dựng ứng dụng
— Chương 5 tổng kết kết quả và đề xuất hướng phát triển cho đề tài trong tương lai
Trang 12CHƯƠNG 1 MO DAU
1.1 Giới thiệu đề tài
Trong thời đại công nghệ 4.0, khi thế giới phát triển không ngừng, nhu cầu của conngười trong việc đọc sách ngày càng tăng cao Người ta tìm đến sách để khám phá vàhọc hỏi những điều mới mẻ, phát triển khả năng tư duy suy luận và sáng tạo, giúp chúng
ta hiệu rõ hơn về thê giới xung quanh và các van dé xã hội.
Đề tài "Xây dựng ứng dụng thư viện sách điện tử với chức năng khuyến nghị và
Chatbot" là một dự án xây dựng một ứng dụng thư viện sách điện tử cho phép người
dùng tìm kiếm, xem thông tin và đọc sách điện tử trực tuyến Ứng dụng sẽ có chức năng
khuyến nghị cho người dùng những cuốn sách phù hợp với sở thích và lịch sử đọc của
họ, bằng cách sử dụng thuật toán khuyến nghị Ứng dụng cũng sẽ có một Chatbot hỗ trợ
người dùng trong việc tìm kiếm và lựa chọn sách, cũng như cung cấp thông tin về cáccuốn sách trong thư viện Trong quá trình xây dựng, người thực hiện sẽ phải tìm hiểu vềcác công nghệ liên quan như lập trình trên nền tảng web, ứng dụng di động, thuật toánkhuyến nghị và Chatbot Họ sẽ cần phải xây dựng các giao diện người dùng thân thiện
và dễ sử dụng cho ứng dụng, cũng như xử lý các tính năng chính như tìm kiếm, xem
thông tin và đọc sách.
1.2 Lý do chọn đề tài
Việc mua và sở hữu sách đôi khi khá tốn kém, đặc biệt là ở một quốc gia đang pháttriển như Việt Nam Các thư viện sách điện tử đã được xây dựng như Google Play Book,Amazon Kindle, nhưng chi phí dé thuê sách hoặc phân phối sách trên các hệ thốngtrên là khá cao Một thư viện sách điện tử với hệ thống vừa và nhỏ là giải pháp chonhững vấn đề trên Nhóm đã quyét định tích hợp thêm hệ thống khuyến nghị và Chatbotnhằm tăng trải nghiệm cho người dùng, tăng tính cạnh tranh cho sản phẩm
Trang 131.3 Khảo sát hiện trạng
Hiện nay, các hệ thông cung cấp sách điện tử (ebook) đã và đang được phát triển và
phân phối rộng rãi Từ những hệ thống phân phối sách này, người dùng có thể sử dụng
bat ky thiét bi nao có kết nối Internet dé mua và đọc sách thuộc mọi thể loại và tác giả.
Bảng 1.1: Khảo sát các sản phẩm tương tự
STT Tên sán phẩm Ưu điểm Nhược điểm
Cho phép người dùn
_ ẽ Giá thành sách cao Sách chưa
1 Google Play Books đọc sách từ các nguồn , ,
da dạng, nhất là sách tiêng Việt thứ ba.
Nhiều sách dé lựa Các sách của Amazon cung cấp
2 Amazon Kindle chọn, chiếm thị phần cao,| bị khóa DRM và chỉ có thé đọc
giá thành sách tốt bằng thiết bị có cài đặt Kindle.
Cho phép người dùng
3 Calibre Content Server | quản lý sách của cá nhân Không có khuyến nghị sách.
offline.
Các hệ thống cung cấp sách điện tử hiện nay chủ yếu là do các tập đoàn công nghệ
lớn như Google, Amazon, Apple làm chủ Một hệ thống phân phối sách với quy mô vừa
và nhỏ để đáp ứng nhu cầu của các nhà cung cấp là nhà sách, nhà xuất bản đang được
quan tâm vì chỉ phí của các nhà phân phối sách nói trên là khá cao Với Google Play
Books, nhà xuất bản tại Việt Nam sẽ được nhận 52% doanh thu bán sách còn với
Amazon Kindle thì con số nay là 35%, đây là những mức chiết khấu rất cao do đó đã và
đang góp phan giới han sự phát triển thị trường sách điện tử tại Việt Nam Một hệ thống
với chỉ phí thấp hơn và được phát triển để đáp ứng những nhu cầu đặc thù của các nhà
xuất bản và tác giả tại Việt Nam sẽ giúp giảm chỉ phí và giúp các độc giả Việt Nam dễ
dàng tiếp cận hơn với sách điện tử
Trang 141.4 Mục tiêu
Xây dựng một hệ thống cho phép quản lý một thư viện sách điện tử online, cho phépngười dùng đọc sách trong thư viện bằng ứng dụng mobile và nhận được khuyến nghịsách theo đúng nhu cầu đọc của bản thân cũng như tư van từ Chatbot thông minh
1.5 Phạm vỉ
— Ứng dụng admin cho phép quan lý sách trong một thư viện online và quản lý tai
khoản người dùng.
— Ứng dụng mobile cho phép đọc sách trên thiết bị mobile và nhận tư van từ Chatbot
— Hệ thống khuyến nghị sử dung dữ liệu người dùng cũng như lịch sử đọc sách dé đưa
ra khuyến nghị về sách cho người đọc trên ứng dụng mobile
1.6 Đối tượng
— Các nhà sách, các nhà xuất bản, các tác giả có nhu cầu cung cấp sách dưới dạng sách
điện tử trên mạng Internet.
— Người dùng muốn đọc sách trên thiết bị mobile
1.7 Phương pháp thực hiện
Hệ thống sẽ chia làm 4 module chính: Module Quản Lý Admin, Module Ứng DụngMobile, Module Khuyến Nghị và Module Chatbot:
— Module Quản Ly Admin: Cho phép thêm sửa xóa, giới hạn sách, quan lý người dùng
từ giao diện ứng dụng web.
— Module Ứng Dụng Mobile: Cho phép đăng ký người dùng và đọc sách trên thiết bi
mobile.
— Module Khuyến Nghị: Sử dụng dữ liệu người dùng từ Module Quản Lý Admin và
Module Ứng Dụng Mobile đề đưa ra khuyến nghị về sách tương ứng
— Module Chatbot: Đưa ra lời khuyên về sách cho người dùng, được tích hợp vào
Module Ứng Dụng Mobile
Trang 15Quá trình công việc sẽ bắt đầu bằng việc xây dựng một hệ thống khuyến nghị bằngcác công nghệ có sẵn Tiếp theo là thu thập dữ liệu từ các nguồn khác nhau dé phân tích
về những dữ liệu cần có trong các ứng dụng admin và ứng dụng mobile
Tiếp theo các Module Quản Lý Admin và Module Ứng Dụng Mobile sẽ được pháttriển với RESTful API xây dựng bằng Node.js và Front-End là React và React Native
Sau đó dit liệu đọc sách được lấy từ dataset mở ”! sẽ được xử lý dé lay các kết quảcủa người dùng Việt Nam và chuẩn hóa theo mô hình dữ liệu của các ứng dụng WebAdmin và mobile và được sử dụng đề huấn luyện khuyến nghị cho một phiên bản của
The Universal Recommender chạy trên Harness Machine Learning Server 8l, Day là
những nền tảng mã nguồn mở chuyên dung dé rút ngắn thời gian phát triển các chứcnăng khuyến nghị
Tiếp theo là quá trình kiểm thử và đánh giá kết quả đạt được từ các bước cai đặt, tiếptục tinh chỉnh dé cải thiện độ chính xác, cải thiện trải nghiệm người dùng
1.8 Kết quả mong đợi
— Ứng dụng admin cho phép quản lý các sách được phân phối trong hệ thống và thông
tin người dùng một cách trực quan, hiệu quả Thực hiện tốt chức năng của một ứng
dụng quản lý thư viện online.
— Ứng dụng mobile đem lại trải nghiệm người dùng đọc sách dễ dàng, tiện lợi và đưa
ra các khuyến nghị phù hợp về sách cho người đùng dựa trên thông tin cá nhân và
lịch sử đọc sách.
n
Trang 16CHƯƠNG 2 GIỚI THIỆU CÔNG NGHỆ SỬ DỤNG
2.1 Mô hình Client-server
client client client
Hình 2.1: Mô hình Client — Server
2.1.1 Khái niệm
Client-server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách
(client) và máy chủ (server) Server chính là nơi giúp lưu trữ tài nguyên cũng như cài
đặt các chương trình dịch vụ theo đúng như yêu cầu của client Ngược lại, client baogồm máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến
server.
Mô hình mang Client-server sẽ cho phép mang tập trung các ứng dụng có cùng chức
năng tại một hoặc nhiều dịch vụ file chuyên dụng Chúng sẽ trở thành trung tâm của hệ
Trang 17thống Hệ điều hành của mô hình Client-server sẽ cho phép người dùng chia sẻ đồng
thời cùng một loại tài nguyên mà không giới hạn vị trí địa lý.
2.1.2 Nguyên tắc hoạt động
— Client: là máy khách sử dụng dich vu Client đóng vai trò trung gian trong việc gửi
yêu cầu (request) và nhận phản hồi (response) từ server để phản hồi cho người dungcuối (end user)
— Server: là máy tính từ xa, có chức năng cung cấp dữ liệu, phản hồi yêu cầu từ phía
máy khách.
2.1.3 Ưu nhược điểm
— Ưuđiểm:
+ Tập trung: tất cả dữ liệu được tập trung ở một nơi duy nhất Ưu điểm này giúp
việc quản lý, giải quyết sự có, cập nhật tài nguyên dễ dàng được thực hiện ởmột nơi thống nhất
+ Bao mật: tat cả các dữ liệu đều sẽ được bảo vệ một cách tối đa nhờ vào hệ
thống kiến trúc tập trung của mạng Chỉ những người được cấp quyền mới cóthể truy cập được những đữ liệu được cho phép Nếu dữ liệu bị đánh mất cũng
có thể được khôi phục dễ dang
+ Khả năng mở rộng: mô hình Client-server có khả năng mở rộng vô cùng tốt
(vertical scaling & horizontal scaling).
— Nhược điểm:
+ Tae nghẽn lưu lượng: nhược điểm lớn nhất của mô hình mang Client Server
đó chính là tắc nghẽn lưu lượng Khi có quá nhiều client cùng gửi request mộtlúc có thé gây nên tắc nghẽn, thậm chi crash hệ thống Chưa ké đến nhữnghình thức tắn công làm tê liệt hệ thống như DDoS
+ Chỉ phí: chi phí được sử dụng dé thiết lập và bảo tri Server trong Client Server
thường sẽ khá cao Lý do là vì các hệ thống mạng có sức mạnh rất lớn cũngđồng nghĩa với việc giá dé chi cho việc nay là rất đắt Chưa ké đến đội ngũ débảo trì và kiểm tra hệ thống cũng đòi hỏi một nguồn chỉ phí lớn
Trang 18+ Bảo trì: khi các Server được triển khai, nó sẽ hoạt động không ngừng nghỉ.
Có nghĩa là nó cần được quan tâm đúng mức nếu có bất kỳ vấn đề gì thì phảigiải quyết ngay Vì vậy, cần có một nhà quản lý mạng chuyên biệt dé duy trì
hoạt động của Server.
+ Tài nguyên: không phải tat cả tài nguyên hiện có ở trên Server đều có thé sử
dụng được Ví dụ như bạn không thé in trực tiếp tài liệu trên web, hoặc chỉnhsửa bat kỳ thông tin nào trên 6 cứng của Client
2.2 Hệ thống khuyến nghị dựa trên Machine Learning - The Universal
Recommender
2.2.1 Khái niệm
Universal Recommender là một giải pháp khuyến nghị phô biến, được sử dụng trongcác hệ thống khuyến nghị đề tìm kiếm và khuyến nghị nội dung cho người dùng Nóđược thiết kế dé có thé hoạt động trên nhiều lĩnh vực khác nhau, và có thé dùng trênnhiều nền tảng khác nhau như trang web, ứng dụng di động và truyền hình
2.2.2 Đặc trưng
The Universal Recommender (UR) là một loại hệ thống khuyến nghị sử dụng trí tuệnhân tạo mới, mã nguồn mở dựa trên thuật toán Liên Quan Giao Nhau (Correlated
Cross-Occurrence — CCO).
CCO là một thuật toán được sử dụng rộng rãi trong các lĩnh vực khoa học dữ liệu,
như xử lý ngôn ngữ tự nhiên, thị giác máy tính và khuyến nghị Thuật toán CCO sẽ đođạt và so sánh sự phụ thuộc lẫn nhau về mặt số liệu thống kê giữa các mục trong tập dữliệu Điều này có thé là màu sắc, độ đậm nhẹ của các điểm ảnh trong hình ảnh, sự xuấthiện cùng nhau của những từ ngữ trong các đoạn văn Trong một hệ thống khuyến nghị,
thuật toán này sẽ phân tích sự tương đồng về dữ liệu độ tuổi, giới tính hoặc những sản
phẩm được tiêu thụ cùng nhau để đưa ra dự đoán về các sản phẩm mà người dùng có
khả năng cao sẽ tiêu thụ trong tương lai.
Trang 19Các thành phan chính của hệ thống khuyến nghị bao gồm:
— Một REST Server có nhiệm vụ xử lý và xác nhận dit liệu đầu vào cũng như gửi các
yêu cầu truy vấn, huấn luyện
— MongoDB: Cơ sở dit liệu phi quan hệ, hỗ trợ truy van nhanh
— Spark: công cụ phân tích mã nguồn mở đề xử lý dữ liệu quy mô lớn
— ElasticSearch: là một công cụ tìm kiếm và phân tích phân tán, mã nguồn mở hỗ trợ
tìm kiếm và phân tích thời gian thực có khả năng mở rộng, với khả năng xử lý lượng
dữ liệu lớn và hỗ trợ các truy vấn tìm kiếm phức tạp
2.2.3 Ưu điểm
Ưu điểm của Universal Recommender là nó cung cấp một giải pháp tùy chỉnh choviệc xây dựng hệ thống khuyến nghị, giúp bạn có thé tùy chỉnh hệ thống cho phù hợpvới nhu cầu của trang web hoặc ứng dụng của mình Nó cũng có thể tích hợp với nhiềunguồn dữ liệu khác nhau, giúp bạn có thé sử dụng nhiều loại dữ liệu khác nhau
2.3 React
2.3.1 Khái niệm
React (còn được gọi là Reactjs hay React.js) là một Thư viện javascript được tạo ra
bởi sự cộng tác giữa Facebook và Instagram Nó cho phép những nhà phát triển web tạo
ra giao điện người dung nhanh chóng Phần Views của React thường được hiền thị bằngviệc chủ yếu dung các component mà chứa các component cụ thé hoặc các thẻ HTML.Một trong những đặc trưng duy nhất của React là việc render dữ liệu không những cóthể thực hiện ở tầng server mà còn ở tầng client
Nó cũng sử dụng khái niệm là Virtual DOM (DOM ảo) Virtual DOM tạo ra ban
cache cấu trúc dữ liệu của ứng dụng trên bộ nhớ Sau đó, ở mỗi vòng lặp, nó liệt kênhững thay đổi và sau đó là cập nhật lại sự thay đồi trên DOM của trình duyệt một cáchhiệu quả Điều này cho phép ta viết các đoạn code như thể toàn bộ trang được render lại
dù thực tế là React chi render những component hay subcomponent nao thực sự thay
đôi.
Trang 202.3.2 Các đặc trưng của React
Components: React cho phép ban tạo những giao diện (UI) phức tap từ những đoạn code nhỏ và độc lập Những đoạn code này được gọi là “components”.
Virtual DOM: Những Framework sử dụng DOM như React khi
Virtual-DOM thay đồi, chúng ta không cần thao tác trực tiếp với Virtual-DOM trên View ma vẫnphản ánh được sự thay đổi đó Do Virtual-DOM vừa đóng vai trò là Model, vừa đóngvai trò là View nên mọi sự thay đổi trên Model đã kéo theo sự thay đổi trên View vàngược lại Có nghĩa là mặc dù chúng ta không tác động trực tiếp vào các phần tửDOM ở View nhưng vẫn thực hiện được cơ chế Data-binding Điều này làm cho tốc
độ ứng dụng tăng lên đáng kể
JSX: Trong React, thay vì chỉ sử dụng JavaScript đề thiết kế bố cục trang web thì sẽ
dùng JSX JSX được đánh giá là sử dụng đơn giản hơn JavaScript và cho phép trích
dẫn HTML cũng như việc sử dụng các cú pháp thẻ HTML để render cácsubcomponent JSX tối ưu hóa code khi biên soạn, vì vậy nó chạy nhanh hơn so với
code JavaScript tương đương.
Single-way Data Flow: React không có những module chuyên dụng dé xử ly data,
vì vậy React chia nhỏ view thành các component nhỏ có mỗi quan hệ chặt chẽ với
nhau Việc React sử dụng one-way data flow có thể gây ra một chút khó khăn chonhững người muốn tìm hiểu và ứng dụng vào trong các dự án Tuy nhiên, cơ chế này
sẽ phát huy được ưu điểm của mình khi cấu trúc cũng như chức năng của view trở
Trang 212.4 React Native
2.4.1 Khái niệm
React Native là một nền tảng được phát triên bởi Facebook dùng để xây dựng cácứng dụng đi động cho các hệ điều hành iOS và Android Nó sử dụng ngôn ngữ lập trìnhJavaScript và cú pháp của React, một thư viện để xây dựng giao diện người dùng trênweb.
2.4.2 Đặc trưng
Đặc trưng của React Native là nó cho phép bạn xây dựng các ứng dụng di động với
giao diện người dùng tương tự như ứng dung native, nhưng bằng cách sử dụng mã
JavaScript thay vì các ngôn ngữ lập trình native (như Swift cho iOS hoặc Java cho Android).
Các thành phần của React Native bao gồm các thành phần cơ bản như View, Text,Image, và các thành phần khác như ListView, Navigator, và các thành phần tùy chỉnhđược tạo ra bởi các nhà phát triển khác
2.4.3 Ưu điểm
— Cho phép bạn xây dựng các ứng dụng di động với mã JavaScript chung cho cả hai
hệ điều hành iOS và Android
— Tiết kiệm thời gian và chi phí phát trién
—_ Tăng tốc độ phat triển bởi vì có thé sử dụng các thư viện và công cụ JavaScript phd
biến như npm và Babel
11
Trang 222.5 Node.js
2.5.1 Khái niệm
Node.js là một nền tảng mã nguồn mở dùng dé xây dựng các ứng dụng máy chủ dùngJavaScript Nó được xây dựng trên nền tảng V§ của Google, một trình thông dịch
JavaScript nhanh và hiệu quả.
2.5.2 Đặc trưng của Node.js
Đặc trưng của Node.js là nó cho phép bạn xây dựng các ứng dụng máy chu dùng
JavaScript, đồng thời cũng có thé sử dung nó đề xây dựng các ứng dụng di động và trìnhduyệt Nó cũng hỗ trợ các chức năng mạnh mẽ như xử lý đồng thời và giao tiếp với các
dịch vụ khác qua giao thức mạng.
2.5.3 Ưu điểm của Node.js
— Tốc độ cao: Vì nó sử dụng trình thông dịch JavaScript nhanh V8 của Google,
Node.js có thể xử lý các yêu cầu máy chủ rất nhanh
— Đồng bộ: Node.js sử dụng hệ thống đồng bộ hóa hoàn toàn, giúp các yêu cầu không
bị gián đoạn và xử lý nhanh hơn.
— Dễ dàng mở rộng: Node.js có rất nhiều thư viện và công cụ khác nhau có sẵn trên
npm, một kho lưu trữ lớn các gói thư viện JavaScript, giúp bạn dé dàng mở rộng.
12
Trang 232.6 DialogFlow
2.6.1 Khái niệm
Dialogflow là một nền tảng phát triển ứng dụng trò chuyện (chatbot) và giọng nóiđược phát triển bởi Google Nền tảng này cho phép người dùng xây dựng các ứng dụng
trò chuyện thông qua việc tạo các tài liệu trò chuyện với các lựa chọn đơn giản, trả lời
câu hỏi của người dùng, hiểu được ngôn ngữ tự nhiên và các khái niệm liên quan đến
ngữ cảnh.
2.6.2 Đặc trưng
— Cung cấp giao diện đồ họa dé sử dụng dé thiết kế trò chuyện
— _ Hỗ trợ nhiều ngôn ngữ và các kênh nhắn tin phổ biến, bao gồm Facebook Messenger,
Slack, Skype, và nhiều hơn nữa
— Cung cấp tính năng phân tích ngữ nghĩa tự nhiên dé hiểu các yêu cầu của người dùng
va phản hồi một cách thông minh và tự động
— Cung cấp các tính năng thông minh như xác định ngữ cảnh, phân tích cảm xúc, và
đưa ra đề xuất
2.6.3 Ưu điểm
— Dễ dàng sử dụng với giao điện đồ họa thân thiện với người dùng
— Hỗ trợ nhiều ngôn ngữ và các kênh nhắn tin phổ biến
— Cung cấp các tính năng thông minh giúp xây dung các ứng dụng trò chuyện thông
minh.
— C6 thể tích hợp với các nền tảng khác như Google Cloud Platform, Firebase, và các
ứng dụng của bên thứ ba.
2.6.4 Nhược điểm
— Đối với các ứng dụng phức tạp, việc xây dựng và cấu hình trò chuyện có thé mat
nhiều thời gian
Trang 24Giới hạn về các tùy chọn trả lời câu hỏi trong các lựa chọn đơn giản và có thể khôngđáp ứng được yêu cầu của một số ứng dụng phức tạp.
Hiệu suất của Dialogflow có thê bị gián đoạn nếu có nhiều lưu lượng truy cập vàocùng một thời điểm
14
Trang 25CHƯƠNG 3 PHÂN TÍCH THIẾT KÉ HỆ THÓNG
3.1 Sơ dé UML Use case
Chat với Chatbot
Xem thông tin “D>
Trang 26'Xem đanh sách
“đánh giá sách.
Fang tê eo nà xuất bồ)
Thống kê theo thé loại
“Thống kê theo tác giả
ẤẤhồng kê theo người dùng)
Hình 3.2: Sơ đồ UML Use case 2
16
Trang 273.1.1 Danh sách các Actor
Bang 3.1: Danh sách UML Use case Actor
STT Tén Actor Ghi cha
Là quản trị viên hệ thống, có các quyền liên quan đến quản
1 Admin ,
ly hé thong
2 User Người dung có đăng ky tài khoản trong hệ thống
3.1.2 Danh sách các Use case
Bảng 3.2: Danh sách UML Use case
STT Tén Use case Actor
1 Dang nhap Admin, User
2 Dang xuất Admin, User
3 Đăng ký User
4 Đổi mật khẩu User
5 Quản lý sách Admin
6 Xem danh sách sách Admin
7 Thêm sách mới Admin
8 Sửa thông tin sách Admin
9 An sách Admin
10 Quản lý nhà xuất bản Admin
11 Xem danh sách nhà xuất bản Admin
12 Thêm nhà xuất bản mới Admin
13 Chỉnh sửa nhà xuất bản Admin
17
Trang 2814 Xóa nhà xuất bản Admin
15 Quan ly tac gia Admin
16 Xem danh sach tac gia Admin
17 Thêm tac gia mới Admin
18 Chỉnh sửa tác gia Admin
19 Xóa tác giả Admin
20 Quản lý thê loại Admin
21 Xem danh sách thể loại Admin
2 Thêm thể loại mới Admin
23 Chỉnh sửa thé loại Admin
24 Xóa thê loại Admin
25 Quản lý người dùng Admin
26 Xem danh sách người dùng Admin
27 Câm tài khoản người dùng Admin
28 Kiểm duyệt đánh giá sách Admin
29 Xem danh sách đánh giá sách Admin
30 Ấn đánh giá sách Admin
31 Thống kê Admin
32 Thống kê theo nhà xuất bản Admin
33 Thống kê theo thể loại Admin
33 Thống kê theo tác giả Admin
34 Thống kê theo người dung Admin
18
Trang 2935 Xem danh sách sách trong thư viện User
36 Doc sach User
37 Xem thông tin sách User
38 Thêm sách vao thư viện User
Trang 303.1.3 Đặc tả một số Use case
Đặc tả Use case Quản lý sách:
Bảng 3.3: Đặc ta Use case UCI
STT - tén: UCI - Use case Quản lý sách
Actor: Admin
Mô Cho phép Actor thực hiện việc xem và thay đôi các sách trong ứng
ô tả:
dụng
Điều kiện tiên ;
Actor phải đăng nhập
quyết:
Điều kiện lúc sau:
Actor phải thực hiện được hành động cần thiết với sách trong ứng
dụng
Quy trình cơ bản:
1 Actor chọn tùy chọn “Quản lý sách” từ menu ứng dụng.
2 Actor hiển thị một màn hình với thông về các sách trong ứng dụng
3 Actor chọn sách va từ các tùy chọn có sẵn (vi dụ: chỉnh sửa, xóa, tải
xuống, V.V.).
4 Ứng dụng thực hiện hành động đã chọn.
5 Ứng dụng hiên thị thông báo xác nhận cho Actor.
Ngoại lệ:
Nếu gặp bat kỳ lỗi nao trong khi thực hiện một hành động, ứng dụng
sẽ hiển thị thông báo lỗi thích hợp.
20
Trang 31Đặc tả Use case Xem danh sách sách:
Bang 3.4: Đặc tả Use case UC2
STT - tên: UC2 - Use case Xem danh sách sách
Actor: Admin
Mô tả: Cho phép Actor thực hiện việc xem các sách trong hệ thống
Điều kiện tiên
quyết: Actor phải đăng nhập
Điêu kiện lúc sau: Actor đã xem được danh sách sách trong ứng dụng
Quy trình cơ bản:
1 Actor nhập vào nút “Xem danh sách sách” trong menu.
2 Actor sẽ thay một màn hình hiền thị những cuốn sách trong thư viện
của họ.
3 Actor có thé xem danh sách sách trong thư viện của họ.
Ngoại lệ:
Nếu gặp bat kỳ lỗi nào trong khi thực hiện một hành động, ứng dụng
sẽ hiển thị thông báo lỗi thích hợp.
21
Trang 32Đặc tả Use case Thêm sách mới:
Bang 3.5: Đặc tả Use case UC 3
STT - tên: UC3 - Use case Thêm sách mới
Actor: Admin
Mô tả: Cho phép Actor thực hiện việc thêm sách mới vào hệ thống
Điều kiện tiên
quyết: Actor phải đăng nhập
Điêu kiện lúc sau: Sách phải được thêm vào hệ thống
Quy trình cơ bản:
1 Actor nhấp vào nút “Thêm sách”.
2 Actor chọn tệp sách điện tử muốn tải lên.
3 Actor nhấp vào nút “Tải lên”.
4 Sách điện tử được tải lên hệ thống.
5 Hệ thống lấy thông tin meta-data từ file sách và thống hiển thị một
form dé Actor có thé sửa đôi
6 Actor xác nhận thông tin
7 Hệ thống lưu lại sách và thông tin truy van và thông báo thành công
cho Actor.
Nếu người dùng chon sai định dạng file, ứng dụng sẽ hiền thị thông,
báo lỗi thích hợp.
Ngoại lệ: : : :
Nêu gặp bât kỳ lỗi nào trong khi thực hiện một hành động, ứng dụng
sẽ hiển thị thông báo lỗi thích hợp.
Uu tiên: Cao
22
Trang 33Đặc tả Use case Chỉnh sửa thông tin sách:
Bang 3.6: Đặc ta Use case UC4
STT - tén: UC4 - Use case Chỉnh sửa thông tin sách
Actor: Admin
Mô tả: Cho phép Actor thực hiện việc chỉnh sửa thông tin sách trong hệ thống
Điều kiện tiên
quyết: Actor phải đăng nhập
Điêu kiện lúc sau: Thông tin sách phải được chỉnh sửa trong hệ thống
Quy trình cơ bản:
1 Actor chọn sách và chọn “Chỉnh sửa sách”
2 Hệ thống lấy thông tin meta-data từ file sách và thống hiển thị một
form dé Actor có thé sửa đôi
3 Actor nhấp vào nút “Hoan thành”.
4 Hệ thống lưu lại sách và thông tin truy van và thông báo thành công
cho Actor.
Ngoại lệ:
Nếu gặp bat ky lỗi nào trong khi thực hiện một hành động, ứng dụng
sẽ hiền thị thông báo lỗi thích hợp.
Trang 34Đặc ta Use case An sách:
Bang 3.7: Đặc ta Use case UCS
STT - tén: UCS - Use case An sách
Actor: Admin
M6 ta: Cho phép actor An một sách trong hệ thống khỏi ứng dung mobile
Điều kiện tiên
quyết: Actor phải đăng nhập
Điêu kiện lúc sau: Trạng thái sách phải được chuyền sang “ẩn”
Nếu gặp bat ky lỗi nào trong khi thực hiện một hành động, ứng dụng
sẽ hiển thị thông báo lỗi thích hợp.
24
Trang 35Đặc tả Use case Đọc sách:
Bang 3.8: Đặc ta Use case UC6
STT - tén: UC6 - Use case Doc sách
Actor: User
M6 ta: Cho phép Actor đọc sách trên ứng dụng
Điều kiện tiên
quyết: Actor phải đăng nhập
Điều kiện lúc sau: Actor phải đọc được sách
Nếu gặp bat kỳ lỗi nào trong khi thực hiện một hành động, ứng dụng
sẽ hiển thị thông báo lỗi thích hợp.
25
Trang 36Đặc tả Use case Chat với Chatbot:
Bang 3.9: Đặc ta Use case Chat với Chatbot
STT - tén: UCT- Use case Đánh giá sách
Actor: User
M6 ta: Cho phép Actor tương tác với Chatbot
Điều kiện tiên
quyết: Actor phải đăng nhập vào thiết bi di động
Điêu kiện lúc sau:
Chatbot agent phải đưa ra các thông tin chính xác dựa theo yêu cầu
của actor
Quy trình cơ bản:
1 Actor chọn chức năng Chatbot
24 Ứng dụng đi tới màn hình chat với Chatbot
3 Actor nhập các câu hỏi cho Chatbot
4 Chatbot phản hồi lại câu trả lời cần thiết cho Actor
Ngoại lệ:
Nếu gặp bat ky lỗi nào trong khi thực hiện một hành động, ứng dụng
sẽ hiển thị thông báo lỗi thích hợp.
26