Lý do chọn đề tài Trong những năm gần đây, giáo dục đã có rất nhiều sự thay đôi, đặc biệt là với sự xuất hiện của các phần mềm, ứng dụng.. Khi sử dụng một phần mềm chất lượng, chúng ta s
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA MANG MAY TINH VA TRUYEN THONG
CAO TRONG NGHIA
LE HAI MINH
KHOA LUAN TOT NGHIEP
DEVELOPING AN ONLINE SAFE EXAM WEBSITE
KY SU NGANH AN TOAN THONG TIN
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
CAO TRỌNG NGHĨA - 18521138
LE HAI MINH - 18521103
KHOA LUAN TOT NGHIEP
XAY DUNG UNG DUNG THI TRUC TUYEN TIN CAY
VA AN TOAN
DEVELOPING AN ONLINE SAFE EXAM WEBSITE
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
ThS TRAN TUẦN DUNG - ThS TRAN THI DUNG
TP HO CHI MINH, 2022
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
Tigầy của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Đâu tiên, nhóm chúng em gửi lời cảm ơn đên nhà trưởng và bộ môn đã tạo điêu kiện
cho chúng em cơ hội làm việc với Khoá Luận Tôt Nghiệp, luôn tạo điêu kiện tôt nhât
đê sinh viên có thê hoàn thành tôt quá trình học tại trường nói chung và trong Khoá
Luận Tốt Nghiệp nói riêng
Tiếp theo, nhóm chúng em xin gửi lời cảm ơn chân thành tới thầy Trần Tuấn Dũng
và cô Trần Thị Dung, giảng viên trực tiếp phụ trách hướng dẫn Khoá Luận Tốt
Nghiệp Thầy và cô đã tận tình hướng dẫn, chỉ bảo với những phân tích định hướng
rõ ràng cho nhóm trong suốt quá trình thực hiện đề tài, là tiền đề để nhóm có thể hoànthành đề tài đúng hạn Thầy và cô cũng tạo điều kiện thuận lợi nhất có thê với các tàiliệu cần thiết liên quan, giải đáp thắc mắc khi nhóm gặp khó khăn
Và cuối cùng, xin cảm ơn tất cả các bạn trong nhóm đã cùng nhau chia sẻ công việc,hoàn thành tốt trách nhiệm của các nhân trong suốt quá trình thực hiện với sự hướngdẫn của thầy và phân công của nhóm trưởng, là yếu tố quan trọng nhất dé hoàn thànhtốt mục tiêu Mặc dù đã cô gắng hoàn thành đề tài với tat cả sự cố gang nhưng tatnhiên chúng em vẫn còn mắc phải những sai sót, khuyết điểm trong đề tài, mong nhậnđược sự thông cảm của Hội Đồng và những lời nhận dé giúp nhóm cải thiện Chúng
em xin chân thành cảm ơn!
XIN CHÂN THÀNH CẢM ƠN
Sinh viên Cao Trọng Nghĩa
Sinh viên Lê Hải Minh
Trang 5MỤC LỤC
Chương 1 MỞ ĐẦU - 2 ¿+ £+E9SE#EEEEE9E12E12112112171711111111E 111111111110 2
1.1 Tổng quan đề tài ¿+ k+Sx+Ex2EE2E12E217171111111211211 1111.1111111 cy 21.2 Lý do chọn đề tài ¿- 2: +22++2++2Ex222E221122112711211221127112712211 21111 1 cv 2
1.2.1 Tiết kiệm thời gian -2-©5¿ 252 E+EESEE2EE2E1EE17171121111 71211211 crxe 3
1.2.2 Tiết kiệm Chi phí -. - ¿2£ 5¿+x£+Ex+2EE£EEEEEE+SEEEEEEEEEESEEEEErrkrerkesrke 31.2.3 Chong gian 1a 0887 aa< 31.2.4 Lượng kiến thức phủ rộng ¿- ¿+ + E+EE+EE2EE+E£EEEEeEEeEkerkrrxrrerei 41.3 Muc ti@u dé 0n 433 4
Chương 2 TONG QUAN wiceccecssssssessesssessessecsscssesascsvcsvessessessecsuessessessecsuessessessecaneeseeses 5
2.1 CAC CÔNG NGHỆ SU DUNG ooeceecscscssessessssssessesssssssssessscsecsussseesecsessusssseseeses 5
2.1.1 Frontend Ai ora tats YTB Racca Lccescesesevsencenscccscccaceassaccceecsseess 5
2.1.2 Bake U h CC 6c aG 13
2.1.3 Co an So 23
2.1.4 Safe Exam Browser) á- se sex c1 111311 11T TH HT TT re 25
2.2 Các sản phẩm tương tỰ -:- 2-5 52+SE+ESEEEEEEEEEEE12112112112111171 11111 xe, 27
2.2.1 MOO o scsssesssesssessssssecssecssessssssssssecssecsusssssssecssessssssecssecsuessusesecssecssecseeeses 27
Chương 3 PHAN TÍCH THIET KE HE THNG -2- 525555: 30
3.1 PHƯƠNG PHAP TRIÊN KHAI HE THONG -. -¿-5¿©5¿£: 30
3.2 6n 060 12 äẦ 30
3.2.1 Người dùng chưa đăng nhập - - 5 6 1S niệ, 30 cm 31
Trang 64.1.2 Các công nghệ được dùng dé triển khai -2¿-25¿©5255z2zx2cseei 35
4.1.3 Triển khai Backend ¿- +: ©s¿+++EE++ExtEEEtEEESEESEErrEkerkrsrkrrrrees 36
4.1.4 Triển khai Frontend ¿2-2 + x2E£+EE+EE£EEtEEEEEEEEEEEECrErkrrkerkerreee 37
4.2 Phương pháp bảo vệ ứng ụng - c- c5 1x ng gi, 37
4.2.1 Safe Exam 00/21 37
4.2.2 MoOSCUTTEY 2G G1 HT TH HH HH 39
4.3 Thiết kế Model ccscscsesssesssesssssesssesssessesssecsuecsusssesssecsuessusssecssecssecsessseseseesseess 40
4.3.1 Các IMOdel ++Ss9St 2x SEEE19E1E21211211171711211211 1171211111111 cxye0 40
4.3.2 Mô tả các MOdel ccscccsssesssesstesssssesssecssssseessesssssssessesssecsusssesssecssecseeseessecs 41 4.4 Giao diện người đùng - - - + - 1x 19119 v11 H1 ng ng ng kg 51
4.4.1 Trang đăng KY Ăn HT TH HH HH 51
VAN co áo án 52
4.4.4 Trang thông tin tài khOảï - - c1 191 v9 ng ngư, 54
4.4.5 Trang đôi mat khâẫu - 2-2 2+S£+E£+E£EE£EEEEEEEEEEEEE21121 2121k, 55
4.4.6 Trang danh sách phòng tH1 cece cee 2E 1 vn 56
4.4.7 Trang chi tiết phòng thi ¿2c 52+2x++EEt2EEtEEEEEESEErEEkerkrsrkrrrrees 57
4.4.8 Trang làm bài tĨ1 - c1 122311321113 11 911110101 10111 HH ngư 58
Trang 74.4.9 Trang tạo tài khoản giảng viên/sinh viên (đối với role ađmin) 60
4.4.10 Trang tạo đề thi (đối với role giảng viên) - 5z: 61 4.4.11 Trang xem bai thi tự luận (dành cho giảng viÊn) «< «+ 62
4.4.12 Trang chấm điểm - - 2E E+EE+EE+E£EEEEEEEEEEEEEEEEEEEEEEEEEErkrrkrrkee 63 4.4.13 Trang hién thị sau khi nộp bài ¿2-2 + s+E++£++Ezzxezxerxerxerxee 64 4.4.14 Sửa thông tin phòng thi (dành cho giảng viÊn) -‹++-<<++<<+ 65 4.4.15 Xem bảng điểm của các sinh viên dự thi -s+ssszs+s+zszezxzzsrs 66 4.4.16 Xem thống kê bài thi ¿22c 52+2E++EEtEEECEEEEEEEEECEEErrkrsrkrrrrees 67 4.4.17 Tìm kiếm phòng thic c cccccccccccsscssssssssssesssessecssesssessecssecsessesssecsessseeasecs 68 4.4.18 Giao diện quản lý tài khoản trường (của Admin) - ‹ + 69
4.4.19 Giao diện gửi thông tin tài khoản qua Email cho giảng vién 70
4.4.20 Giao diện gửi thông tin tài khoản qua Email cho sinh viên 70
4.4.21 Kiểm tra rang buộc tài khoản có tồn tại hay không - 71
4.4.22 bùn on 0 ncừẶẶÁOnỪDỮ 71
4.4.23 Quên mật khâu ecceesccseesecsssesessseeccssnesessnseessnsecessnscessneceesnseeesaneeessnseesses 72
4.4.24 Trang quản lý tài khoản của fTƯỜng - + ss + sssseeeeesereree 74
Chương 5 THỰC NGHIÊM, KET QUA 2-2: 5£25225££E+£Et£EzEzrxerxeres 76
5.1 Phương pháp thực nghiỆm - 5c +22 3232392 EEErtrirrrrrrerrrrrerree 76
5.2 So sánh với Moodle? - 4 0 HH TH ng Hi ng 76
Chương 6 TONG KET & HƯỚNG PHAT TRIÉN -2-5c2522s+cx+zxzsz 71
6.1 TỔng KẾT - 2-22 Ss+SE E219 1EE1211211211211121121121171111211111111.11E 1111 xe 71
6.2 Hướng phát triển 2-2 2¿©©+++Ek+EE++EEESEE2EEEEEEEEEEEEE2E1 211212212 71
Trang 8DANH MỤC HÌNH
I0): 809.9000311 5 Hình 2.2 Logo 'Typ€SCTIDI - 5 111 9191k 9 HH HH ng 6
Hinh 2.3 Logo UNnOCSS oc 8 Hình 2.4 Logo VueJŠ 3 oo eee ce eee e ce ceeceeecseseeesseeseseeeseeesseeseeseeasseassenaeeeeas 9 Hinh 2.5 Logo Pinta ce 10
Hình 2.6 LOGO ÁXIOS - Q1 HH TH HH HH nh 11 Igiì):020/09 9009)-11 220157 7 13 Hình 2.8 Logo Django REST Framework - «cv HH ng re, 16
Hinh 80 9050 01 17
Hình 2.10 Cấu trúc JWWT -¿-©5¿+2++22x22EE221127112112211271121121111 21121 cre 17
Hình 2.11 Logo Python wo eee 6 <1 3 111191 901 91T TH TH 20 Hình 2.12 Logo MySQÌU - . - 5 1 1v 9 1T ng HH ngư 23 Hình 2.13 Logo Safe Exam BTOWS€T - LG 1 vn ng ng ng rrg 25
Hình 2.14 Logo MOỌ€ 2c 2221122118311 1311 113111 911 1191111 111 HH ng 27 Hinh 2.15 Logo vu 0n hố ‹44 29 Hình 3.1 Mơ hình Use-case người dùng chưa đăng nhập ‹ -«++-+ 30 Hình 3.2 Mơ hình Use-case frƯỜng + + 11v ng re 31 Hình 3.3 Mơ hình Use-case giảng VIÊNn - - c1 119 1 ng 32 Hình 3.4 Mơ hình Use-case sinh VIÊN - - 5 ng ng rờn 33
Hình 4.1 Mơ hình triỀn khai - 2-5 2 E+SE£EE£2EE2EEEEEEEEEEEEEEEEEEEEErrkrrkerkrres 35
Hình 4.2 Danh sách các rmOelL + + + E1 E3 kE9x E991 91 9 v.v vn ve 40
Hình 4.3 Model CustomUser - G6 5E 1119 930 9311 ng ng ng tr 41 Hình 4.4 Model School - - G5 10119190191 9 HH HH như 43 Hinh S1 ::24Ỡ24:: in Ầ.ồẦ ốố 44 Hình 4.6 Model 'TeaCherr - s11 9g HT ng Hi ngư 45
Hình 4.7 Model EXam - - - c0 10H HH Hư 46
Hình 4.8 Model Atfend << kh HT Thư 47
Trang 9Hinh 4.9 Model Question 000757 48
Giao diện trang đăng ký - -¿- 6 5s nHn HH HH gh g gg 51
Giao diện trang đăng nhap 5c 2c +22 sEEerirrrrrrerrrrrrrrrree 52
Gia dién trang CHU 53 Giao dién trang f0 53 Giao diện trang thông tin tài khoản eseeeeeseeeeeeeeteeeeeeneeeeeaes 54
Giao diện trang đổi mật KAU eeececcesceseesessessessessessesssesseeseeseeseesessees 55
Giao diện trang danh sách phòng tH1 -. 5+ 5£ £++*£+sceseeeees 56
Giao diện trang chi tiết phòng thi - 2 2 25£+£2+E££E+zxerxerxrrssrs 57
Giao diện trang làm bài thi trắc nghiệm 2 2 2 s2 s+£s+£sz£4 58
Giao diện trang làm bài thi tự Wan eee eeeeeneeeneceaeeeseeeeeeaeeeaeeees 58 Trang tạo tai khoản giảng viên/sinh viÊn 5 «+ £<sc<se+sessxs 60
Trang ta0 G6 thi NNU /Z vẽ nh 61
Mail thông báo sinh viên đã được thêm vào phòng thi 61
Giao diện trang xem bài thi tự luận . 5+5 **++++seesssereses 62
Giao điện trang chấm điỀm - 2 ¿©E E+SE+EE+EE+E£E£EerEerxerxrrszrs 63Giao diện trang sau khi cham điểm xong - : 2- 5¿25+z©5+ecs2 63
Giao diện trang sau khi nộp bài tH1 5 +55 <++<++s<seceseeezes 64
Giao diện trang sửa thông tin phòng tH1 - - +55 «+ ++<£++sex+s+ 65
Giao diện tiến hành sửa thông tin phòng thi 5c 55s 5s+s4 65
Giao diện phòng thi sau khi chỉnh SỬa .- 5 555 ++<*‡++*tcx+seeses 65
Giao diện dé xem bảng điểm của sinh viên -. ¿- 55552552 66Giao diện bảng điểm của sinh viên -. ¿- 5: ©2+©s+2cxt2zxcrxesres 66Giao diện xem điểm của giảng viên -2¿- 5c 2++2x++cxzzxerresree 66
Giao diện dé xem thống kê bài thi 2- 22 2 sE+£E2E+£erxrsez 67
Giao điện thống kê - -2- 2-56 SE2SE2ESE£EEEEEEEEEEEEEE2E1217121 2121 xe, 67Giao diện tim kiếm phòng thi 2-2 2 2 +2 £+E££EezEe£xerxerszrs 68
Trang 10Hình 4.38 Giao diện sau khi tìm kiếm xong -2 2¿+¿©++2+++cx++zxzxesrss 68
Hình 4.39 Giao diện trang quản lý tài khoản trường - -. -«<<<c+s++ 69
Hình 4.40 Giao diện thay đổi thông tin trường -. ¿- s¿©+2+++zx+zxerxeerxz 69
Hình 4.41 Giao diện thông tin tài khoản của giảng viên được gửi qua Email 70 Hình 4.42 Giao diện thông tin tài khoản của sinh viên được gửi qua Email 70
Hình 4.43 Giảng viên upload 1 file sinh viên không có trong hệ thống 71Hình 4.44 Hệ thống báo lỗi mail sinh viên không tổn tại .: -:-5- 71Hinh 4.45.Giao dién khi quén mat KDA vee eeceeccesececseceesessesessecessucerseseesessesasseseneeeeees 72
Hình 4.46 Giao diện nhập mail để gửi link reset mật khâu - - 72
Hình 4.47 Mail chứa link reset lại mật khâu -. -¿ cccccccccxeerrrrrrkrrrrrrrkee 73
Hình 4.48 Giao diện reset mật khâu -¿- - - s+k+k+EEE+EvEEEESESEEEEEkeEerkrkerrrererree 73
Hình 4.49 Giao diện trang quản lý sinh viên của tTường - - «<< s+<<ss+ 74 Hình 4.50 Trang quản lý tài khoản giảng viên của trường - -«<-«+ 74 Hình 4.51 Trang chỉnh sửa thông tin - 5 5 1kg ng rưkt 74
Hình 4.52 Mail nhận được sau khi sửa thông tin (không thay đổi mật khẩu) 75Hình 4.53 Mail nhận được sau khi sửa thong tin (có thay đổi mật khâu) 75
Trang 11DANH MỤC BANG
Bảng 4.1 Bảng mô tả dữ liệu CustormS€T - G2 S11 *Ekseeerrereresre 42 Bang 4.2 Bảng mô tả dit liệu SChOOIL - 5 5E 621119311911 91 13 1 91 1v re 43 Bang 4.3 Bảng mô tả dữ liệu Student - 5 5 + ngàng ưệt 44 Bảng 4.4 Bảng mô tả dữ liệu 'TeaCeT G5 1 1193119111911 1 91 1 ng rưy 45
Bang 4.5 Bảng mô tả dữ liệu EXxaim - - 5 5 2+ 3 HH HH ng ưkp 46
Bảng 4.6 Bảng mô tả dữ liệu Atfend - - c1 ng ng ng rg 47 Bảng 4.7 Bảng mô tả dữ liệu QQuestIOII - G1 32311193 1 ng re 48 Bang 4.8 Bảng mô tả dữ liệu StudentAnSWT eseesecsecsecseceeeeeseseeseeseens 49 Bang 4.9 Bảng mô tả dữ liệu StudentESSay sành Hit 50
Trang 12DANH MỤC TỪ VIET TAT
SEB Safe Exam Browser
AWS Amazon Web Service
EC2 Elastic Compute Cloud
S3 Simple Storage Service
OAuth Open Authorization
HTML Hypertext Markup Language
CSS Cascading Style Sheets
ERD Entity Relationship Diagram
URL Uniform Resource Locator
LMS Learning Management System
Trang 13TÓM TẮT KHÓA LUẬN
Theo Uỷ ban Văn hoá, Giáo dục của Quốc hội, từ đầu năm 2020, dịch COVID-19 đã
có nhiều tác động tiêu cực đến ngành giáo dục Trẻ em mầm non, học sinh, sinh viên
đã phải tạm dừng đến trường trong nhiều tháng liên tiếp Nhiều giáo viên, trẻ em, họcsinh bị nhiễm COVID-19 Nhiều nhiệm vụ quan trọng của ngành không thể tiến hànhtheo đúng kế hoạch, ví dụ như tình hình học tập không được liên tục dẫn đến bị hỏngkiến thức, học sinh không được đến trường, giảng viên đối mặt với nguy cơ thất
nghiệp.
Đặc biệt là công tác tổ chức thi cử cho học sinh, sinh viên gặp rất nhiều khó khan vìkhông thể tập trung đông người Vì vậy nhóm chúng em giới thiệu một giải pháp mớicho van đề thi cử, có thé thi moi lúc mọi nơi, tiết kiệm chi phí tô chức va chi phi đilại Đó là giải pháp trang web thi trực tuyến an toàn
Trong thời đại công nghệ 4.0, mọi hoạt động ngày nay hầu hết đều được lưu trữ, triển
khai trên máy móc, việc học tập và thi cử cũng không là ngoại lệ Những học sinh,
sinh viên sau khi đi qua mùa dịch COVID-19 cũng đều đã quá quen với việc ngồi nhà
và học tập, thi cử thông qua thiết bị di động của mình Và có lẽ khi tình hình dịch
bệnh không còn căng thăng như trước, thói quen này vẫn sẽ in vào tiềm thức của họcsinh, sinh viên Vì thé dé áp dung mô hình này vào thực tiễn cũng không phải là một
vân đê quá khó khăn.
Trang 14Chương 1 MỞ DAU
1.1 Téng quan đề tài
Trong quá trình đào tạo, đánh giá kết quả học tập bằng các kỳ thi, kiểm tra là côngviệc phải tiến hành thường xuyên, không kém phần nặng nhọc cho người quản lý vàkhó đảm bảo độ chính xác tính công bằng khách quan đối với người học Do đó việccải tiễn hệ thống thi, kiểm tra đã và đang được nhiều người quan tâm Vì vậy dé đápứng những thay đổi trên trong môi trường giáo dục cần phải tô chức hệ thống dao tạođiện tử, trong đó hệ thống thi trắc nghiệm là một phần quan trọng
Thi trắc nghiệm là hình thức thi đang được ưa chuộng và sử dụng rộng rãi ở nhiềunơi trên thé giới bởi:
e Đánh giá chính xác trình độ của sinh viên, chất lượng đào tạo
e Lượng kiến thức kiểm tra lớn, bao quát nhiều van đề
e Hình thức kiểm tra phong phú
e Chấm điểm, đưa ra kết quả nhanh và chính xác
Ở Việt Nam, nhiều trường học đã áp dụng hình thức thi trắc nghiệm và kết quả thudoc rất khả quan Như vậy thi trắc nghiệm dang dan trở nên phổ biến và cần thiết,
do đó yêu cầu có một phần mềm tin cậy, chất loiợng, có nhiều tính năng hỗ trợ tốthình thức thi này cũng đã được nhiều tô chức đặt ra
1.2 Lý do chọn đề tài
Trong những năm gần đây, giáo dục đã có rất nhiều sự thay đôi, đặc biệt là với sự
xuất hiện của các phần mềm, ứng dụng Bên cạnh việc học, giảng dạy trực tuyến, sửdung các phần mềm thi online cũng ngày càng trở nên phổ biến hơn, nhất là trongthời điểm khó khăn do dịch bệnh như hiện nay Sử dụng phần mềm thi online có rất
nhiêu lợi ích.
Trang 151.2.1 Tiết kiệm thời gian
Một trong những lý do quan trọng nhất khiến cho những phần mềm thi online ngàycàng được quan tâm, ưa chuộng lời bởi sự tiết kiệm về mặt thời gian Tắt nhiên, trongmọi công việc thì tiết kiệm thời gian sẽ đồng nghĩa với việc tiết kiệm chỉ phí, công
Trong công tác tô chức thi cử, việc tiết kiệm chi phí luôn được hướng tới như một
tiêu chí khá quan trọng Vì thé, các phần mềm thi trực tuyến đã xuất hiện khá phổbiến bởi các tính năng của nó giúp chúng ta hạn chế được rất nhiều khoản ngân sáchkhông cần thiết
Khi sử dụng một phần mềm chất lượng, chúng ta sẽ không còn bận tâm tới các khâu
tổ chức truyền thông như: nghiên cứu, thâm định dé thi, coi thi, công tác cham điềm Tat nhiên, với các tính năng đó, chúng ta sẽ tiết kiệm được khoản chi phí khá đángkể
1.2.3 Chống gian lận
Việc gian lận trong thi cử chắc han là một câu chuyện muôn thuở Vì vậy, mỗi khi tổ
chức các cuộc thi, bài thi thì mọi người déu rat quan tâm tới van dé nay đê có thê đảm
bảo sự công bằng cho các thí sinh
Khi sử dụng các phần mềm thi trực tuyến, van đề gian lận thi cử sẽ không thé xảy ra
Các phần mềm thi online luôn sở hữu một số lượng đề thi cực kỳ đa dạng Chính vì
thế, với việc phân chia mỗi người một đề thi, chắc chắn tình trạng quay cop, gian lận
là điều không thé xảy ra
Trang 161.2.4 Lượng kiến thức phủ rộng
Một trong những ưu điểm lớn nhất của việc tô chức thi trực tuyến thông qua những
phần mềm đó là lượng kiến thức phủ rộng, đa dạng Điều này sẽ giúp chúng ta cảithiện tốt hơn nữa chất lượng giáo dục
Các câu hỏi trong bài thi sẽ được sưu tập, thiết kế một cách phong phú, đi kèm vớinhững hình ảnh chân thực, sống động Việc này tránh được tình trạng học tủ, ôn tủđôi với học sinh, sinh viên.
1.3 Mục tiêu đê tài
Hiện nay đã có một số phần mềm thi trắc nghiệm (của nước ngoài cũng như của các
tô chức trong nước) được đưa vào sử dụng nhưng cũng có một số hạn chế, chưa đáp
ứng được nhu cầu thi trắc nghiệm ở Việt Nam Đối với phần mềm của nước ngoài thìhạn chế về mặt ngôn ngữ do không phải là Tiếng Việt, giá thành lại cao, mà vấn đề
bảo trì, đào tạo không thuận lợi Còn đối với phần mềm ở trong nước thì chất lượng
bài trắc nghiệm không cao do ngân hàng câu hỏi và quá trình sinh đề không được xâydựng tốt, chưa theo quy trình thi Còn rất nhiều điều phải làm dé phần mềm thi trắcnghiệm trở nên hoàn thiện và áp dụng tốt ở Việt Nam
Xuất phát từ thực tế đó, cùng với sự góp ý và hướng dẫn của Thầy Trần Tuấn Dũng
và Cô Trần Thị Dung, nhóm em đã xây dựng lên hệ thống thi trắc nghiệm qua mạngvới hy vọng có thể trở thành 1 nền tảng thi online do người Việt, cho người Việt Dotrình độ kiến thức còn hạn chế, nên chương trình không tránh khỏi những thiếu sót
Em hy vọng được sự giúp đỡ của thầy và các bạn để hệ thống thi trắc nghiệm được
hoàn thiện dân.
Trang 17Chương 2 TONG QUAN
2.1 CAC CONG NGHE SU DUNG
2.1.1 Frontend
2.1.1.1 NuxtJS 31
Hình 2.1 Logo NuxtJS
NuxtJS là một Javascript framework dé tạo các ứng dụng VueJS Mục tiêu là dé chúng
ta có thé tạo một ứng dụng linh hoạt nhưng được render phía máy chủ, tương tự một
trang web tĩnh giống như các website thông thường (điều mà có lợi cho SEO)
NuxtJS tập trung vào khía cạnh render giao diện người dùng Ngoài ra, NuxtJS có ratnhiều tinh năng giúp chúng ta phát triển giữa phía client và server như Dữ liệu batđồng bộ (Asynchronous Data), Middleware, Layouts, v.v
NuxtJS có rất nhiều tính năng hữu ích, giúp nhanh chóng xây dựng các ứng dung
web, có thé kề tới như
e Automatic Code Splitting
e Hỗ trợ Vue hoàn hảo
Trang 18e Tu động tách code
e Phục vụ file tĩnh
e_ Dịch chuyển ES6, ES7
e Đóng gói và thu nhỏ Javascript và CSS
e_ Quản lý phan tử <head>
e Trình tiền xử lý SASS, LESS, Stylus,
e H6 trợ phiên ban HTTP/2
e Hệ thống router và dữ liệu bat đồng bộ dé sử dung
e HO trợ tính năng Hot reloading (rất hữu ích cho các developer)
server-side (NodeJS).
Trang 19TypeScript sử dụng tat ca các tính năng của của ECMAScript 2015 (ES6) như classes,
modules Không dừng lại ở đó nếu như ECMAScript 2017 ra đời thì chắc răng
TypeScript cũng sẽ nâng cấp phiên bản của mình lên để sử dụng mọi kỹ thuật mới
Hỗ trợ các tính năng của Javascript phiên bản mới nhất: TypeScript luôn
đảm bảo việc sử dụng đầy đủ các kỹ thuật mới nhất của Javascript, ví dụ
như version hiện tại là ECMAScript 2015 (ES6).
La mã nguồn mở: TypeScript là một mã nguồn mở nên chúng ta hoàn toàn
có thé sử dụng mà không mất phí, bên cạnh đó còn được cộng đồng hỗ trợ.
TypeScript là Javscript: Bản chất của TypeScript là biên dịch tao ra các
đoạn mã javascript nên chúng ta có thê chạy bat kì ở đâu miễn ở đó có hỗ
trợ biên dịch Javascript Ngoài ra chúng ta có thể sử dụng trộn lẫn cú phápcủa Javascript vào bên trong TypeScript, điều này giúp các lập trình viêntiếp cận TypeScript dễ dàng hơn
Trang 202.1.1.3 UnoCSSHH
Hình 2.3 Logo unocss
UnoCSS là một công cu Atomic CSS hoàn toàn có thé tùy chỉnh được lay cảm
hứng từ Windi CSS, Tailwind CSS và Twind UnoCSS không phải là một framework
CSS, nhưng nó là một công cụ sử dụng dé tạo ra framework Nó cung cap một tậphợp cao cấp chung của các framework CSS phô biến đầu tiên dành cho sự tiện ích
như Tailwind CSS, Windi CSS và Bootstrap.
Các tính năng của UnoCSS:
e Hoàn toàn tuỳ biến
e Nhanh hon 200 so với WindiCSS và Tailwind JIT.
e Gon, nhẹ, phù hợp với moi trình duyệt
¢ Hỗ trợ icon thông qua CSS thuần Mỗi icon là 1 class CSS
e Hỗ tro CSS Directives
e Tổng hợp các class lại thành 1 khi build
e Và các tinh năng hap dẫn khác
Trang 212.1.1.4 VueJS 3!
Hinh 2.4 Logo VueJS 3
Vue là một framework Javascript tiên tiễn trong xây dựng giao diện người
dùng, không giống như các framework khác, Vue được xây dựng từ những dòng code
cơ bản nhất nhằm tối ưu tốc độ Thư viện của Vue chỉ tập trung vào lớp hién thị, ratđơn giản dé tiếp cận và dễ dàng tích hợp vào các hệ thống khác Vue cũng có khanăng cung cấp các ứng dụng web đơn trang Single Page Application (SPA) cho phép
két hợp với nhiêu các công cụ hiện đại, như Laravel chăng han.
Vue.js được sử dụng để xây dựng giao diện người dùng giống như React (sử
dụng bởi Facebook), Angular (được hậu thuẫn bởi Google), Ember Tuy nhiên,
Vue.js có tốc độ tạo trang (render) rất nhanh và chiếm khá ít bộ nhớ
Trang 222.1.1.5 Pinia"!
P Ini
Hinh 2.5 Logo Pinia
Như chúng ta đã biết mỗi ứng dụng VueJS đều được hình thành bởi rat nhiều
các component khác nhau, các component này liên kết với nhau tạo thành từng page
trong ứng dụng của ta.
Thông thường chúng ta sẽ có rất nhiều các dữ liệu/ state cần được chia sẻ/dùng chung giữa các component với nhau đơn giản nhất chúng ta có thé hình dung ởđây đó là thông tin về người dùng đang đăng nhập trên trang của chúng ta Thông tinnày luôn luôn cần được lưu trữ trên ứng dụng của chúng ta và có thể được truy cập/
sử dụng bởi bât cứ component nào cân đên nó.
Tương tự với Vuex thì Pinia cũng là một thư viện phục vụ cho việc lưu trữ và
chia sẻ state giữa các component ở các vi trí khác nhau trong ứng dụng của chúng ta
một cách đơn giản nhất Với các ưu điểm được giới thiệu ngay trên trang chủ của
Trang 23e Được hỗ trợ luôn cả bởi Vue Devtoool
e Siêu nhẹ, chỉ khoảng 1kb
2.1.1.6 Axioslil
cho việc xây dựng các ứng dụng API.
Axios có thé được sử dụng ở ca browser hoặc Node.Js
Axios có thể hoạt động trong hau hết tat các trình duyệt web hiện đại
Tại sao chọn Axios?
Các browser hiện đại bây giờ thường có sẵn các tính năng Fetch API, vậy tạo
sao ta lại không dùng nó luôn cho xong? Rất nhiều những sự khác biệt giữa Axios vàFetch khiến rất nhiều người vẫn lựa chọn Axios thay vì Fetch
Một trong những đặc điểm lớn ta có thể thấy đó là cách mà 2 thư viện xử lý
với các HTTP error code Khi sử dụng Fetch, nếu khi server trả về các mã lỗi 4xx hay
5xx, thì hàm catch() của chúng ta sẽ không được gọi đến và người lập trình viên sẽ
có nhiệm vụ phải tự kiểm tra trạng thái của mã trả về dé xác định xem liệu request đó
có thành công hay không Trong khi đó, Axios sẽ reject tat cả các promise của request
nêu một trong các mã lỗi trên được trả vê.
lãi
Trang 24Axios hỗ trợ đầy đủ các request như get, post, put, delete,
GET là phương pháp lấy dữ liệu từ server bằng phương thức HTTP GET,
thường nhận vào một tham số là url (API link)
POST là phương pháp đưa đữ liệu lên server băng phương thức HTTP POST,
thường được dùng đề thêm mới dữ liệu vào server POST thường nhận vào 2 tham số
đó là url (API Link) và data (Kiểu dit liệu Object).
PUT là phương pháp đưa dit liệu lên server bang phương thức HTTP PUT,
PUT thường được dùng dé thay đổi dữ liệu trên server PUT thường nhận vào 2 tham
số đó là url (API Link) và data (Kiểu dit liệu Object)
DELETE là phương pháp xóa dit liệu trên server bằng phương thức HTTP
DELETE Delete thường nhận vào 1 tham số đó là url (API Link).
12
Trang 252.1.2 Backend
Hình 2.7 Logo Django
Django là một trong số những web framework bậc cao miễn phí, là mã nguồn
mở được tạo ra bởi ngôn ngữ Python dựa trên mô hình mô hình MTV (gồm Template-Views) Hiện framework này được phát triển, quản lý bởi Django SoftwareFoundation.Django ra đời với mục tiêu hỗ trợ thiết kế các website phức tạp dựa trên
Model-những cơ sở dữ liệu có sẵn Nó hoạt động dựa theo nguyên ly ‘cam’ các thành phan
và và tái sử dụng để tạo nên các website với ít code, ít khớp nối, có khả năng pháttriển và không bị trùng lặp
Ưu điểm của Django
Lợi thé hàng đầu của Django là khả năng thiết kế, tạo lập website và các ứngdụng nhanh chóng đến bất ngờ Ngoài ra, dưới đây liệt kê những điểm cộng khiếnframework này trở nên nôi bật và được lập trình viên sử dụng rộng rãi.
e Bảo mật tot: Làm việc với Django, các lập trình viên gân như không có
không gian đê phạm bât cứ sai lâm về an ninh nào Nó giúp các lập trình
13
Trang 26viên tránh được tat cả các lỗi thường gặp như XXS, SQL injection, Nhờ
đó, sản phẩm được tạo bởi framework này có khả năng bảo mật cực tot
Mở rộng thỏa thích: Django có sẵn tinh năng mở rộng nhằm hỗ trợ các lập
trình viên quản lý lưu lượng người truy cập, thích hợp với các trang có traffic lớn.
Dễ sử dụng: Django được tạo ra bởi ngôn ngữ lập trình Python và mô hình MVC nên rất dé ứng dụng trong các dự án Da ngôn ngữ va được hỗ trợ
Multi-Site
Dễ học: Có nhiều tài liệu hỗ trợ việc học Django, bao gồm cả tài liệu miễn
phí trên mạng và sách in Cộng đồng sử dung Django hiện nay dang pháttriển mạnh mẽ, newbie có thé tìm kiếm sự giúp đỡ trên các trang facebook,
diễn đàn, blog,
Nhược điểm của Django
Bên cạnh những ưu điêm kê trên, Django cũng tôn tại một sô nhược điêm machúng ta cần cân nhắc trước khi sử dụng chúng Cụ thể sau đây:
Có thể xảy ra một vai van dé khi phát trién các ứng dụng/website quy mô
nhỏ
Định tuyến tương đối khó
Không đưa ra các cảnh báo khi xuât hiện 161.
Vì sao nên sử dụng Django trong lập trình web?
Đây là câu hỏi của khá nhiêu người mới bat dau tìm hiệu Django Có nhiêu nguyên nhân khiên framework này được ưu ái Có thê kê đên vài lợi ích sau:
Nhanh chóng, đơn giản trong lập trình web/ứng dụng
Đa dạng về tài liệu
Sử dụng nguyên tắc DRY - không trùng lặp
Hỗ trợ ORM, mang lại sự tương thích, khả năng hoạt động với các cơ sở
dữ liệu thường gặp như Oracle và SQL
14
Trang 27e Sở hữu nhiều tính năng, giải pháp độc đáo, hữu ích như GPS, chatbot, ứng
dụng cơ sở dữ liệu, nguồn cung cấp dữ liệu RSS, giúp phát triển, quản trị
website, chăm sóc khách hàng
e© Mang lại khả năng sửa đổi (thêm, xóa) một cách liền mạch nhiều thành
phần
e Thân thiện với SEO
e_ Linh hoạt cao: Xây dựng nhiều dang website, ứng dụng cần thiết cho mọi
lĩnh vực, tổ chức, cơ quan
Các nền tang nỗi bật sử dung Django
Framework này được ứng dụng để tạo lập, phát triển và hỗ trợ rất nhiều nền
tảng lớn như Instagram, Spotify, YouTube, Dropbox, trình duyệt Mozilla, Disqus,
Trong những nền tảng trên, Django giữ những vai trò khác nhau, khi thì hỗ trợ
quản lý và xử lý dữ liệu, khi thì lưu trữ thông tin hoặc cũng có lúc hỗ trợ triển khai
các thành phần mới, Với các nền tang lớn, nhiều người truy cập thì nó là framework
lý tưởng dé tăng hiệu suất làm việc
Những “ông lon’ trong thế giới số đều đã nắm bắt cơ hội dé sử dung ứng dụngDjango Bởi một website lớn được thiết kế dudi sự hỗ trợ của framework này sẽ mang
lại hiệu suât hoạt động vô cùng mạnh mẽ.
15
Trang 28Hinh 2.8 Logo Django REST Framework
REST là viết tắt của REpresentational State Transfer ( nôn na là chuyên trạngthái đại diện) là một kiêu kiến trúc lập trình, nó định nghĩa các quy tắc dé thiết kếtcác web service chú trọng vào tài nguyên hệ thống Trong kiến trúc REST mọi thứ
đều được coi là tài nguyên, chúng có thê là: tệp văn ban, anh, trang html, video, hoặc
dữ liệu động REST server cung cấp quyền truy cập vào các tài nguyên, REST clienttruy cập và thay đổi các tài nguyên đó Ở đây các tài nguyên được định danh dựa vàoURI, REST sử dụng một vai đại diện để biểu diễn các tài nguyên như văn bản, JSON,
XML.
Django REST framework là một công cụ hỗ trợ đắc lực trong việc xây dựngWebAPI Một số lý do khi ta nên sử dụng REST:
e Có hỗ trợ dữ liệu ORM và non-ORM với Serialization.
e Tài liệu phong phú, cộng đồng hỗ trợ lớn
e Được sử dụng trong các công ty quốc tế như Mozilla, Red Hat, Heroku
16
Trang 292.1.2.3 JWT (JSON Web Token)"”!
Header Payload Signature
base64enc[[ base64enc({ HMACSHA256(
"alg": "HS256”, "iss": "toptal.com", base64enc(header)
"typ": "IWT" “exp”: 1426420800, +h+,
) “company”: “Toptal", base64enc(payload)
“awesome”: true „secretKey)
)
®@ @
Hình 2.10 Cấu trúc JWTCấu trúc của JSON Web Token:
17
Trang 30JSON Web Token bao gồm 3 phần, được ngăn cách nhau bởi dấu chấm (.):
hàng đầu Đề tránh việc bị hack thông tin từ những người ân danh, hacker hay thậm
chí là đối thủ cạnh tranh thì người dùng yêu cầu rat cao ở tính bảo mật Có thé thay
khi người dùng thực hiện đăng nhập vào hệ thống cần những yêu cầu tiếp theo phải
chứa thêm ma JWT Không chỉ vậy, việc này sẽ giúp cho họ thuận tiện trong việc
click vào những server, resource và url một cách khá là đễ dàng bởi họ chỉ cần sửdụng duy nhất một JWT là đã hoàn thành xác nhận được quyền truy cập một cách
nhanh chóng, đạt hiệu quả.
Giả sử trong trường hợp JWT của ban bị đánh cắp thì lúc này kẻ đánh cắp van
có thê hoàn toàn sử dung JWT của bạn Vì dé tránh những tình huống đó xảy ra JWT
luôn luôn có thời hạn sử dụng ở khoảng thời gian ngắn Sau khi thời gian hết hiệu lựcthì mã JWT sẽ không còn giá trị sử dụng Tuy nhiên bạn vẫn phải sử dụng cân thậnbảo mật mã JWT của mình một cách an toàn và tránh cho người khác biết đến mã đó
của bạn.
Điểm đặc biệt khác của JWT là nhờ có tính năng mới Single Sign On, hayđược hiểu là tính năng có thể đăng nhập một lần của JWT được dùng rất hiệu quả vàphô biến, bởi chi phí đưa ra không quá cao và nó cũng có thé sử dụng được rất nhiềulần, trên những phạm vi khác nhau
Truyén đạt, trao đồi thông tin
18
Trang 31Lý do thứ hai mà được nhiều người ưa dùng đó chính là việc truyền đạt trao
đôi thông tin nhờ vào JWT với độ an toàn cao bởi các thành viên có thể trao đôi, nhận
dạng nhau dễ dàng hơn dựa vào phần chữ ký của nó Nhờ có tính năng chữ ký này
mà người sử dụng có thể nhận biết được người đã gửi thông tin là ai, từ đó có thể đảm
bảo tuyệt đôi chính xác va an tâm trong việc nhận biệt người gia mao.
Ngoài ra thì JWT còn mang đến cho người dùng rất nhiều lợi ích và chắc rằngbạn sẽ bị ấn tượng và muốn sử dụng dé làm công cụ hỗ trợ ngày cho công việc củamình đấy
Sử dụng an toàn, bảo mật cao hơn nhờ vào thuật toán mã hóa HMAC, dễ dàng
chia sẻ.
Phổ biến bởi bộ phận phân tích cú pháp JSON không hề xa lạ trong các ngônngữ lập trình khi chúng tạo ra một bản đồ trực tiếp hướng đến các đối tượng khác
nhau.
Nhỏ gọn hơn nhiều XML khác, chúng được mã hóa một cách rất thông minh
và được đánh giá là sự lựa chọn hoàn hảo trong môi trường làm việc
Xử lý nhanh gọn, dễ dàng trong các nền tảng internet, đo đó người dùng cóthể kết nối bat cứ trên thiết bị nào, kế cả là các thiết bị di động cá nhân
19
Trang 32Hình 2.11 Logo Python
Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo rabởi Guido van Rossum Nó dé dang dé tìm hiểu và đang nổi lên như một trong nhữngngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lậptrình Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động
Python có cau trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệuquả đối với lập trình hướng đối tượng
Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiéu và
cách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng dé viết
script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng
Tính nắng của Python
Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ ràng
Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lập trình khác như
C++, Java, C# Python làm cho việc lập trình trở nên thú vi, cho phép chúng ta tập trung vào những giải pháp chứ không phải cú pháp.
20
Trang 33Miễn phí, mã nguồn mở: Chúng ta có thể tự do sử dụng và phân phối Python,thậm chí là đùng nó cho mục đích thương mại Vì là mã nguồn mở, chúng ta không
những có thể sử dụng các phần mềm, chương trình được viết trong Python mà còn có
thé thay đổi mã nguồn của nó Python có một cộng đồng rộng lớn, không ngừng cải
thiện nó mỗi lân cập nhật.
Khả năng di chuyên: Các chương trình Python có thể di chuyển từ nền tảngnày sang nền tảng khác và chạy nó mà không có bat kỳ thay đổi nào Nó chạy liền
mạch trên hâu hêt tât cả các nên tảng như Windows, macOS, Linux.
Khả năng mở rộng và có thể nhúng: Giả sử một ứng dụng đòi hỏi sự phức tạprất lớn, chúng ta có thé dé dàng kết hợp các phần code bằng C, C++ và những ngônngữ khác (có thê gọi được từ C) vào code Python Điều này sẽ cung cấp cho ứng dụngcủa ta những tính năng tốt hơn cũng như khả năng scripting mà những ngôn ngữ lậptrình khác khó có thé làm được
Ngôn ngữ thông dịch cấp cao: Không giống như C/C++, với Python, chúng takhông phải lo lắng những nhiệm vụ khó khăn như quản lý bộ nhớ, don dep những dữliệu vô nghĩa, Khi chạy code Python, nó sẽ tự động chuyền đổi code sang ngôn ngữmáy tính có thé hiểu Ta không cần lo lắng về bat kỳ hoạt động ở cấp thấp nào
Thư viện tiêu chuẩn lớn dé giải quyết những tác vụ phổ biến: Python có một
số lượng lớn thư viện tiêu chuẩn giúp cho công việc lập trình của chúng ta trở nên dễthở hơn rất nhiều, đơn giản vì không phải tự viết tất cả code Ví dụ: chúng ta cần kết
nối cơ sở dữ liệu MySQL trên Web server? Ta có thé nhập thư viện MySQLdb va sử
dụng nó Những thư viện nay được kiêm tra kỹ lưỡng và được sử dụng bởi hàng trămngười Vì vậy, chúng ta có thé chắc chắn rằng nó sẽ không làm hỏng code hay ứng
dụng của mình.
Hướng đối tượng: Mọi thứ trong Python đều là hướng đối tượng Lập trình
hướng đối tượng (OOP) giúp giải quyết những van đề phức tạp một cách trực quan.Với OOP, chúng ta có thể phân chia những vấn đề phức tạp thành những tập nhỏ hơn
bang cách tạo ra các đối tượng
21
Trang 34Python được dùng ở đâu?
Lập trình ứng dụng web: chúng ta có thể tạo web app có khả năng mở rộng
(scalable) được băng cách sử dụng framework và CMS (Hệ thong quản tri nội dung)
được tích hợp trong Python Vai nền tang phô biến dé tạo web app là: Django, Flask,
Pyramid, Plone, Django CMS Các trang như Mozilla, Reddit, Instagram và PBS đềuđược viết bang Python
Khoa học và tính toán: Có nhiều thư viện trong Python cho khoa học và tínhtoán số liệu, như SciPy và NumPy, được sử dụng cho những mục dich chung chungtrong tính toán Và, có những thư viện cụ thê như: EarthPy cho khoa học trái đất,AstroPy cho Thiên văn học, Ngoài ra, Python còn được sử dụng nhiều trong
machine learning, khai thác dữ liệu và deep learning.
Tạo nguyên mẫu phần mềm: Python chậm hơn khi so sánh với các ngôn ngữ
được biên dịch như C++ và Java Nó có thé không phải là lựa chọn tốt nếu nguồn lực
bị giới hạn và yêu cầu về hiệu quả là bắt buộc Tuy nhiên, Python là ngôn ngữ tuyệt
vời dé tạo những nguyên mẫu (bản chạy thử - prototype) Ví dụ, chúng ta có thé sửdụng Pygame (thư viện viết game) để tạo nguyên mẫu game trước Nếu thích nguyênmẫu đó có thé dùng C++ dé viết game thực sự
Ngôn ngữ tốt dé day lập trình: Python được nhiều công ty, trường học sử dụng
dé dạy lập trình cho trẻ em và những người mới lần đầu hoc lập trình Bên cạnh những
tính năng và khả năng tuyệt vời thì cú pháp đơn giản và dễ sử dụng của nó là lý do
chính cho việc này.
22
Trang 352.1.3 Cơ sở dữ liệu
2.1.3.1 MySQL”!
MySQL.
Hinh 2.12 Logo MySQL
MySQL là một hệ thong quản trị co sở dữ liệu ma nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server RDBMS là một phần mềm hay dịch vụ dùng dé tạo và quản lý các cơ sở dữliệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng
MySQL là một trong số các phan mềm RDBMS RDBMS va MySQL thường
được cho là một vì độ phô biến quá lớn của MySQL Các ứng dụng web lớn nhất như
Facebook, Twitter, YouTube, Google, đều dùng MySQL cho mục đích lưu trữ dữliệu Ké cả khi ban đầu nó chỉ được dùng rat hạn chế nhưng giờ nó đã tương thích vớinhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows, và
Ubuntu.
MySQL không phải là hệ quản lý cơ sở dữ liệu (RDBMS) duy nhất trên thịtrường, nhưng nó đích thực phô biến nhất và chỉ xếp sau Oracle Database khi xét đếnnhững thông số chính như số lượng tìm kiếm, profile người dùng trên LinkedIn, và
23
Trang 36lượng thảo luận trên các diễn đàn internet Lý do chính vì sao rất nhiều ông lớn công
nghệ phụ thuộc vào MySQL là gì? Các lý do quan trọng như sau:
Linh hoạt và dễ dùng
Chúng ta có thé sửa source code dé đáp ứng nhu cầu của minh mà không phảithanh toán thêm bat kỳ chi phi nào Quá trình cài đặt cũng rat đơn giản và thường
không quá 30 phút.
Hiệu năng cao
Nhiều server clusters sử dụng MySQL Bat ké chúng ta lưu trữ dữ liệu lớn của
các trang thương mại điện tử hoặc những hoạt động kinh doanh nặng nề liên quan
đến công nghệ thông tin, MySQL cũng có thể đáp ứng được với tốc độ cao, mượt mà.Nhược điểm của MySQL:
Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm với
các hạn chê vê chức năng mà một vào ứng dụng có thê can.
Độ tin cậy: Cách các chức năng cụ thê được xử lý với MySQL (ví dụ tài liệu
tham khảo, các giao dịch, kiểm toán, ) làm cho nó kém tin cậy hơn so với một số
hệ quản trị cơ sở dữ liệu quan hệ khác.
Dung lượng hạn chế: Nếu số bản ghi của chúng ta lớn dần lên thì việc truy
xuất dữ liệu của mình là khá khó khăn, khi đó chúng ta sẽ phải áp dụng nhiều biệnpháp dé tăng tốc độ truy xuất dữ liệu như là chia tải database này ra nhiều server,
hoặc tao cache MySQL
Tiéu chuan trong nganh
Ngành công nghệ va dữ liệu đã sử dung MySQL nhiều năm, vì vay nó là một
kỹ năng căn bản một chuyên gia lập trình Người dùng MySQL cũng có thé triển khai
dự án nhanh và thuê các chuyên gia dữ liệu với mức phí nêu họ cân.
An toàn
24
Trang 37An toàn dữ liệu luôn là vấn dé quan trọng nhất khi chọn phần mềm RDBMS.
Với hệ thống phân quyên truy cập và quan lý tài khoản, MySQL đặt tiêu chuẩn bao
mật rất cao Mã hóa thông tin đăng nhập và chứng thực từ host đều khả dụng
2.1.4 Safe Exam Browser"®!
Hinh 2.13 Logo Safe Exam Browser
Safe Exam Browser (SEB) là một môi trường trình duyệt web dé thực hiện các
kỳ thi trực tuyến một cách an toàn Phần mềm thay đồi bat kỳ máy tính nào thành mộtmáy trạm an toàn Nó điều chỉnh quyền truy cập vào các tài nguyên như chức năng
hệ thống, các trang web và ứng dụng khác và ngăn chặn các tài nguyên trái phép được
Trang 38Một số hệ thống quản lý học tập (LMS) như Moodle, ILIAS, OpenOLAT và
các giải pháp thi như Inspera Assessment cung cấp một chế độ kiểm tra tương thích
cụ thé với SEB
Các chức nang của SEB:
Môi trường trình duyệt web dé thực hiện các bài kiểm tra trực tuyến một
cách an toàn.
Chế độ toàn màn hình hoặc cửa số trình duyệt (không có bat kỳ yếu tố điềuhướng nào).
Tắt các phím tắt và các chức năng của hệ điều hành như Trình quản lý tác
vụ (Ctrl-Alt-Del / Cmd-Alt-Esc), trình chuyên đổi chương trình (Alt-Tab,Win-Tab / Cmd-Tab), Màn hình in / Ảnh chụp màn hình không khả dụng
trong một ky thi.
Ngăn không cho học sinh lướt Internet trong ky thi.
Tương thích về cơ bản với tat cả các hệ thông thi dựa trên web, tích hợp bổsung với các hệ thông quản lý học tập Moodle, ILIAS và các hệ thống khác.Khả năng cho phép sử dung có kiểm soát các ứng dụng bên ngoài bé sung
Các phiên bản hiện tại hỗ trợ Windows 7, Windows 8.1, Windows 10, Mac
OS X 10.7 lên đến macOS 10.13 High Sierra và iOS 9.3.5 đến iOS 11
SEB 2.x có thê được bắt đầu hoặc cấu hình lại cho mỗi bài kiểm tra chỉ bằng
cách nhấp vào một liên kết đặc biệt trong một số trình duyệt web thông
thường hoặc trong e-mail.
Phát hiện nếu SEB đang chạy trên một máy ảo, giám sát các quy trình nào
được phép hoặc bị cắm chạy trong kỳ thi
Cài đặt và triển khai dé dàng: Tạo tệp cấu hình seb ma SEB có thé đượcđịnh cấu hình / cấu hình lại sau khi cài đặt
26
Trang 39trang web bao gồm các khóa học, lớp học cùng tô chức các kỳ thi, kiểm tra khác nhau
trực tuyến Moodle là phần mềm học tập được sử dụng rộng rãi và ưa chuộng tạinhiều quốc gia trên thế giới
Các điểm cộng của Moodle:
e Mã nguồn mở và miễn phi
e Có thê câu hình và nhiêu tính năng
e Cộng đông hỗ trợ toàn câu
Các tính năng chính:
e Giao diện trực quan hiện dai, dễ sử dụng và thân thiện với tất cả các đối tượng
người dùng.
e Các trang tổng quan được phép cá nhân hoá
e Tất cả các lịch đào tạo đều được tích hợp
e Su hợp tác giữa các hoạt động và công cụ.
e Khả năng quản lý các tệp tin một cách dé dàng và thuận tiện.
e Các trình soạn thảo văn bản trực quan, đơn giản và dễ sử dụng.
e Khả năng theo dõi tiến độ.
e Tích hợp với các tinh năng thông báo sự kiện.
27
Trang 40Bồ cục trang web được thiết kế linh hoạt và tùy chỉnh dé dàng.
Khả năng đăng ký hàng loạt và xác thực an toàn.
Khả năng hỗ trợ đa ngôn ngữ.
Cho phép người dùng tạo ra hàng loạt các khóa hoc và dé dàng sao lưu.
Các tính năng quản lý nhóm, quản lý người dùng được cung cấp
Nhiều tiêu chuân mở được hỗ trợ cùng khả năng tương tác cao
Dễ dàng và đơn giản hơn trong việc quản lý các plugin.
Cập nhật bảo mật một cách liên tục và thường xuyên.
Các báo cáo và nhật ký báo cáo chỉ tiết được cung cấp
Khả năng tích hợp đa phương tiện.
Khả năng hỗ trợ nhúng các tài nguyên bên ngoài, đánh dấu ngang hàng, trong
dòng và các quy trình làm việc.
Khả năng đánh dấu và tự đánh giá năng lực
Tinh năng dam báo sự riêng tư và an toàn thông tin.
28