Với sự gia tăng đáng kể về nhu cầu học tập từ xa và tìm kiếm kiến thức trực tuyến, tích hợp một hệ thong quản lý khoá học trực tuyến sẽ dem lại nhiều ưu điểm cho cả tổ chức giáo dục va n
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KY SU/ CU NHAN NGANH CONG NGHE PHAN MEM
GIANG VIEN HUONG DAN NGUYEN TRINH DONG
TP HO CHÍ MINH, 2023
Trang 2LỜI CẢM ƠN
Đầu tiên, cho nhóm chúng em xin dành lời cảm ơn chân thành đến tat cả các giáo viên
và giảng viên của Trường Đại học Công nghệ Thông tin — Đại học Quốc gia Thành phố Hồ Chí Minh nói chung và của Khoa Công nghệ Phần mềm nói riêng, vì đã hướng dẫn và hỗ trợ
chúng em trong suốt quãng thời gian học tập tại trường, giúp chúng tôi có được những kiến thức quý báu và xây dựng nền tảng cho việc thực hiện khoá luận tốt nghiệp.
Tiếp theo, chúng em muốn xin lời cảm ơn trực tiếp đến thầy Nguyễn Trịnh Đông, là
giảng viên hướng dẫn trực tiếp đến nhóm Những lời tư vấn, góp ý và hướng dẫn tận tính
của thay là những điều quý báu giúp nhóm xuyên suốt thời gian thực hiện dé tài Nhờ sự hỗ
trợ và đồng hành của thầy, chúng em đã có thể hoàn thành luận án này một cách suôn sẻ.
rong quá trình thực hiện luận án, chúng em đã áp dụng những kiến thức nền tảng đã học và tích lũy được, đồng thời kết hợp với những kiến thức mới trong quá trình tìm hiểu và
thực hiện Tuy nhiên, do kiến thức và kinh nghiệm của nhóm còn hạn chế, gặp khó khăn ở
từng giai đoạn, dẫn đến có thể xuất hiện các sai sót Vì vậy, chúng em mong nhận được những lời góp ý, ý kiến quý báu từ quý thầy cô đề hỗ trợ và cải thiện bài báo cáo của chúng em.
Một lân nữa nhóm chúng em xin chân thành gửi lời cảm ơn sâu sắc.
TP Hỏ Chí Minh, ngày tháng 7 năm 2023
Sinh viên
BÙI THIỆN NHÂN NGUYEN YEN NHI
Trang 41.3 Phạm vi nghiên cứu và ưu nhược GUGM voce eeccccecsesecsesecsesecsesecseseceesecsesecaneeees 19
1.4 Chite nang áo — 5 20 1.5 Công nghệ sử dụng - G11 HH HH nếp 21
1.6 Cấu trúc khoá luận: :-cc+++tceEktrtttrrkrrrrtrrtrrrrrtrrirrrrrirrrrrk 22
I.7 Thong tin nhốm - - + E1 1E991 1991 199111991 11 ng nếp 24
CHƯƠNG 2 CƠ SỞ LÝ THUYÉT s«°°eeseeesrvveeseeree 25
2.1 Learning Management System (Hệ thong quản lý hoc tập) 25
2.1.1 Giới thiệu chung về LMS — Hệ thông Quản lý Học tập 252.1.2 Các thành phan Cau tạO -2¿5£+522EE££E+£E£E£EE+EEeEkerkerkrrreres 262.1.3 Mô hình triển khai và quản lý LMS 2- 2 252 s£s+£szzzzsee: 28
2.1.3.1 Mô hình triển khai truyền thống -¿-2©5++cxz+zeecsze 282.1.3.2 Mô hình triển khai dựa trên đám mây, -2- 2-5 52555: 292.1.3.3 Quản lý và bảo trì hệ thống LMS ©22©22+c<+ccczxcrxcceee 302.1.3.4 Các thách thức và giải pháp trong việc triển khai và quản lý LMS 30
2.1.4 Tích hợp và mở rộng LMS - -c CS Sky 31
2.1.4.1 Tích hợp hệ thống LMS - ¿52 2+2E+EEtEECEEEEEeEEerkerkerrrres 31
2.1.4.2 Mở rộng tính năng LMS - - Ăn ngư 31
2.1.5.1 Tầm quan trong và sự phát triển của LMS trong tương lai 322.1.5.2 Các xu hướng và dự đoán về LMS -¿©-scs++cxccsscres 33
2.2 PRU n — AOdÂẨ^ÂẨẰ.L)L 33 2.3 ÌNGS(ĨS L LH HH HH ng ưy 34 2.4 Web Socket, Socket(.]O - c2 1111119931111 111kg xen 35
PS NN ,/uavaao 3Ầ3ẦẴẨÂ 36 2.6 Firebase SfOTaỹe HH HT TH TH HT TH Hà HH trệt 38 2.7 MongoDB eeeeceeeceeeeeeceeeeaeeeaeceaecaeseesseesseeeasseaeseeeeeeeags 39
2.8 Tích hợp công thanh toán VNPAYY ¿ 2¿©2++2+22ExtEESEESrxerkrerkerred 40
2.8.1 Sơ đồ tuần tự ceiritrrrrrirrririrrirrirrried 40
2.8.2 0-110ìsãï(i8i0 01117 42 2.9 Search engine by Google APÌL - + c kxkvv ng ng ng rệt 44
CHUONG 3 RECOMMENDATION SYSTEM CHO TÍNH NĂNG DE
XUAT KHOA HỌC DUA TREN COLLABORATIVE FILTERING 46
3.1 _ Giới thiệu về Recommendation System va Collaborative Filtering 46
Trang 53.1.1 Khái niệm về Recommendation System . -s¿©2 5+5: 47
3.1.2 Collaborative Filtering va vai trò trong Recommendation System 47
3.1.3 Ưu điểm va han chế của Collaborative Filtering - 48
3.2 Cơ sở lý thuyết về Collaborative Filtering .: -¿c-«©-++-s+¿ 48 3.2.1 Đánh giá và xếp hang trong hệ thống đánh giá người dùng 48
3.2.1.1 Hình thức đánh giá người dùng - - 5+ ++<s+ssseexseeeeresee 49 3.2.1.2 Xếp hạng và mức độ quan trỌng - 2 s+s+x+zsz+xz+xzrxeex 49 3.2.1.3 Xử lý dữ liệu đánh giá - - SĂ St S si ggrey 49 3.2.2 Phân loại Collaborative EIÏt€TInE -. - csnsg set 49 3.2.2.1 User-Based Collaborative FIltering - -«++-x+sx+eexsess 50 3.2.2.2 Item-Based Collaborative Filtering -+-s<c+sscesseees 50 3.3 _ Cách thức hoạt động của Collaborative Filtering -«<-s++ 50 3.3.1 _ Xây dựng ma trận đánh giá người dùng - 7-5 +5- << +2 50 3.3.2 Tính toán sự tương đồng giữa các khoá MOC ecescescessessesseessessesseeseeseses 52 3.3.3 Dự đoán xếp hang cho khoá hoc chưa xem/khám phá 55
3.4 Đánh giá và cải tiến Recommendation System -2- 5 52522522 57 3.4.1 Đánh giá hiệu suất và chất lượng của Recommendation System 58
3.4.2 _ Cải tiến và tối ưu hóa hệ thong oo cece ees ceseeseeseessessesseesesesseeneens 58 3.5 Ứng dụng của Recommendation System trong tính năng dé xuất khoá học 59 3.5.1 _ Thiết kế giao điện đề xuất khoá học -¿2z+s+zxzxezxzes 59 3.5.2 Quy trình đề xuất khoá học - -+-+++++++k+EzEkzrxerxerkerreres 60 3.5.2.1 Xác định người dùng đang xem/khám phá khoá học 60
3.5.2.2 Tìm kiếm những người dùng có sở thích tương tự - - 61
3.5.2.3 Đề xuất khoá hoc dựa trên sự tương đồng của người dùng 61
3.6 Ưu điểm và thách thức của Recommendation System trong LMS 61
3.6.1 Ưu điểm của Recommendation System -. 2 s+sz+sz+x+zs+cs2 61 3.6.2 _ Thách thức và giải phấp - - 6 + ng ng rưy 62 3.7 _ Tổng kết và Tầm nhìn về Recommendation System trong LMS 62
3.8 Tầm nhìn và phát triển tương lai của Recommendation System trong LMS: 62 CHUONG 4 PHAN TÍCH VÀ THIET KE HỆ THÓNG - 64
AL Phân tích yêu cầu - 2+ ++E++E++EE#EEEEEEEEEEEEEEEEEEEEEEEErkrrrrrrrkee 64 4.2 _ Kiến trúc tổng quan -¿- - + k+SE+EE+EEEEEEEEEEEEEEE2E2171 E121 cyeeg 67 4.2.1 Mô hình kiến trúc -cct+ccxtrrrkttrrrtrrrrrrrrtrttrrrrriirerriee 67 4.2.2 Các thành phan Chinh c.ccccscccscsssesssessesseesseessessecssecsesssecssessesssecseesecs 67 4.2.3 Clean Architecture 101777 68
4.3 _ Thiết kế hệ thong oo eecceccecccceccsessecsesssessessessessessussssssessessessussesseessessessesssseeeses 72 4.3.1 J0 ‹ -1 72
4.3.2 Danh sách các IS€-CASG - G1911 TH TH HH ng ngư 73
4.3.3 DAC tả US€-CAS€ - 000011110011 HT ngư 75
4.3.3.1 Use-case “Đăng nhập”” ch HH ng 75
Trang 64.3.3.2 Use-case “Đăng kỹ” HH HH TH HH HH HH, 76
4.3.3.3 Use-case “Đăng Xuất” cc 2k v22 2112211211111 78
4.3.3.4 Use-case “Xác thực ermalÏ”” - << + + v31 1193 1 1119 111 sec 79
4.3.3.5 Use-case “Quên mật khẩẩu”” c2 x21122127171211211 2111111 re 79
4.3.3.6 Use-case “Xem danh sách khóa học”” -+-<«s++++<<x+++eexs+s 80
4.3.3.7 Use-case “Xem chi tiết khóa hoc” csseccssessssecessesesseseseesessecevseeesseceveees 81
4.3.3.8 Use-case “Tham gia khóa hoc” eeceeceesceeseeeeeeeseeeeeeeeeeeeeseesneeseeees 82 4.3.3.9 Use-case “Binh luận khóa hoc” ou cece cccesecceesssecceesseecessseeeessseeeeeaes 84 4.3.3.10 Use-case “Đánh giá khóa hoc” 0 ee eeeeseeseeeeeeeeeeeeeseeeeeeeeseeeseeees 85
4.3.3.11 Use-case “Nâng cấp tài khoản” c+cs+cxsrterkerrerrsrsrred 874.3.3.12 Use-case “Làm bài kiỂm tra” ccsccesccsssessesssesssesseessessessecsseesesesecsees 88
4.3.3.13 Use-case “Tham gia Livestream” cecceeeeeseeeceeeeeeeeeeteeeseeeneees 89 4.3.3.14 | Use-case “Tuong tac với người dùng khác” -« -<++s+ 90 4.3.3.15 Use-case “Đánh giá giang VIÊH” - S-csScx + ssiesrrreeeereske 9]
4.3.3.16 Use-case Cập nhật hồ sơ 2- 2 2+E+EE+EE2EE2EE2EEeEErrkerrerree 924.3.3.17 Use-case “Bắt đầu livestream'” -+ce+cksrkerkerrerrersrred 93
4.3.3.18 Use-case “Thém mới khóa họC”” +22 sx << £++£++zseeeeess 93 4.3.3.19 Use-case “Chỉnh sửa khóa họC” - - 55 <s + +2 s+++zeeeeszsee 96 4.3.3.20 Use-case “Xóa khóa hỌC”” -c 111112111 sgk 98
4.3.3.21 Use-case “Tạo mới bài kiỂm tTa” -s©s + k+k+EeEeEkekerererkeesre 99
4.3.3.22 Use-case “Cập nhật bài kiểm tra” - + c+c+E+E+rserxeei 1004.3.3.23 Use-case “Xóa bài kiểm tra” -¿-cc+cscckccEcrrreerserkeee 1014.4 Thiết kế đữ liệu ctìccSeetrrrirrrirtrrrirrrrrirrrrrrio 103
4.4.2 Mô tả chỉ tiết bảng dữ liệu - 2-5255 E+EE+E2EczEerkerkererreee 104
4.4.2.1 Bảng “S€T” Ă HH HH HH key 104 4.4.2.2 Bảng “COUTS€” Gv 105 4.4.2.3, son 106 4.4.2.4 Bảng “L©SSOTI” SH HH net 106 4.4.2.5 Bảng “EXaTm” HH HH ket 107
“U90 on 107
“HN nh 108 4.4.2.8 Bảng “COmTm€TIỂ” G5 S111 kg vn rey 108 4.4.2.9 Bảng “Raf€” HH HH TH HH HH TH HH gà 108 4.4.2.10 Bang “HISfOTYy” HH HH ng HH Hệ 109 4.4.2.11 Bang “RecenfCOUTS€” HH nkey 109
4.5 Thiet kế giao diện -:- ccc St EEE211212121711112112111 1111 c0 110
4.5.1 Danh sách màn hình - - 5 5E E33 111 EEEEikresrerereereeee 110
4.5.2 Chi tiết màn hình 2- 2c ©5c+5++EE2EE£EEEEEtEEvErrrrrrerrervees 112
4.5.2.1 Màn hình “Signln”” - xxx HH HH nh nrkt 112 4.5.2.2 Man hinh 0 114 4.5.2.3 Màn hình “ForgotPasswWOrdÌ” -ccc cty ey 115
Trang 74.5.2.4 Man hinh so ae 119 4.5.2.5 Man hinh “Search ccc 5 121 4.5.2.6 Màn hình “TeacherDetail” 0.0 ce eeceeeeeceeeececeeeeeeeeeeeeeaeeeneeeees 123 4.5.2.7 Màn hình “CourseDetail” 0 ce eeeeccesccececececeeeceeeeseeeseeeaeeeneesees 124 4.5.2.8 Màn hình “LessonDetail” 0 eee eeceescceseeeececeeeeeeeeeeeeeaeeeneeeees 128 4.5.2.9 Màn hình “Livestream”? 0.0.0.2 cccecceeseesseeseceseceseceeeceeeeeeeeeeeaeeeneenees 129 4.5.2.10 Man hình “EnrolledCourse” cccecccesceeseeececeeeeseeeeeeeeeeseeeees 130 4.5.2.11 Man hình “Profile” ececeescesceseeseeeececeeseeseeeeaeeeeeeeseeeeaeeaeens 131 4.5.2.12 Man hình “UpdateProfile” - á- 5kg 133 4.5.2.13 Man hình “UpgradeAccOUif” - «cssxsssessessesserske 134 4.5.2.14 Man hình “NOtIẨicatiOnÏ”” án HH ng nưkt 135 4.5.2.15 Man hình “LangUage€”” - -ccsc kg gnrey 136 4.5.2.16 Man hình “PrivacyPOlICY” cty 137 4.5.2.17 Man hình “HelpCeniter” 2s cv rưkp 138 4.5.2.18 Man hình “UploadedCOUTS€S” - 55c sS<ssrssersserrsrrs 140 4.5.2.19 Màn hình “CreateCOUTS€”” c3 vs ssirrrrerrree 141
CHUONG 5 KẾT LUẬN -cccsccscsccsscsscsseesreerssrrssrssrssree 145
5.1 Tóm tắt mục tiêu và phạm vi của nghiên cứu - 2 2s s+zszszzs+ 145
5.1.1 Mục tiêu nghiÊn CỨU 5 c1 32111391113 11 11 vn rệt 145 5.1.2 Phạm vi nghiÊn CỨU 5 21 33111321133 5E 5E EEEEErrerrree 145 5.1.3 Giới hạn nghiÊn CỨU c6 + 331111511113 1 EEEEEkEsrserreee 145
5.1.4 _ Cấu trúc khoá luận cc+ccxerrrrtrrerrtrerrrirerrrked 146
5.2 _ Đánh giá kết quả đạt được - 55c S22 2E EEEEEEEEEEEEEEEkerkerreei 146
5.3 Tầm quan trọng và ứng dụng của khoá luận - 2-2 2s s+szszzs2 147
5.3.1 Tâm quan tFỌng ¿- ¿525252 S E£EEÉEE2EE2EEEEEEEEEEEEEEEEEEEEEErkrrkrrrred 147
5.3.2 Ứng dụng c.cs2 tt HH HE 11121 cxe 147
5.4 _ Những đóng góp của khoá luận . - + 5 S13 EseeeEseeeereeereeere 148
5.4.1 Đóng góp công nghệ và phát triển hệ thống -:s- 1485.4.2 Cung cấp giải pháp học tập linh hoạt và tiện ích: - 148
5.4.3 Góp phần nâng cao chất lượng giáo dục va dao tạo trực tuyến: _ 148
5.5 _ Những giới han và hướng phát triỂn - 2 2© s+++£z+Ee+Eerxerszrezes 1485.6 Tổng kết -c C22 22221 212212112112112111111 212 11 xe 149
TÀI LIEU THAM KKHẢÁO - 2-2-2 s£ 2£ ©Ss£ES££Ss£ESs£Essexsevssezssessers 151
15
Trang 8DANH MỤC HÌNH
Hình 2.1: Cấu trúc code dart cơ bản -ccc+cccvvctttEktrrtrttrtrrrrrrirrrrrrrirrrrrrre 34
Hình 2.3: Thanh phần của Web R'TC - 2-2 + +E+SE+EE£EE2EEEEEEEEEEEEEEEEEerkerkrree 38
Hình 2.4: Firebase storage Ác HH HH HH kh 38
Hình 3.1: Mô hình hệ thống 2-22 + 5222+2EE+EE+2EEEEEEEEE2EEEEEESEEEEEEErkvrrkrrrree 69
Hình 3.2: Sơ đồ use-case tổng quất ¿- 2: + +E£+E£+EE+EEEEEEEEEEEEEEEEEEEEErkerkerreee 72
Hình 4.1.1: Sơ đồ logic dữ liệu ¿2 2 2 5SSE£E2E£EE£EEEEEEEErrErrkrrkrrkrrkrrkee 103
Hình 4.2.2.1: Màn hình Signdn - -. 5 1 112111391113 11 19 1119 1H ng rệt 112 Hình 4.2.2.2: Màn hình SignnÚD - c6 1 1E 191119111 HH ng kh 114 Hình 4.2.2.3.1: Màn hình GetPasswordTlOke€n - -. s5 + re 116 Hình 4.2.2.3.2: Màn hình ResetPassWOT - - s1 HH Hư 117 Hình 4.2.2.4: Màn hình Home - 2 1 1251 9113511319 vn ng ng ng 119 Hình 4.2.2.5: Màn hình TeacherDetail - - - 5 6 + * + E + E*kE+kEssiksskkseereekee 123 Hình 4.2.2.6.1: Màn hình CourseDetail (false) - ¿+ + ++<<<++++++seeeeeess 125 Hình 4.2.2.6.2: Màn hình CourseDetail (tTU€) 55552 S+s**++s++eeeeeeeeesseeess 126 Hình 4.2.2.7: Màn hình LessonIDetalÏ - 5 5 1E 33 E931 vn ey 128 Hình 4.2.2.8: Màn hình LIV€SfT€A1 - 0 56 1 211121119111 11 91 9 1191119 re 129 Hình 4.2.2.9: Màn hình EnrolledCOUTSG 5 6 6E E33 E39 E+5EESSEEsskrseesseere 130 Hình 4.2.2.10: Màn hình PrOfẨIÏG - - c6 3 1211121112111 1 9111111101 ng HH ng 131 Hình 4.2.2.11: Man hình UpdateProfile - 5+2 11+ E+eeEEseeeeeseeeeeee 133 Hình 4.2.2.12: Màn hình UpgradeACCOUII - 5 5 + 1x 3 gi, 134 Hình 4.2.2.13: Màn hình Notification cee - 5 51119 91 vn ng ng ng 135 Hình 4.2.2.14: Màn hình Language s5 1 13115111911 9111 1191 9 ng ng net 136 Hình 4.2.2.15: Màn hình PrivacyPolicy - s13 1x SH ng rệt 137 Hình 4.2.2.16: Màn hình HelpCenter - - «6xx x9 ngư 138 Hình 4.2.2.17: Màn hình UploadedCOUTS€S c5 55+ *+vEEseeereeeereeeee 140 Hình 4.2.2.18: Màn hình CreateCourse 5c 11111 HH nệt 141
16
Trang 9DANH MỤC BANG
Bảng 1.7: Thông tin thành viên nhóm - <5 +1 3211113 EESEeEeeeereeeerereere 24
Bảng 4.1.2.1: Chi tiết bang US€T 2525252 SE‡EESEE2EE2E12E127171 21121121111 Ecre 104
Bang 4.1.2.2: Chi tiết bảng COUTSG - - 2-5252 SSEEEE9EE2E2EEEEEEEEEEEEE2E21 21211 xeC 105
Bang 4.1.2.3: Chi tiết bảng Section -¿- 2-52 SsSEEE2E2EE2E12E171 212112212 cre 106 Bang 4.1.2.4: Chi tiết bảng L/essOn 22- 2-52 SEEE‡EE2 2112232217121 cre 106 Bảng 4.1.2.5: Chi tiết bang Exam ¿22 252 SE‡EE‡EE2EE2EE2EEEEEEEEEEEEEEEEEkrrkerkrree 107
Bang 4.1.2.6: Chi tiết bảng Quesfion - 2-52 SE SE2E22E2EEEEEEEEEEEEEEEEEEEEEErkrrrrree 107
Bang 4.1.2.7: Chi tiết bang R€suÌt 2-5252 S<EEEE2EE2EE2EEEEEEEEEEEEEEExerkrrei 108
Bang 4.1.2.8: Chi tiết bảng Comment - + ¿2 525£+E2+E£EE£EE£EE2EEZErEerkerxrrerree 108
Bang 4.1.2.9: Chi tiết bảng Rafe ¿5252221 2E EEEEE211211211211 7111121121111 re 108
Bảng 4.1.2.10: Chi tiết bảng HistOFY - 2-5 SE SE2S2‡E2EEEEEEEEEEEEEEEEEerkerkrrrrree 109 Bảng 4.1.2.11: Chi tiết bảng RecentCOUTSe - 2-5-5252 5£2S££EE££EeEEzEvEerxerxrree 109
Bảng 4.2.1: Danh sách màn hình: - 5 - 5 3113321113911 13911 9 11 9 11 1 ng rệt 110
Bảng 4.2.2.1: Chi tiết về các thành phan trên giao diện Signln - 112
Bang 4.2.2.2: Chi tiết về các thành phan trên giao diện SignUp - 114
Bang 4.2.2.3: Chi tiết về các thành phần trên giao diện ForgotPassword 117
Bang 4.2.2.4: Chi tiết về các thành phan trên giao diện Home - 119
Bang 4.2.2.5: Chi tiết về các thành phan trên giao diện TeacherDetail 123
Bảng 4.2.2.6.1: Chi tiết về các thành phần trên giao diện CourseDetail (false) 125
Bảng 4.2.2.10: Chi tiết về các thành phần trên giao diện Profile 132
Bảng 4.2.2.11: Chi tiết về các thành phần trên giao điện UpdateProfile 133
Bảng 4.2.2.12: Chi tiết về các thành phần trên giao điện UpgradeAccount 135
Bảng 4.2.2.13: Chi tiết về các thành phan trên giao diện Notification - 136
Bảng 4.2.2.14: Chi tiết về các thành phan trên giao diện Language - 137
Bảng 4.2.2.15: Chi tiết về các thành phan trên giao diện PrivacyPolicy 138
Bảng 4.2.2.16: Chi tiết về các thành phan trên giao điện HelpCenter 139
Bảng 4.2.2.17: Chi tiết về các thành phan trên giao diện UploadedCourses 140
Bảng 4.2.2.18: Chi tiết về các thành phan trên giao diện CreateCourse 141
17
Trang 10Chuong1 GIỚI THIỆU DE TÀI
1.1 Giới thiệu chung
Trong kỷ nguyên tiến bộ công nghệ thông tin và phát triển vượt bậc của internet,
việc tận dụng các nền tảng giáo dục trực tuyến đã trở thành một xu hướng không thể
phủ nhận Các khoá học trực tuyến ngay cảng được ưa chuộng va dần trở thành sự lựa
chọn hàng đầu cho việc học tập và đào tạo, mang lại sự thuận tiện và tiết kiệm thời gian
cho người học.
Trong thời gian trién khai mục dich chia sẻ tri thức và kiến thức, việc sử dụng các
trang mạng xã hội đã trở thành một phương pháp phổ biến, trong đó nhiều người muốn
đóng góp tri thức của mình Tuy nhiên, việc chia sẻ kiến thức qua một số trang mạng
xã hội thường dẫn đến sự phân mảng và thiếu đi sự tổ chức rõ ràng Điều này khiến cho
việc tìm kiêm kiên thức và sử dụng nó trở nên khó khăn và không đáng tin cậy.
Do đó, trong khóa luận tốt nghiệp, đề tài "Xây dựng hệ thống quản lý khoá học trựctuyến" được lựa chọn nhằm giải quyết những vấn đề này Mục tiêu của khóa luận là xâydựng một hệ thống quản lý khoá học trực tuyến hiệu quả, đáp ứng nhu cầu ngày càng
cao của người học và giảng viên.
1.2 Ly do chọn đề tài
Một trong những lý do quan trọng mà khoá luận quyết định lựa chọn nội dung này
là sự thịnh hành và khả năng phát triển của khoá học trực tuyến Với sự gia tăng đáng
kể về nhu cầu học tập từ xa và tìm kiếm kiến thức trực tuyến, tích hợp một hệ thong
quản lý khoá học trực tuyến sẽ dem lại nhiều ưu điểm cho cả tổ chức giáo dục va người
học
Hơn nữa, việc sử dụng máy móc và internet để quản lý khoá học trực tuyến cung
cấp nhiều tiện ích, như quản lý tư liệu học tập, giao tiếp trực tuyến giữa giảng viên vàsinh viên, đánh giá thành tích học tập, và phân tích đữ liệu đề cải thiện chất lượng giảngdạy Điều này đòi hỏi một hệ thống quản lý chuyên nghiệp và tôi ưu dé đáp ứng các yêu
câu và mục tiêu của các bên liên quan.
18
Trang 1113 Phạm vi nghiên cứu và ưu nhược điểm
Khóa luận tập trung vào xây dựng hệ thống quản lý khoá học online, với các tính
năng và chức năng quan trọng như quản lý tài liệu, tương tác giữa giảng viên và sinh
viên, đánh giá kết quả học tập và phân tích dữ liệu
Đề tài của khóa luận chú ý khai thác vào vấn đề phát triển một hệ thống quản lýkhoá học thông qua internet dành cho môi trường đi động Với sự phát triển mạnh mẽ
của thiết bị và ứng dụng mobile, việc triển khai hệ thống trên nền tảng mobile đáp ứng
nhu cầu ngày càng tăng của người học ở mọi thời gian và địa điểm Khoá luận nhận
thấy rằng triển khai hệ thống quản lý khoá học trực tuyến trên môi trường mobile mang
lại nhiều ưu điểm Một số ưu điểm quan trọng bao gồm: khả năng truy cập linh hoạt và
tính tương tác tốt
Trong quá trình triển khai, khoá luận đã phát hiện ra một sé điểm sáng của hệ thốngquản lý khoá học thông qua internet, bao gồm:
— Sự tô chức và cấu trúc: giúp tổ chức tri thức một cách minh bạch và có cấu trúc,
giúp người học đi từng bước một và tiếp cận tri thức với phương pháp, kế hoạch
tốt
— Chất lượng kiến thức: Các bài giảng trên hệ thống quản lý thường được thiết kế và
phát triển bởi các chuyên gia trong lĩnh vực đó, đảm bảo tính chuẩn xác và chất
lượng cao của tri thức được chia sẻ.
— Tương tác: Hệ thống quản lý khoá học trực tuyến cung cấp cơ hội tương tác giữa
giảng viên và sinh viên, tạo điều kiện cho sự hỗ trợ và giao tiếp hiệu quả trong quá
trình học tập.
— Đánh giá thành tích học tập: Hệ thống cung cấp các công cụ đề đánh giá thành tích
học tập của sinh viên, giúp theo dõi tiễn trình học tập và đánh giá hiệu quả của
khóa học.
Mặc dù hệ thống quản lý khoá học trực tuyến mang lại nhiều lợi ích, nhưng nó cũng
đôi mặt với một sô nhược điêm:
— Khả năng sử dụng công nghệ của người dung bị hạn ch
19
Trang 12— Khó khăn và tốn kém trong việc thay đồi, nâng cấp hệ thống.
— Khả năng tương tác giới hạn.
Tóm lại, khoá luận sẽ tìm hiểu và phát triển một hệ thống quan lý khoá học thôngqua Internet trên môi trường mobile dé tận dụng ưu điểm linh hoạt và tiện lợi của di
động nhăm giải quyêt những nhược điêm của việc chia sẻ tri thức qua các trang mạng
xã hội Hệ thống này sẽ mang lại sự tổ chức, cau trúc, tương tác và đánh giá thành tíchhọc tập hiệu quả Khoá luận tin rằng sự nghiên cứu và phát triển hệ thống này sẽ gópphần vào việc cải thiện chất lượng giáo dục và truyền đạt tri thức một cách hiệu qua
thông qua khoá học trực tuyến
1.4 Chức năng chính
Hệ thống quản lý khoá học trực tuyến được xây dựng sẽ bao gồm các chức năng
chính sau:
— Quản tri tài khoản:
Đăng nhập: Người dùng có thê sử dụng tài khoản đã đăng ký trước đó đề đăngnhập vào hệ thống
Đăng ký: Người dùng chưa từng sử dụng hệ thống có thé đăng ký tài khoản dé
truy cập vào ứng dụng.
Đổi mật khẩu: Cho phép người dùng thay đổi mật khẩu hiện tại của mình
Thay đổi thông tin: Người dùng có khả năng cập nhật và điều chỉnh thông tin
cá nhân của mình.
— Quản lý trang cá nhân:
Xem lượt học viên đã tham gia khoá học: Hiền thị thông tin về số lượng học
viên đã tham gia vào một khoá học cụ thể
Xem danh sách các khoá học hiện có: Người dùng có thể xem danh sách các
khoá học đang được cung cấp trên hệ thông
Xem danh sách các khoá học đã tham gia: Người dùng có thể xem danh sách
các khoá học mà họ đã đăng ký và tham gia học.
— Quản lý khóa học:
20
Trang 13+ Xem, thêm, xoá, sửa khoá học: Quản tri viên có quyền xem, thêm, xoá và chỉnh
sửa thông tin về các khoá học trong hệ thống
— Tính năng về bài giảng:
+ Xem, thêm, xoá, sửa bài giảng: Người dùng có thé xem danh sách bài giảng trong
khoá học, thêm mới, xoá hoặc chỉnh sửa các bài giảng.
— Tinh năng tương tac với khóa học:
+ Bình luận: Người dùng có thể gửi nhận xét và phản hồi về nội dung của khoá
học.
+ Đánh giá khoá học: Người dùng có thê đánh giá và đưa ra đánh giá về chất lượng
và trải nghiệm của khoá học.
— Tính năng về các bài kiểm tra:
+ Tạo, cập nhật và làm bài kiểm tra: Người dùng có thé tạo và cập nhật các bài
kiểm tra cho khoá học, và người học có thé làm bài kiểm tra dé kiểm tra kiến
thức đã học.
— Chia sẻ livestream: Cho phép người dùng chia sẻ và tham gia vào các buôi trực
tiếp trên hệ thống
— Recommendation system gợi ý khoá học: Hệ thống sẽ đề xuất các khoá học dựa
trên đánh giá và sở thích của người dung dựa trên thuật toán Collaborative filtering.
— Thanh toán khóa học qua các cổng thanh toán: Hỗ trợ người dùng thanh toán phí
khóa học thông qua các công thanh toán trực tuyến
— Các tính năng App about (term policy, help & support): Cung cấp thông tin về các
quy định, chính sách và hỗ trợ cho người dùng trong quá trình sử dụng hệ thống
Tổng quát, hệ thống quản lý khoá học trực tuyến sẽ cung cấp một loạt các chức
năng từ việc quản lý tài khoản, quản lý khóa học, tương tác với khóa học và tính năng
phụ dé cung cap trải nghiệm học tập toàn diện cho người dùng
1.5 Công nghệ sử dụng
Trong quá trình xây dựng hệ thống quản lý khoá học trực tuyến, khoá luận sử dụng
các công nghệ sau:
21
Trang 14— Front-end: khoá luận sử dung Flutter làm công nghệ front-end chính Flutter là
một framework phát triển ứng dụng di động đa nền tảng được phát triển bởiGoogle, cho phép khoá luận xây dựng ứng dụng di động trên cả nền tảng Android
và iOS từ một mã nguồn duy nhất Flutter cung cấp khả năng phát triển nhanh,
giao diện đẹp và hiệu suất cao cho ứng dụng di động
— Backend: khoá luận sử dụng NestJS làm công nghệ back-end chính NestJS là một
framework phát triển ứng dụng server-side dựa trên Node.js và Express.js, cungcấp kiến trúc tương tự Angular và sử dụng TypeScript NestJS giúp khoá luận xây
dựng back-end mạnh mẽ, có cấu trúc va dễ bảo trì cho hệ thống Ngoài ra, Python
còn được khoá luận lựa chọn để sử dụng trong việc viết thuật toán
Recommendation system Collaborative Filtering.
— Database: khoá luận sử dụng MongoDB va Firebase dé lưu trữ đữ liệu MongoDB
là một hệ quan tri cơ sở dữ liệu phi quan hệ (NoSQL) linh hoạt va mở rộng, cho
phép khoá luận lưu trữ và truy vấn dữ liệu một cách hiệu quả Firebase cung cấpmột nền tảng phát trién ứng dụng di động đám mây, bao gồm co sở dữ liệu thời
gian thực và các dịch vụ liên quan, giúp khoá luận xây dựng ứng dụng di động
nhanh chóng và dễ dàng.
— Quản lý mã nguồn: khoá luận sử dụng Github dé quản ly mã nguồn Github cung
cấp một môi trường hợp tác phát triển mã nguồn, cho phép làm việc cùng nhau,
theo dõi thay đổi và quản lý phiên bản của mã nguồn trong quá trình phát triển hệ
thống
Tổng quát, việc sử dụng Figma, Flutter, NesJS, MongoDB, Firebase và Github
giúp khoá luận xây dựng hệ thống quản lý khoá học trực tuyến một cách hiệu quả và
linh hoạt, dam bảo tính ồn định, tương thích và mở rộng của hệ thống.
1.6 Cấu trúc khoá luận:
Khoá luận này được chia thành các chương chính, mỗi chương tập trung vào một
khía cạnh quan trọng của việc xây dựng hệ thống quản lý khoá học trực tuyến Dưới đây là mô tả ngắn gọn về nội dung của mỗi chương:
Chương 1: Giới thiệu đề tài
22
Trang 15Chương 1 giới thiệu về bối cảnh, mục tiêu, phạm vi, phương pháp nghiên cứu
của khoá luận Nó cung cấp một cái nhìn tổng quan về van đề nghiên cứu vagiải pháp mà khoá luận đề xuất Chương này cũng trình bày về công nghệ sử
dụng và câu trúc tông quan của khoá luận.
Chương 2: Cơ sở lý thuyết
Chương 2 tập trung vào cung cấp cơ sở lý thuyết cho việc xây dựng hệ thống
quản lý khoá học trực tuyến Nó bao gồm các khái niệm và khung lý thuyết về
quản lý khoá học, công nghệ ứng dụng, cơ sở đữ liệu, và các yếu tố quan trọng
khác liên quan đến việc triển khai hệ thống
Chương 3: Recommendation System cho tính năng đề xuất khoá học dựa trên
Collaborative Filtering
Chương 3 tập trung vào xây dựng Recommendation System cho tính năng đề
xuất khoá học dựa trên Collaborative Filtering Đã trình bày một tổng quan về
Recommendation System và phương pháp Collaborative Filtering.
Recommendation System giúp người dùng tìm kiếm và khám phá những khoá
học phù hợp Phương pháp Collaborative Filtering dựa trên thông tin đánh giá
và thói quen học tập của người dùng để đề xuất khoá học tương tự Quy trìnhtriển khai Recommendation System bao gồm xác định người dùng, tìm kiếmngười dùng tương tự và đề xuất khoá học Các bước này quan trọng trong xâydựng hệ thống đề xuất hiệu quả và chính xác
Chương 4: Phân tích và thiết kế
Chương 4 tập trung vào việc thiết kế hệ thống quản lý khoá học trực tuyến, baogồm thiết kế dữ liệu và thiết kế giao diện từng màn hình Chương này sẽ đóngvai trò quan trọng trong việc xác định cấu trúc đữ liệu và giao điện người dùngcho hệ thống quản lý khoá học trực tuyến Cung cấp hướng dan cho việc triểnkhai và phát triển hệ thống
Chương 5: Kết luận
Chương 5: Kết luận tổng hợp kết quả và thành tựu quan trọng trong thời gian
triển khai nghiên cứu
23
Trang 161.7 Thông tin nhóm
Bang 1.7: Thông tin thành viên nhóm
STT Tên thành viên Mã sinh viên Email
1 Bui Thién Nhan 19521927 19521927 @ gm.uit.edu.vn
2 Nguyễn Yến Nhi 19520205 19520205 @ gm.uit.edu.vn
24
Trang 17Chương2 COSOLY THUYẾT
Chương 2 mang đến thông tin đầy đủ và chỉ tiết về các lý thuyết cũng như nguyên
tắc quan trọng liên quan đến xây dựng hệ thống quản lý khoá học trực tuyến Chương
này đem đến cho độc giả một cơ sở vững chắc dé hiéu rõ hơn về quản lý khoá học trực
tuyến, các công nghệ ứng dụng, cấu trúc cơ sở dữ liệu và các yếu tố quan trọng khác
trong việc xây dựng và triển khai hệ thống
Bằng cách trình bày các khái niệm nền tảng và các lý thuyết then chốt, chương này
sẽ giúp người đọc xác định và nắm vững các yếu tố quan trọng cần thiết dé xây dựng
hệ thống quản lý khoá học trực tuyến một cách hiệu quả và linh hoạt Chương 2 sẽ giúp
người đọc hiểu rõ hơn về các khía cạnh lý thuyết và nguyên tắc cần thiết đề tiếp cận vàứng dụng chúng vào việc xây dựng hệ thống quản lý khoá học trực tuyến
2.1 Learning Management System (Hệ thống quản lý học tập)
2.1.1 Giới thiệu chung về LMS - Hệ thống Quản lý Học tập
Hệ thống Quản lý Học tập (LMS) là một phần mềm được thiết kế dé hỗ
trợ quản lý, cung cấp và cho phép người sử dụng có thê tương tác với hệ thống
trong quá trình học trực tuyến LMS đã trở thành một công cụ quan trọng trong
lĩnh vực giáo dục, cho phép giảng viên, học sinh và quản trị viên tương tác với
nhau và tiếp cận tài liệu học tập một cách thuận tiện và linh hoạt
Hệ thống Quản lý Học tập (LMS) là một nền tảng phần mềm cho phép tôchức giáo dục va đào tạo tao ra cũng như có thé tô chức, quan lý các khóa học
trực tuyến Nó cung cap các công cụ và tài nguyên dé tạo nội dung học tập, tương
tác với học viên, theo dõi tiến độ học tập và đánh giá kết quả
Trong thời đại công nghệ số phát triển, LMS đã trở thành một công cụ
quan trọng trong lĩnh vực giáo dục Với sự phát triển của internet và công nghệ
thông tin, việc học tập trực tuyến đã trở nên phổ biến và tiện lợi hơn bao gid hét.
LMS gitip tao diéu kiện cho việc hoc tập linh hoạt, giảm thiểu thời gian và
khoảng cách về địa lý, cũng như hỗ trợ gia tăng khả năng tương tác giữa giảng
viên và học viên.
25
Trang 18Ưu điểm và lợi ích của việc sử dụng LMS trong quá trình giảng dạy và
học tập Sử dụng LMS mang lại nhiều lợi ích cho cả giảng viên và học viên Một
sô ưu điêm chính của LMS bao gôm:
o_ Tiết kiệm thời gian và công sức trong quá trình quản lý khóa học và tài
liệu học tập.
o Tính linh hoạt và tiện lợi cho học viên trong việc truy cập tai liệu và tham
gia khóa học từ bất kỳ địa điểm và thiết bị nào
o Kha năng tương tác và phản hồi giữa giảng viên và học viên, tạo điều
kiện cho việc hỗ trợ và giải đáp thắc mắc
o_ Quản lý tiễn độ học tập và đánh giá kết quả một cách hiệu quả
fe) Tiép can và chia sẻ tai liệu hoc tập một cách nhanh chong va dễ dàng
o Tăng cường tính tương tac và cộng tác giữa các thành viên trong cộng
đồng
Như vậy, Hệ thống Quản lý Học tập (LMS) đóng vai trò quan trọng trong
việc nâng cao chất lượng giáo dục và đào tạo trực tuyến Bằng cách tận dụng
công nghệ và cung cấp môi trường học tập thuận tiện, LMS đã trở thành mộtcông cụ hữu ích dé tạo ra trải nghiệm giảng dạy và học tập tốt hơn đồng thời phát
triển kiến thức cho cộng đồng
2.1.2, Các thành phần cấu tạo
Hệ thông Quản lý Học tập (LMS) được câu tạo từ một sô thành phân quan
trọng, cùng nhau tạo nên một môi trường học tập trực tuyến đầy đủ chức năng
và linh hoạt Các thành phần này đảm nhận vai trò quan trọng trong việc cung
cấp, quản lý và tương tác với nội dung học tập, hỗ trợ quản lý học viên và đánh
giá kết quả của quá trình học tập Sau đây là một số thành phần nên tảng của Hệthống Quản lý Học tập:
o Giao diện người dùng (User Interface - UD: Giao diện người dùng đóng
vai trò quan trọng trong việc tạo nên một trải nghiệm học tập dễ dàng và
thân thiện cho người dùng Nó bao gồm các thành phan chính như trang
chủ, trang khóa học, trang bài giảng, trang tương tác, và các công cụ hỗ
26
Trang 19trợ học tập như bài tập, bài kiểm tra Giao điện người dùng cần được thiết
kế một cách trực quan, dễ sử dụng và thân thiện với người dùng, đồng
thời đảm bảo tính tương thích trên nhiều thiết bị va trình duyệt khác nhau
Việc tối ưu hóa trải nghiệm người dùng giúp đảm bảo học viên có thểtiếp cận nội dung học tập một cách thuận tiện và hiệu quả hơn
Cơ sở đữ liệu (Database): Cơ sở đữ liệu là nơi quản lý và lưu trữ thông
tin về khóa học, học viên, tai liệu, kết quả học tập và các dữ liệu liên quan
khác Hệ thong LMS cần có cơ sở đữ liệu đáng tin cậy và có hiệu suất
cao đề đảm bảo tính khả dụng, tính xác thực và tính an toàn, bảo mật của
dữ liệu Các hệ quản trị cơ sở dữ liệu dé xây dựng co sơ dữ liệu cho LMS
thường gặp sẽ có như là MongoDB, PostgreSQL hay MySQL Hệ quản
trị cơ sở đữ liệu đóng một vai trò rất quan trọng trong hệ thống Quản lýHọc tập (LMS) Day là nơi lưu trữ, quản ly và tổ chức các dit liệu liênquan đến người dùng, khóa học, bài giảng, bài kiểm tra và các thông tin
khác trong LMS Dưới đây là những mục đích và vai trò quan trọng của
cơ sở đữ liệu trong LMS:
= Lưu trữ thông tin người dùng: Cơ sở dữ liệu LMS chứa thông tin
về người dùng, bao gồm tên, địa chi email, mật khâu, quyền truy
cập và thông tin cá nhân khác Qua việc sử dụng cơ sở đữ liệu, hệ
thống có khả năng xác thực và quản lý thông tin người dùng một
cách hiệu quả.
= Lưu trữ thông tin khóa học: Cơ sở dữ liệu LMS lưu trữ thông tin
về khóa học, bao gồm tiêu đề, mô tả, ngày bắt đầu/kết thúc, tácgiả, tài liệu học tập và các thông tin liên quan khác Điều này đảm
bảo hệ thống có khả năng quản lý các khóa học một cách chính
xác và tiện lợi.
= Lưu trữ thông tin bài giảng: Cơ sở dữ liệu LMS lưu trữ thông tin
về các bài giảng, bao gồm tiêu đề, nội dung, tác giả, thời gian tạo
và các thông tin liên quan khác Điều này giúp hệ thống hiển thị
và quản lý bài giảng một cách hiệu quả và dễ dàng.
27
Trang 20= Lưu trữ thông tin bài kiểm tra của bài giảng: Cơ sở dữ liệu LMS
lưu trữ thông tin về bài kiểm tra của bài giảng, bao gồm nội dung
các câu hỏi, đáp án, độ khó, thời gian, điểm số và các thông tin
liên quan khác Điều này giúp hệ thống quản lý và đánh giá sự tiền
bộ của người dùng trong quá trình học tập.
o Hệ thống quản lý và xử lý dữ liệu (Data Management System): Hệ thống
quản lý và xử lý đữ liệu đảm nhận vai trò quan trọng trong việc tổ chức
và quản lý dữ liệu trong LMS Nó cung cấp các chức năng chính như lưu
trữ, truy xuất, cập nhật, xóa dir liệu va xử ly các yêu cầu liên quan đến
dữ liệu từ người dùng và các thành phần khác trong hệ thống
o Tính năng và chức năng (Features and Functionality): Hệ thống LMS
cung cấp một loạt các tính năng và chức năng dé hỗ tro quản ly khóa học,
tương tác học tập và đánh giá sự tiến bộ của người tham gia Các tính
năng chính bao gồm:
“ Quản lý khóa học: cho phép người có quyền được tạo mới, chỉnh
sửa và xoá các nội dung của khóa học, quản lý danh sách học viên.
« Tương tác học tập: bao gồm bài giảng trực tuyến, diễn dan thao
luận, tư vấn trực tuyến, bai tap và bai kiém tra truc tuyến.
= Đánh giá kết quả học tập: cho phép đánh giá và theo dõi tiến trình
học tập của học viên, cung cấp phản hồi và ghi nhận kết quả
Như vậy, Những thành phần cấu thành của Hệ thống Quản lý Học tập
đóng vai trò quan trọng trong việc tạo ra một môi trường học tập trực tuyến linhhoạt, đáp ứng đủ các nhu cầu của người dùng Sự liên kết giữa các thành phầnnày đảm bảo việc cung cấp, quản lý và tương tác trong quá trình học tập một
cách hiệu quả và thuận tiện cho người dùng.
2.1.3 Mô hình triển khai và quản lý LMS
2.1.3.1 Mô hình triển khai truyền thống
Mô hình triển khai truyền thống của hệ thống Quản lý Học tập
thường được phát triển trên hệ thống riêng của tổ chức Trong mô hình
28
Trang 21này, các máy chủ và cơ sở dữ liệu được triên khai và quản lý trong môi trường nội bộ của tô chức.
Ưu điểm:
e Kiểm soát hoàn toàn về an ninh và quyên riêng tư
e Tuy chỉnh và điều chỉnh hệ thống theo nhu cầu cụ thể của
tổ chức
e_ Đáp ứng nhanh chóng các yêu cau và thay đổi của tổ chức
Nhược điểm:
¢ Đòi hỏi đầu tư cao cho cơ sở hạ tầng và phan cứng
e Yêu cầu kiến thức kỹ thuật cao dé triển khai và quản lý hệ
thống
e Giới hạn về khả năng mở rộng và độ linh hoạt
2.1.3.2 Mô hình triển khai dựa trên đám mây
Mô hình triển khai dựa trên đám mây của LMS sử dụng các dịch
vụ đám mây để triển khai và quản lý hệ thống Hệ thống LMS được triển
khai trên một nên tảng đám mây công cộng hoặc riêng tư.
Ưu điểm:
e Linh hoạt và mở rộng dé dàng theo nhu cau
e_ Chỉ phí đầu tư và nâng cấp có thê dé dàng kiểm soát, giảm
bớt.
e Dễ dàng tham gia từ bat kỳ công cụ và địa điểm nào có kết
nối Internet
Nhược điểm:
e Phu thuộc vao dịch vụ đám mây va nhà cung cấp.
e Hạn chế về tùy chỉnh và điều chỉnh hệ thống theo nhu cầu
cụ thé của tổ chức
© Quản lý an ninh và quyền riêng tư dựa trên chính sách của
nha cung cap dam mây.
29
Trang 222.1.3.3 Quản lý và bảo trì hệ thống LMSQuan lý và bảo trì hệ thống LMS là quá trình đảm bảo hoạt động ôn định,
hiệu suât cao và khả năng mở rộng của hệ thông Các hoạt động quản lý và bảo
trì gồm:
e Giám sát hệ thống: Theo dõi và kiểm tra các thành phần và tài nguyên
của hệ thong LMS dé đảm bảo hoạt động ôn định và xử lý sự cố kịp thời.
e Sao lưu và khôi phục dữ liệu: Thực hiện việc sao lưu định ky dtr liệu
của hệ thống LMS dé đảm bảo an toàn và khả năng khôi phục dữ liệu
trong trường hợp sự cô xảy ra
e Kiểm tra bảo mật: Dam bảo tính bảo mật và quyên riêng tư của dữ liệu
trong hệ thống LMS băng cách triển khai các biện pháp bảo mật như
mã hóa dữ liệu, xác thực người dùng và kiểm soát quyên truy cập.
e© Cập nhật và nâng cấp: Theo dõi các bản vá lỗi, bản vá bảo mật và
version mới của các thành phần và phần mềm liên quan đến hệ thống LMS, và thực hiện quá trình cập nhật va nang cấp để đảm bảo tính tương thích và hiệu suất cao nhất.
2.1.3.4 Các thách thức và giải pháp trong việc triển khai và
quản lý LMS
Thách thức:
Đáp ứng nhu cầu người dùng đa dạng: Người dùng trong hệ thống LMS
có các nhu cầu khác nhau, từ học viên, giảng viên, quản trị viên đến quản lý Đáp ứng được tất cả các yêu cầu này đòi hỏi sự linh hoạt và tùy chỉnh trong triển khai
và quản lý hệ thống.
Đảm bảo tính bảo mật và quyền riêng tư: Hệ thong LMS chứa nhiều thông
tin nhạy cảm và dữ liệu cá nhân Đảm bảo tính bảo mật và quyên riêng tư của người dùng là một thách thức quan trọng trong triên khai và quản lý LMS.
Quản lý khối lượng lớn người dùng và dữ liệu: Hệ thống LMS thường
phải đối mặt với việc quản lý hàng ngàn người dùng và khối lượng lớn dit liệu
học tập Đảm bảo hiệu suất, mở rộng và xử lý dữ liệu một cách hiệu quả là mộtthách thức kỹ thuật trong triển khai và quản lý LMS
Giải pháp:
Thiết kế linh hoạt và tùy chỉnh: Xác định các yêu cầu của người dùng và
tô chức dé thiết kế hệ thống LMS linh hoạt và có khả năng tùy chỉnh Sử dụng kiến trúc mô-đun và các công nghệ linh hoạt dé có thé thích ứng với các yêu cầu
và thay đôi trong tương lai.
Áp dụng các biện pháp bảo mật và quyền riêng tư: Triển khai các biệnpháp bảo mật như xác thực người dùng, mã hóa dữ liệu và quản lý quyền truy
cập dé dam bảo tính bảo mật và quyền riêng tư của dữ liệu trong hệ thống LMS.
30
Trang 23Sử dụng công nghệ và kiến thức quan lý dữ liệu: Sử dụng công nghệ vàcác phương pháp quản lý dữ liệu để xử lý và quản lý khối lượng lớn người dùng
và dữ liệu trong hệ thống LMS Áp dụng các giải pháp như nền tảng đám mây,
cơ sở dữ liệu phân tán và các công nghệ Big Data để đảm bảo hiệu suất và mở
rộng của hệ thống
Quản lý dự án chặt chẽ: Đảm bao quản lý dự án hiệu quả và chặt chẽ dé
dam bao triển khai va quan ly LMS được thực hiện theo kế hoạch va đạt được mục tiêu đề ra Sử dụng các phương pháp quản lý dự án như Agile hoặc Waterfall
dé quan ly tién độ, nguồn lực và rủi ro trong quá trình triển khai
Tóm lại, việc triển khai và quản lý LMS đòi hỏi giải quyết các thách thức về đa
dạng người dùng, bảo mật, quản lý dữ liệu và quản lý dự án Tuy nhiên, thông qua việc
thiết kế linh hoạt, áp dụng biện pháp bảo mật và quản lý đữ liệu, sử dụng công nghệ vàquản lý dự án hiệu quả, các thách thức này có thé được vượt qua dé đảm bảo thành côngtrong triển khai và quản lý LMS
2.1.4 Tích hợp và mở rộng LMS
2.1.4.1 Tích hợp hệ thống LMS
Tích hợp hệ thong xác thực người dùng: Đề cung cấp tính năng này, hệ
thống LMS cần tích hợp với các hệ thống xác thực như Single Sign-On (SSO),
LDAP hoặc OAuth Qua đó, người ding có thé sử dụng tài khoản đã có dé truy cập vào LMS một cách thuận tiện.
Tích hợp với hệ thống quản lý tài nguyên: Đối với tổ chức hoặc trườnghọc có hệ thống quản lý tài nguyên riêng, việc tích hợp hệ thống LMS với hệthống này giúp quản lý và cung cấp tài nguyên học tập một cách hiệu quả Ví dụ,việc tích hợp với thư viện số, cơ sở dit liệu học liệu hay hệ thống video giúp họcviên tiếp cận tài liệu và nội dung học tập một cách dễ dàng
Tích hợp với hệ thống quản lý khóa học: Trong trường hợp tổ chức hoặc
trường học đã sử dụng một hệ thống quản lý khóa học (Course ManagementSystem - CMS) riêng, việc tích hợp CMS với LMS giúp quản lý và cung cấpkhóa học một cách liên tục và nhất quán Điều này đảm bảo rằng thông tin vềkhóa học, nội dung và kết quả học tập được đồng bộ và quản lý hiệu quả
2.1.4.2 M6 rộng tính năng LMS
Mở rộng tính năng bài giảng: Dé cung cấp trải nghiệm học tập tốt hơn, hệthống LMS có thê được mở rộng với tính năng bài giảng trực tuyến, cho phépgiảng viên tổ chức các buổi học trực tiếp và tương tác với học viên thông qua
video streaming và công nghệ WebRTC.
Mở rộng tính năng tương tác: Việc mở rộng tính năng tương tác trong LMS giúp học viên có thê tương tác với nhau và với giảng viên Các tính năng
31
Trang 24như điễn đàn trực tuyến, trò chuyện trực tiếp và nhóm làm việc giúp tạo ra một
môi trường học tập xã hội va tương tác.
Mở rộng tinh năng đánh giá: Dé đánh giá và đo lường tiễn độ học tập củahọc viên, hệ thong LMS có thé được mở rộng với tính năng đánh giá đa dạngnhư bài kiểm tra trực tuyến, bài tập định kỳ và bài tập tự động Điều này giúpđánh giá hiệu quả và cung cấp phản hồi cho học viên về quá trình học tập của
họ.
Mở rộng tính năng quản lý người dùng: Dé quản lý học viên và giảng viênmột cách hiệu quả, hệ thống LMS có thể được mở rộng với tính năng quản lýngười dùng, bao gồm tạo, sửa đôi và xóa tài khoản, quản lý quyền truy cập và
theo dõi hoạt động của người dùng.
Mở rộng tính năng phân tích và báo cáo: Tính năng phân tích và báo cáo
trong LMS giúp tổ chức hoặc trường học đánh giá hiệu quả của khóa học, tiến
độ học tập và sự tham gia của học viên Điều này giúp cung cấp thông tin phântích chỉ tiết và báo cáo tong quan dé đưa ra các quyết định và cải thiện chất lượng
học tập.
Tóm lại, việc tích hợp và mở rộng LMS giúp nâng cao tính linh hoạt, hiệu quả và trải
nghiệm học tập Bằng cách tích hợp với các hệ thống liên quan và mở rộng tính năng,
chức năng LMS có thé giúp người dùng dé dang hơn trong việc day và học.
và quản lý quá trình học tập, mà còn mang lại nhiều lợi ích và tiềm năng trong
việc cải thiện chất lượng giáo dục và đáp ứng nhu cau học tập của người học
LMS đóng góp quan trọng trong việc tạo môi trường thuận lợi cho việc
truy cập kiến thức và học tập linh hoạt Hệ thống này cho phép người học tiếp
cận tư liệu, bài dạy, đánh giá khả nang va giao tiéos với giảng viên và hoc viên
khác thông qua giao diện trực tuyển Điều này giúp tăng cường sự tương tác, trao
đổi thông tin và xây dựng cộng đồng học tập trực tuyến.
Sự tiễn bộ của công nghệ và xu hướng học tập thông qua internet đangđây mạnh sự tiếp cận và sử dụng LMS Với sự lan rộng của các thiết bị đi động
và mạng, người học có thé tiếp cận hệ thống LMS bat kỳ lúc nào và ở bat kỳ địa
điểm nào Điều này mở ra cơ hội rộng lớn cho việc phát triển học tập linh hoạt,học tập trực tuyến và hình thức hoc tập kỹ thuật sé
32
Trang 252.1.5.2 Các xu hướng và dự đoán về LMSTăng cường tích hợp và tương tác: Xu hướng tiếp theo của LMS là tăngcường tích hợp với các công nghệ và ứng dụng khác như công cụ hợp tác, truyềnthông đa phương tiện và trí tuệ nhân tạo Điều này sẽ tao ra môi trường học tậptương tác, đa dang và trực quan hơn, đồng thời cung cấp các tiện ích phân tích
và phan hồi dé cải thiện quá trình học tập
Phát triển học tập linh hoạt: LMS sẽ tiếp tục phát triển dé hỗ trợ học tậplinh hoạt và theo nhu cau cá nhân của từng người học Các tính năng như học tập
tự động, học tập theo yêu cầu và học tập tương tác sẽ được tăng cường đề đáp
ứng sự linh hoạt và đa dạng của người học.
Sự phát triển của học tập trực tuyến và học tập kỹ thuật số: LMS sẽ tiếp tục trở thành một phần quan trọng trong việc cung cấp học tập trực tuyến và học tập kỹ thuật số Các công nghệ mới như truyền hình ảnh 360 độ, thực tế ảo và
trực tuyến thời gian thực sẽ được tích hợp vào LMS đỀ tạo ra trải nghiệm học tập
tương tác và chân thực hơn.
Phân tích dữ liệu và trí tuệ nhân tạo: Sự phát triển này sẽ có ảnh hưởng
lớn đến LMS Các công nghệ này sẽ giúp thu thập va phân tích dir liệu học tap, đưa ra phân tích và đề xuất cá nhân hóa cho
Flutter
Flutter là một framework giao diện người ding di động mã nguồn mở và miễn phíđược tạo và phát triển bởi Google từ tháng 5 năm 2017 Đơn giản nhưng mạnh
mẽ, Flutter cho phép chúng ta xây dung ứng dụng di động gốc bang một cơ sở mã
duy nhất Điều này có nghĩa là chúng ta có thê sử dụng cùng một ngôn ngữ lập
trình và cấu trúc mã dé phát triển ứng dụng trên cả hai nền tảng iOS và Android.Flutter bao gồm hai phần quan trọng:
e Software Development Kit (SDK): cung cấp các công cụ giúp chúng ta phát
triển app SDK bao gồm trình biên dịch dé chuyên đổi mã của chúng ta thành
mã máy gốc (mã dành cho iOS va Android)
e Framework: Flutter cung cấp một thư viện giao diện người dùng có tính tái
sử dụng cao, bao gồm các thành phần giao diện như nút, hộp văn bản, thanhtrượt và nhiều hơn nữa Chúng ta có thé cá nhân hóa các thành phan này déphù hợp với nhu cầu của ứng dụng của chúng ta
Dé triển khai với Flutter, chúng ta sử dụng ngôn ngữ lập trình gọi là Dart Dart là
một ngôn ngữ lập trình được tạo ra bởi Google vào thang 10 năm 2011 và đã được
33
Trang 26cải tiễn đáng kể trong suốt thời gian qua Dart tập trung vào phát triển giao diện
người dùng và chúng ta có thé sử dụng nó đề xây dựng ứng dung web và di động
Nếu chúng ta đã quen thuộc với lập trình, Dart sẽ rất dễ tiếp cận vì nó được thiết
kế dựa trên triển khai theo hướng đối tượng (OOP) Cú pháp của Dart có thé được
Hình 2.1: Cấu trúc code dart cơ bản
2.3 NestJs
Trong chương Cơ sở lý thuyết, khoá luận giới thiệu NestJS, một framework phát
triển ứng dụng Node.js hiệu quả và mạnh mẽ NestJS được xây dựng trên cơ sởExpress.js và sử dụng TypeScript dé cung cấp một cách tiếp cận hướng đối tượng chophát triển backend
Khoá luận trình bày về các tính năng và lợi ích của NestJS trong việc xây dựng
hệ thống quản lý khoá học trực tuyến Các điểm nổi bật bao gồm:
- Kiến trúc hướng đối tượng (OOP): NestJS thúc đây việc sử dụng OOP dé phân
chia ứng dụng thành các module, controller va service Điều này giúp tổ chức
mã nguồn một cách có cấu trúc, minh bạch và dễ bảo trì
- _ Cấu trúc mã thân thiện và mô-đun hóa: NestJS cung cấp cau trúc mã đồng nhất
và mô-đun hóa ứng dụng Điều này hỗ trợ việc triển khai và bảo trì app nhanhchóng hơn, đồng thời tạo thêm nhiều khả năng cho việc mở rộng ứng dụng
- Dependency Injection (DI): NestJS hỗ trợ DI, cho phép việc quản lý phụ thuộc
giữa các yếu tố của app một cách dé dang và linh hoạt Điều này hỗ trợ việc
kiểm tra đơn vị và tạo các thành phần tải sử dụng
- Middleware và Pipes: NestJS hỗ trợ middleware va pipes dé xử lý các yêu cầu
trước và sau khi chúng đi qua các route Điều này cho phép xác thực, ghi nhật
ký và kiểm tra dữ liệu đầu vào một cách dễ dàng và tổ chức
34
Trang 27- Tích hợp dé dàng: NestJS tích hợp tốt với các công nghệ phổ biến như
TypeORM, MongoDB, Redis, GraphQL và nhiều công cụ khác Điều này giúp
việc làm việc với database và các công nghệ khác trở nên thuận tiện và linh hoạt.
Trong hệ thống quản lý khoá học trực tuyến, khoá luận dùng NestJS dé triển khai
các module, controller và service cho việc quản lý khoá học, người dùng, bình luận và
nhiều chức năng khác NestJS giúp khoá luận tổ chức mã nguồn một cách rõ ràng, cung
cấp khả năng mở rộng và tạo điều kiện cho việc tích hợp dé dàng với các công nghệ
khác.
Với NestJS, việc xây dựng hệ thống quản lý khoá học trực tuyến trở nên nhanh
chóng, cho phép khoá luận tập trung vào việc phát triển tính năng và cung cấp một ứng
dụng ôn định, mạnh mẽ và dé bao trì.
2.4 Web Socket, Socket.IO
Web Socket là một giao thức hai chiều (full-duplex) được sử dụng dé thiết lập kếtnối liên tục và tương tác giữa máy khách (client) và máy chủ (server) trên mạng web
Nó cho phép truyền dif liệu theo thời gian thực và thông qua một kết nối liên tục, giúp
tăng cường khả năng tương tác và đồng bộ giữa hai bên
Trong chương Cơ sở lý thuyết, khoá luận giới thiệu Web Socket và khả năng của
nó trong việc phát triển hệ thống quản lý khoá học thông qua interrnet Khoá luận trình
bày về cách Web Socket hoạt động, giao thức trao đồi thông điệp, và điểm mạnh của
việc dùng Web Socket trong môi trường ứng dụng Sử dụng Web Socket, khoá luận có
thé lập một kết nối liên tục giữa client và server, cho phép thông tin được truyền quamột cách nhanh chóng và hiệu quả Điều này rất hữu ích trong việc xây dựng hệ thốngquản lý khoá học trực tuyến, nơi cần phải cập nhật thông tin, thông báo và tương tác
realtime giữa người học và giảng viên.
Trong khoá luận, khoá luận sử dụng Socket.IO dé triển khai tính năng bình luận
trong hệ thống quản lý khoá học trực tuyến Socket.IO là một thư viện mã nguồn mở
cho phép tạo và quản lý kết nối WebSocket một cách nhanh chóng trên ứng dụng web
35
Trang 28Khả năng của Socket.IO trong khoá luận là việc tạo ra kết nối hai chiều giữa
client và server, cho phép truyền thông điệp realtime Với Socket.IO, khoá luận tạo ramột hệ thống bình luận đa người dùng, nơi mọi người có thể gửi và nhận thông điệptrong thời gian thực mà không can refresh dé tai lại
Thông qua Socket.IO, khi người dùng gửi một bình luận, thông điệp sẽ được gửi
đến máy chủ và sau đó được phát trực tiếp đến các người dùng khác đang truy cập trang
web Điều này tạo ra trải nghiệm tương tác và giao tiếp thời gian thực, cho phép người
dùng xem và đưa ra phản hồi ngay lập tức
Trong các chương sau, khoá luận cũng cung cấp một hướng dẫn cụ thể về cách
sử dụng Socket.IO để triển khai tính năng bình luận trong hệ thống quản lý khoá học
trực tuyến Khoá luận mô tả về việc cài đặt và cấu hình Socket.IO, xác định các sự kiện
và trạng thái liên quan đến tính năng bình luận, cũng như việc xử lý và truyền thông
điệp giữa các người dùng.
2.5 Web RTC
Trong chương Co sở lý thuyết, khoá luận giới thiệu WebRTC (Web Real-Time
Communication) và cách sử dụng nó dé triển khai tinh năng chia sẻ livestream trong hệ
thống quản lý khoá học trực tuyến WebRTC là một công nghệ mã nguồn mở cho phép
truyền dữ liệu trực tiếp và thời gian thực giữa các trình duyệt web và ứng dụng di động
Khoá luận trình bày về khả năng của WebRTC trong việc tao ra kết nối trực tiếp(peer-to-peer) giữa các máy khách, cho phép truyền dữ liệu âm thanh, video và dữ liệu
trực tuyến Với WebRTC, khoá luận có thé triển khai tính năng chia sẻ livestream, cho
phép người dạy truyền trực tiếp nội dung giảng dạy và học viên theo dõi nội dung đó
trong thời gian thực.
Thông qua WebRTC, khi giảng viên bắt đầu livestream, dit liệu âm thanh và
video sẽ được truyền từ máy giảng viên đến các máy học viên một cách trực tiếp, tiếnhành hién thị nội dung livestream ngay lập tức Điều này tao ra một trải nghiệm tham
36
Trang 29gia lớp học trực tuyến tương tự như lớp học truyền thống, nâng cao tính tương tác và
tiếp cận thông tin ngay trong thời gian thực
Dưới đây là các bước tông quát về cách sử dụng WebRTC mà khoá luận sử dụng
dé triển khai tính năng livestream:
1 Xác định vai trò và nhiệm vụ của các thành phần:
a Giang viên: Sẽ chia sẻ livestream từ máy tính hoặc thiết bị di động
b Hoc viên: Sẽ xem livestream trên máy tính hoặc thiết bị di động
2 Cài đặt & cấu hình WebRTC:
Tạo một kết nối WebRTC giữa máy giảng viên và các máy học viên bằng
cách sử dụng API WebRTC trong trình duyệt web.
Xác định các thông tin cần thiết như địa chỉ IP, cổng, và giao thức truyền
thông dé tạo kết nồi
3 Truyền đữ liệu âm thanh và video từ giảng viên đến học viên:
Giảng viên sử dụng camera và microphone đề ghi âm và video
Sử dụng API WebRTC đề truyền dữ liệu âm thanh và video từ giảng viên đếncác học viên đang kết nối
Các học viên sẽ nhận và hiên thị dir liệu âm thanh va video trong thời gian
thực.
4 Xử lý đồng bộ và tương tác giữa giảng viên và học viên:
Xử lý sự đồng bộ giữa giảng viên và học viên để đảm bảo rằng các học viên
nhận được thông tin livestream cùng một lúc và không có độ trễ lớn.
Xây dựng chức năng tương tác như chức năng chat, hỏi đáp, hoặc đánh giá cho phép học viên tương tác với giảng viên trong quá trình chia sẻ livestream.
37
Trang 30Firebase Storage là một dịch vụ lưu trữ dam may mạnh mẽ va dễ sử dụng được
cung cấp bởi Firebase Nó cho phép lưu trữ và quan lý nhiều loại dữ liệu đa phương tiện
và các tệp tin khác một cách an toàn và linh hoạt trên đám mây cua Google.
Firebase Storage cung cấp nhiêu lợi ích quan trọng khi sử dung trong hệ thống
quan lý khoá học trực tuyến Dưới đây là một số điểm nổi bật:
e Dễ dàng tích hợp: Firebase Storage tích hợp tốt với các dich vụ Firebase
khác, cho phép chúng ta sử dụng chung các tài khoản, xác thực người dùng
38
Trang 31và quản lý dự án Điều này giúp đơn giản hóa việc phát triển và quản lý ứng
dụng của chúng ta.
e Tính bảo mật cao: Firebase Storage hỗ trợ các tính năng bảo mật mạnh mẽ
như quyền truy cập dựa trên vai trò, chia sẻ tài nguyên điều khiến, và khả
năng xác thực người dùng Điều này đảm bảo rằng chỉ những người được ủy
quyền mới có thể truy cập và tải xuống tệp tin của chúng ta
e Nhanh chóng và dang tin cậy: Firebase Storage tận dụng cơ sở hạ tang mang
toàn cầu của Google, đảm bảo tốc độ truy cập nhanh chóng và độ tin cậy cao
Dữ liệu của chúng ta được lưu trữ trên nhiều vị trí vật ly dé luôn được sẵn
sang và khả năng chịu lỗi.
e Mo rộng linh hoạt: Chúng ta có thé tăng cường dung lượng lưu trữ một cách
tiện lợi và chỉ trả tiền cho lượng tài nguyên mà chúng ta thực sự sử dụng
Ví dụ, trong hệ thống quản lý khoá học trực tuyến, Firebase Storage có thé được
sử dụng để lưu trữ các tệp tin ảnh và video liên quan đến khoá học Khi một giảng viên
tải lên một tệp tin ảnh hoặc video, nó sẽ được lưu trữ trên Firebase Storage Sau đó, các
học viên có thể truy cập và xem những tệp tin này thông qua ứng dụng di động hoặc
trang web của hệ thống
Với Firebase Storage, việc quan lý và truy xuất tệp tin đa phương tiện trong hệthống quản lý khoá học trực tuyến trở nên dé dàng và đáng tin cậy
2.7 MongoDB
Trong chương Cơ sở lý thuyết, khoá luận giới thiệu MongoDB, một hệ quản trị
cơ sở dữ liệu phi quan hệ mã nguồn mở và linh hoạt MongoDB được thiết kế dé lưu
trữ và xử lý dữ liệu không có cấu trúc và có thê mở rộng theo quy mô
Khoá luận trình bày về các đặc điểm và lợi ích của MongoDB trong việc xây
dựng hệ thống quản lý khoá học trực tuyến Các điểm nôi bật bao gồm:
- Dir liệu không có cấu trúc: MongoDB cho phép lưu trữ dữ liệu không có cau
trúc (NoSQL), giúp đơn giản hóa quá trình phát triển và mở rộng hệ thống
39
Trang 32Chúng ta không cần định nghĩa cấu trúc bảng trước và có thé linh hoạt thêm
hoặc xóa các trường đữ liệu.
- Kha năng mở rộng: MongoDB cho phép mở rộng dit liệu theo quy mô dé dang.
Chúng ta có thé thêm các node mới vào cum MongoDB dé xử ly lượng dữ liệu
lớn và đáp ứng nhu cầu tải cao mà không gây gián đoạn dịch vụ
- _ Tính linh hoạt: MongoDB hỗ trợ nhiều loại truy van và khả năng tìm kiếm phong
phú Chúng ta có thé thực hiện các truy van phức tạp và tìm kiếm dựa trên các
tiêu chí linh hoạt để truy xuất dữ liệu một cách hiệu quả
- _ Tích hợp dé dàng: MongoDB tích hợp tốt với các ngôn ngữ lập trình phổ biến
như JavaScript, Node.js và Python Chúng ta có thể sử dụng các thư việnMongoDB hỗ trợ trong việc phát triển ứng dụng và tương tác với cơ sở dữ liệu
Trong hệ thống quản lý khoá học trực tuyến, MongoDB có thé được sử dụng
để lưu trữ thông tin về người dùng, khoá học, bình luận và các tài liệu khác Dữ liệu
không có cấu trúc của MongoDB giúp khoá luận lĩnh hoạt trong việc thêm, sửa đổi và
truy xuất thông tin liên quan đến khoá học và người dùng
Với MongoDB, việc xây dựng hệ thống quản lý khoá học trực tuyến trở nên dédàng và hiệu quả, cho phép khoá luận lưu trữ và truy xuất dữ liệu một cách linh hoạt
và nhanh chóng.
2.8 Tích hợp cong thanh toán VNPAY
Trong chương Cơ sở lý thuyết, khoá luận giới thiệu quá trình tích hợp công thanh
toán VNPAY vào hệ thống quan lý khoá học trực tuyến VNPAY là một công thanh
toán hàng đầu tại Việt Nam, cung cấp giải pháp thanh toán trực tuyến an toàn và tiện
lợi cho doanh nghiệp và người dùng.
2.8.1 Sơ đồ tuần tự
Về cơ bản, việc sử dụng tích hợp vnpay được diễn ra như sau:
40
Trang 33we -_—
—I Mua hàng và chọn thanh toán qua VNPay— - '
' ¬ F——› Gùi yêu cầu thanh team
E2 Nhập thông tin thẻ hoặc tài khoản dé tiếp tục-‡ :
, ' 8.1 Yêu cầu gửi xác thực———
' Rone see 3.2 Thành công - - - - - ~~ ¬
‘ : '
———-4.NharorP : '
' 8 r——4.1 Xác thực OTP, chuẩn chi GD——>:
' lạ a7 l aie to n-222 4.2 Thanh công - - 3
4 R tra } 1 Thông báo kết quả (Return Url)——} h
Kếcrcrrre 6 Thông bao kết quả GD - CS 2d Thông báo Két quả GD (IPN Uri —: '
6.3 Phản hôi KQ và cập nhật cho VNPay - >>
h † 1 Gửi yêu cậu truy vẫn (Querydr——; h
' kŒ-======== 2 Phản hồi kết quả - - - - -~ + '
1 Gửi yêu cầu hoàn (Refund)————>
a 2 Phản hồi kết qua -4 h
Hình 2.8.1: Sơ đô tuần tự VNPay
Sơ đồ tuần tự của VNPAY là một biêu đồ trình tự, mô tả quá trình giao tiếp và
xử lý dữ liệu giữa các thành phần trong hệ thống thanh toán của VNPAY Nó cho phép
hiểu cách các thành phần tương tác và truyền thông tin với nhau đề thực hiện quá trình
thanh toán.
Sơ đồ tuần tự của VNPAY thường bao gồm các bước chính như sau:
1 Người dùng tạo yêu cầu thanh toán trên ứng dụng hoặc trang web
2 Yêu cầu thanh toán được gửi tới VNPAY qua giao thức HTTP(S)
3 VNPAY tiếp nhận yêu cầu và xác thực thông tin người dùng và giao dịch
4 Sau khi xác thực thành công, VNPAY tạo và gửi URL thanh toán cho người dùng.
5 Người dùng truy cập URL thanh toán đề tiễn hành thanh toán
6 Người dùng điền thông tin thanh toán (số thẻ, mã CVV, mật khẩu, V.V.) trên
trang thanh toán của VNPAY.
7 Thông tin thanh toán được gửi tới VNPAY để xử lý
41
Trang 348 VNPAY thực hiện các bước xử lý thanh toán, bao gồm kiểm tra và xác thực
thông tin, truy vấn ngân hàng để xác nhận giao dịch, và gửi yêu cầu thanh toán tới ngân
hàng.
9 Ngân hàng xử lý yêu cầu thanh toán và gửi lại kết quả cho VNPAY
10 VNPAY nhận kết quả từ ngân hàng và thông báo kết quả cho người dùng
11 Người dùng nhận thông báo kết quả thanh toán và hoàn tất quá trình thanh
toán.
Sơ đồ tuần tự giúp hiểu quy trình giao tiếp và xử lý dữ liệu giữa các thành phần
trong hệ thống thanh toán của VNPAY, đồng thời giúp xác định và giải quyết các vấn
đề có thê xảy ra trong quá trình thanh toán
2.8.2 Các bước tích hợp
Sau đây, khoá luận trình bày vê các bước cân thiệt đê tích hợp công thanh
toán VNPAY vào hệ thống, bao gồm:
o_ Đăng ký và cau hình tài khoản VNPAY: Đầu tiên, chúng ta cần đăng ký
và có một tài khoản VNPAY Sau đó, chúng ta sẽ cấu hình các thông tin
tài khoản và khai báo các thông tin liên quan đến hệ thống của chúng ta
như URL callback, mã đơn vi thanh toán, khóa bí mật, v.v.
o_ Xây dựng giao diện thanh toán: Tiếp theo, chúng ta cần xây dựng giao
diện thanh toán trên trang web hoặc ứng dụng của mình Giao diện này
sẽ cho phép người dùng chọn phương thức thanh toán và nhập thông tin
thanh toán cần thiết
o Gửi yêu cầu thanh toán đến VNPAY: Khi người dùng chọn phương thức
thanh toán và nhập thông tin cần thiết, hệ thống của chúng ta sẽ tạo yêucầu thanh toán và gửi đến VNPAY Yêu cầu này sẽ bao gồm thông tin về
số tiền thanh toán, mô tả giao dịch, mã đơn hàng và các thông tin khác
o_ Xử lý phản hồi từ VNPAY: Sau khi nhận yêu cầu thanh toán, VNPAY
sẽ xử lý giao dịch và trả về kết quả thanh toán cho hệ thống của chúng ta
thông qua URL callback đã được cấu hình trước đó Chúng ta cần xử lý
42
Trang 35kết quả thanh toán từ VNPAY dé xác nhận trạng thái thanh toán và cập
nhật thông tin liên quan đến giao dịch
o Xác thực và bảo mật: Trong quá trình tích hợp VNPAY, can chú ý đến
van đề xác thực và bảo mật Chúng ta cần đảm bao rang các yêu cầu vàphản hồi thanh toán được mã hóa và xác thực dé đảm bảo an toàn cho
giao dịch.
Khi tích hợp cổng thanh toán VNPAY vào hệ thống quản lý khoá học trực
tuyến, chúng ta cần làm quen với một số khái niệm và API liên quan Dưới đây
là một số khái niệm và phương thức quan trọng trong quá trình tích hợp:
- Phuong thức thanh toán: VNPAY hỗ trợ các phương thức thanh toán đa
dạng như thanh toán qua thẻ ngân hàng, ví điện tử, QR Code, thẻ
Visa/MasterCard, v.v Chúng ta cần xác định và cung cấp các phương
thức thanh toán phù hợp với hệ thống của mình
- URL callback: URL callback là URL mà VNPAY sẽ gửi kết quả thanh
toán và các thông báo liên quan về giao dịch Chúng ta cần cung cấp URL
callback dé hệ thống của chúng ta có thé nhận và xử lý các thông báo từ
VNPAY.
- Ma đơn vi thanh toán (Merchant ID): Mã đơn vi thanh toán là một mã
duy nhất được cấp bởi VNPAY cho từng đối tác Nó được sử dụng dé
xác định và xác thực tải khoản của chúng ta khi tương tac với VNPAY.
- Khoa bí mật (Secret Key): Khóa bí mật là một chuỗi ký tự bí mật được
sử dung dé mã hóa và xác thực dữ liệu giao dịch giữa hệ thống của chúng
ta và VNPAY Chúng ta cần đảm bảo rằng khóa bí mật được bảo mật và
không được tiết lộ cho bat ky ai
- API của VNPAY: VNPAY cung cấp một loạt API dé tương tác với hệ
thống của họ Các API này cho phép chúng ta gửi yêu cầu thanh toán,
xác thực giao dịch, truy vẫn trạng thái thanh toán, và nhiều hoạt động
43
Trang 36khác Chúng ta cần tìm hiểu va sử dụng các API phù hợp dé tích hợp
VNPAY vào hệ thống của mình
Các khái niệm và phương thức trên là một phần trong quá trình tích hợp
công thanh toán VNPAY Dé tích hợp thành công, chúng ta cần tham khảo tài
liệu hướng dẫn của VNPAY, nắm vững các khái niệm và sử dụng các API cung
cấp dé gửi yêu cầu và nhận phản hồi từ VNPAY
Việc tích hợp công thanh toán VNPAY vào hệ thống quản lý khoá học
trực tuyến giúp người dùng có thể thanh toán các khoá học một cách tiện lợi và
an toàn Việc cung cấp các phương thức thanh toán đa dạng như VNPAY tăng
cường tính chuyên nghiệp và tạo sự tin tưởng cho người dùng trong việc sử dụng dịch vụ của chúng ta.
Các khái niệm, nguyên lý và công nghệ đã được trình bày trong chương Cơ sở
lý thuyết cung cấp nền tảng kiến thức vững chắc cho việc xây dựng hệ thống quan lýkhoá học trực tuyến Chúng bao gồm việc giới thiệu về Xây dựng hệ thống quản lý
khoa học trực tuyến, phạm vi nghiên cứu, các công nghệ sử dụng như Flutter, NestJS,
MongoDB, Firebase Storage và VNPAY Điều này định hướng cho các chương tiếptheo của khoá luận, nơi khoá luận sẽ áp dụng những kiến thức này vào việc phân tích,thiết kế và triển khai hệ thông
2.9 Search engine by Google API ; ; ;
Đây là một công nghệ mạnh mẽ được cung cap bởi Google đê tìm kiêm và truy
xuất thông tin từ Web Được phát triển bởi Google, công cụ tìm kiếm này sử dung cácthuật toán và phương pháp tiên tiến dé cung cấp kết qua tìm kiếm chính xác và phù
hợp với mong muôn của người dùng.
Tính năng xem tin tức trong khoá luận dùng Google API đề tìm kiếm và hiển thị
các tin tức liên quan đến nội dung của khoá luận Google API cung cấp khả năng tìm
kiếm thông tin từ hàng ngàn nguồn tin tức trên toàn cầu và đưa ra kết quả theo độ ưu
tiên và mức độ phù hợp.
44
Trang 37Tính năng này cho phép người dùng truy cập và đọc các tin tức mới nhất, thôngtin liên quan và bài báo chuyên sâu liên quan đến chủ đề của khoá luận Sử dụng Google
API, người dùng có thé tìm kiếm theo từ khóa, lọc kết quả theo thời gian, nguồn tin,
định dạng và nhiều tiêu chí khác đề tìm được thông tin mong muốn
Công nghệ tìm kiếm của Google API được đánh gia cao về độ chính xác, tốc độ
và khả năng tìm kiếm trong lượng lớn dữ liệu Nó cung cấp một giao diện dễ sử dụng
và linh hoạt, cho phép tích hợp và tùy chỉnh theo nhu cầu của ứng dụng và người dùng
Việc sử dụng Google API trong tính năng xem tin tức trong khoá luận giúp nâng
cao trải nghiệm người dùng, cung cấp thông tin phong phú và đáng tin cậy từ các nguồn
tin uy tín trên Internet.
45
Trang 38Chương 3 RECOMMENDATION SYSTEM CHO TÍNH NĂNG DE
XUẤT KHOA HỌC DỰA TREN COLLABORATIVE FILTERING
Recommendation System (Hệ thống dé xuất) đã trở thành một công nghệ quan
trọng trong lĩnh vực quản lý học tập trực tuyến Với sự phát triển của công nghệ và nhu
cầu người học, việc đề xuất khoá học phù hợp và cá nhân hóa đã trở thành một yếu tố
quan trọng dé tăng cường sự tương tác và cải thiện trải nghiệm học tập
Trong chương này, chúng ta sẽ tìm hiểu về Collaborative Filtering - một phươngpháp trong Recommendation System - và cách áp dụng nó vào tính năng đề xuất khoá
học trong LMS Collaborative Filtering dựa trên khả năng khai thác thông tin từ hành
vi của người dùng và tương tác giữa các người dùng đề tạo ra các đề xuất phù hợp và
cá nhân hóa.
Chương 3 cung cấp thông tin về Collaborative Filtering, từ cách xây dựng ma
trận đánh giá người dùng đến cách tính toán sự tương đồng giữa các người dùng và mặthàng Chúng ta sẽ khám phá cách thiết kế và triển khai Recommendation System, từtiền xử lý dữ liệu đến xây dựng mô hình Collaborative Filtering Ngoài ra, chúng tacũng sẽ xem xét các ưu diém, thách thức và giải pháp trong việc triển khai và quản lý
Recommendation System trong LMS.
Với chương này, hy vọng sẽ giúp người đọc hiểu rõ hơn về tam quan trọng củaRecommendation System và cách sử dụng Collaborative Filtering để cải thiện trảinghiệm học tập và đề xuất khoá hoc phù hợp trong hệ thống quản lý học tập trực tuyến
3.1 Giới thiệu về Recommendation System va Collaborative Filtering
Recommendation System va Collaborative Filtering là hai khái niệm quan trong
trong lĩnh vực hệ thống gợi ý Recommendation System là một hệ thống phan mềm
hoặc công cụ giúp dự đoán và đề xuất những mục/đối tượng mà người dùng có thé quan
tâm hoặc thích Hệ thống này có vai trò tim kiếm và lọc thông tin từ cơ sở dt liệu lớn
và đưa ra các gợi ý phù hợp, nhằm cung cấp trải nghiệm cá nhân hóa và tối ưu cho
người dùng.
Một ví du dé hiểu về Collaborative Filtering trong thực tế là hệ thống gợi ý phim
cua Netflix Netflix sử dụng phương pháp Collaborative Filtering dé đưa ra các gợi ý
46
Trang 39phim cho người dùng dựa trên sở thích và hành vi của họ cũng như của những người dùng khác.
Gia sử có hai người dung A và B trên Netflix Người dùng A đã xem và đánh giá
một số phim, trong khi người dùng B đã xem và đánh giá một tập phim khác.Collaborative Eiltering sẽ xác định sự tương đồng giữa A và B dựa trên các đánh giá và
sở thích của họ Nếu hai người dùng có sự tương đồng cao, tức là họ thường đánh giá
và yêu thích các phim tương tự, hệ thống sẽ gợi ý những phim mà người dùng B đã xem
và thích cho người dùng A.
Ví dụ, nếu người dùng A thích các bộ phim hành động và khoa học viễn tưởng,
và người dùng B cũng có sở thích tương tự, Collaborative Filtering sẽ đưa ra gợi ý các
bộ phim hành động và khoa học viễn tưởng cho người dùng A dựa trên những bộ phim
mả người dùng B đã xem và đánh giá cao.
Phương pháp Collaborative Filtering cho phép Netflix xác định mối quan hệ giữacác người dùng và các phim, từ đó đưa ra các gợi ý phù hợp Điều này giúp cải thiệntrải nghiệm người dùng, giúp họ khám phá các bộ phim mới và tìm kiếm những nội
dung phù hợp với sở thích cá nhân của mình.
3.1.1 Khái niệm về Recommendation System ¬
Trong thời đại sô hóa và dữ liệu lớn, Recommendation System (Hệ thông đê
xuất) đã trở thành một công nghệ quan trọng trong việc cung cấp gợi ý và đề xuất cá
nhân hóa cho người dùng Recommendation System giúp tăng cường trải nghiệm người
dùng, khám phá nội dung mới và tăng cường tương tác trong nhiều lĩnh vực, bao gồm
cả hệ thống quản lý học tập
3.1.2 Collaborative Filtering và vai trò trong Recommendation
System Collaborative Filtering là một trong những phương pháp quan trọng trong Recommendation System Nó dựa trên việc khai thác thông tin từ hành vi và tương tac
giữa các người dùng đề đề xuất nội dung tương tự hoặc phù hợp với sở thích của người
dùng Collaborative Filtering sử dụng thông tin từ nhóm người dùng tương tự dé đưa ra
những đê xuât cá nhân hóa.
47
Trang 403.1.3 Ưu điểm và hạn chế của Collaborative FilteringCollaborative Filtering có nhiều ưu điểm quan trọng trong việc đề xuất khoá học
trong hệ thống quản lý học tập trực tuyến Một trong số đó là khả năng xử lý dữ liệu lớn
và đưa ra những đề xuất chính xác dựa trên sự tương tác giữa người dùng Collaborative
Filtering cũng cho phép tạo ra đề xuất cá nhân hóa, giúp người dùng khám phá những
khoá học mới và phù hợp với sở thích của mình.
Tuy nhiên, Collaborative Filtering cũng có nhược điểm và hạn chế cần được xem
xét Một trong những hạn chế của Collaborative Filtering là sự phụ thuộc vào thông tin
từ người dùng khác và sự tương tác giữa các người dùng Nếu không có đủ dữ liệu hoặc
không có sự tương tác đủ lớn, Collaborative Filtering có thể gặp khó khăn trong việc
đưa ra các đê xuât chính xác và phù hợp.
3.2 Cơ sở lý thuyết về Collaborative Filtering
Cơ sở lý thuyết về Collaborative Filtering là một phần quan trọng để hiểu về
Recommendation System, giúp hiêu các cơ sở đê xác định và tận dụng sự tương đông giữa người dùng và các mục tiêu đê đưa ra các gợi ý cá nhân hóa.
Cơ sở lý thuyết về Collaborative Filtering dựa trên một giả định cơ bản rằng
người dùng có xu hướng có sự tương tự trong hành vi và sở thích với những người
dùng khác Điều này có nghĩa là nếu hai người dùng có sự tương đồng trong việc đánh
giá, mua hàng hoặc tương tác với các mục tiêu, thì có khả năng cao họ sẽ có những sở thích và quan tâm tương tự với những mục tiêu khác.
3.2.1 Đánh giá và xếp hạng trong hệ thống đánh giá người dùngTrong hệ thống đề xuất và đánh giá người dùng, việc đánh giá và xếp hạng là
một yếu tô quan trọng dé hiểu sở thích va quan điểm của người dùng Đánh giá và xếp
hạng giúp thu thập thông tin về chất lượng, sự hài lòng và tương tác của người dùng với
các khoá học trong LMS Dựa trên thông tin nay, Collaborative Filtering sẽ đưa ra
những đề xuất và gợi ý phù hợp cho người dùng
48