Mục tiêu của đề tài Hiểu rõ và sử dụng được các ngôn ngữ lập trình website HTML, CSS, JavaScript, ASP.NET, hệ quản trị cơ sở dữ liệu MS SQL.. 2.1.2 Sơ đồ Usecase Sơ đồ usecase hệ thống
Trang 1KHOA: HE THONG THONG TIN VA VIEN THAM
XAY DUNG WEBSITE THI TRAC NGHIEM
Giảng viên hướng dẫn: Ths Ngô Tân Khai
Sinh viên thực hiện: Trần Vĩnh Trí
Mã số sinh viên: 0750080038
Khoa: 2018 — 2022
Tp Hồ Chí Minh, tháng 01 năm 2023
Trang 2KHOA: HE THONG THONG TIN VA VIEN THAM
DO AN TOT NGHIEP NGANH: CONG NGHE THONG TIN
Dé tai:
XAY DUNG WEBSITE THI TRAC NGHIEM
Giảng viên hướng dẫn: Ths Ngô Tân Khai
Sinh viên thực hiện: Trần Vĩnh Trí
Mã số sinh viên: 0750080038
Khoa: 2018 — 2022
Tp.Hồ Chí Minh, tháng 01 năm 2023
Trang 3Trong suốt thời gian học tập tại tường Đại học Tài Nguyên và Môi Trường thành
phố Hồ Chí Minh, em đã được học thêm rất nhiêu kiến thức bồ ích Những kiến thức liên
quan đến chuyên ngành và cả những kiến thức từ việc chia sẻ về đời sống thực tế của thầy
cô, học hỏi từ bạn bè và xã hội Chúng em được trải nghiệm về đời sống sinh viên, những trải nghiệm chưa từng có trước đây Và quan trọng hơn là chúng em đã được trang bị rất nhiều các kiến thức, kĩ năng về chuyên ngành Công Nghệ Thông Tin để làm nền tảng bước vào đời với ngành nghề Chúng em xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy Th§ Ngô Tân Khai, người đã trực tiếp hướng dẫn em về cách thực hiện đề tài báo cáo cũng như đưa ra những ý kiến để em có thể hoàn thiện tốt hơn bài báo cáo của mình Trong quá trình làm báo cáo, em đã cô gắng làm một cách tốt nhất nhưng vẫn còn những điểm hạn chế về kiến thức và kỹ năng nên có thê còn thiếu sót nhiều trong bài báo cáo Vì vậy, em rất mong nhận được sự tthông cảm cũng như đóng góp ý kiến của thầy dé
em có thể hoàn thiện báo cáo một cách tốt nhất
Cuối cùng, em xin kính chúc thầy có nhiều sức khỏe, hạnh phúc và thành đạt trong
công việc và cuộc sông
Xin chan thanh cam on thay!
Trang 4Tôi xin cam đoan kết quả đạt được trong khóa luận là sản phẩm của riêng cá nhân được hướng dẫn bởi ThS Ngô Tân Khai, không sao chép lại của người khác Trong toàn
bộ nội dung của khóa luận, những điều được trình bày hoặc là của cá nhân hoặc là được
tông hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham kháo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
SINH VIÊN THỰC HIỆN
(Kỹ và ghi rõ họ tên)
Trang 5Kết luận: (Đồng ý hoặc Không đồng ý cho sinh viên nộp báo cáo)
Tp Hồ Chí Minh, ngày tháng .năm 2023 GIẢNG VIÊN HƯỚNG DÂN
(Ký và ghi rõ học hàm, học vị họ tên)
Trang 6Kết luận: (Đồng ý hoặc Không đồng ý cho sinh viên nộp báo cáo)
Tp Hồ Chí Minh, ngày tháng năm 2023 GIẢNG VIÊN PHÁN BIEN
(Ký và ghi rõ học hàm, học vị họ tên)
Trang 7Học, ôn tập các lý thuyết về HTML, CSS
Học ngôn ngữ JavaScript và ReactJs
Phân tích và thiết kế hệ thông
Xây dựng giao diện website hệ thống
Xem xét và chỉnh sửa phân tích thiết ké dé phù hợp
với giao diện
Ôn tập lý thuyết về C#, ASP.Net, JWT, JavaScript,
Xây dựng API Server hệ thống
Tích hop API cho phia client
Kiểm thử và sửa lỗi hệ thống
Triển khai hệ thống
Việt tải liệu và báo cáo
Thời gian dự kiên
Trang 81 Tên đề tài Luận văn: Xây dựng website thi trắc nghiệm
2 Tóm tắt đề tài: Giúp tạo ra một môi trường quản lý bộ câu hỏi dành cho trưởng khoa, giảng viên, cũng như nơi thi cử cho học sinh, sinh viên
3 Vấn đề đưa ra
Ngày nay, ngành Công nghệ thông tin là một ngành có tầm ảnh hưởng vô cùng lớn đối với hầu như mọi lĩnh vực: y tế, giao thông, ngân hàng Trở thành một lĩnh vực quan trọng trong công cuộc phát triển kinh tế, xã hội Nó đem lại một lượng lớn thông tin đến cho mọi người và đã trở thành một thứ không thê thiếu trong cuộc sống hằng ngày Ứng dụng công nghệ thông tin giúp cho cuộc sống trở nên đơn giản, tiện lợi hơn Với tình hình
dịch bệnh COVID-19 chưa thé kiểm soát va dé dam bao cho việc thi cử của học sinh, sinh
viên được diễn ra một cách thuận tiện, nhanh chóng Cần phải có một hệ thống thi online
giúp sinh viên, sinh viên làm bài thi trực tuyến Từ đó hệ thống thi trắc nghiệm trực tuyến
ra đời với sứ mệnh giúp thi trắc nghiệm trở nên đơn giản, dễ tiếp cận hơn
4 Mục tiêu của đề tài
Hiểu rõ và sử dụng được các ngôn ngữ lập trình website HTML, CSS, JavaScript,
ASP.NET, hệ quản trị cơ sở dữ liệu MS SQL Thiết kế được website thi trắc nghiệm
5 Thiết kế tông quát đề tai:
Chương I: Tổng quan tài liệu (Giới thiệu về đề tài, cơ sở lý thuyết)
Chương 2: Phương pháp thực hiện (Các mô hình của chương trình)
Chương 3: Cài đặt thực nghiệm (Các giao diện, cơ sở dữ liệu)
6 Nội dung chính của đề tài, các vấn đề cần giải quyết
Xây dựng website có các chức năng chính sau:
¢ Quan lý lớp học, tài khoản (giảng viên, sinh viên), môn học, cho quản trị viên
© Quản lý câu hỏi, đề thi cho giảng viên
e Tham gia thi, xem diém cho sinh viên
Trang 9MO DAU esseceecsseeesssssesssssseecessneesssssnnsesssnscesssneessssnsessnessnneessssnsesssnnetseesuesenesesnesees 1 CHUONG 1: TONG QUAN TAL LIEU eecscccsecsssseesssseeessseeeesssmesessssnesessnnsssnnsesneesnesees 2
1.1 Các dur ar Li6nn quant ccc ccc cece ccccsecneeceeecceeccseesseecusecsssesseecuesesseeseeseeeseees 2
1.2 Cơ sở lý thuyẾt: ác n2 1n n1 1 H21 re, 2 1.2.1 Công cụ sử dụng và hỗ trỢ + sc E2 1211112111211 1210111111 51H Hưyn 2
1.2.2 Ngôn ngữ, nền tảng, ÍramewOrk - St E1 11111 22110121 tre nrey 4
1.2.3 Kỹ thuật sử dụng - 2 2201121112 212 2111115511211 01 11 118111 k Hs như 6
CHƯƠNG 2: PHƯƠNG PHÁP THỰC HIỆN 5: ©2222222122E221221122122221E 1x2 xe2 10
2.1 Phân tích và thiết kế hệ thống 2-5 - SE EE11211112112111112 11211211 g tre 10 2.1.1 Đặc tả yêu cầu c1 n2 HH1 H1 H1 n1 t1 rêu 10
2.1.2 Sơ đồ Usecase 20c 2n 22212 1221211211121121121121121121211 re 10
2.1.3 Đặc tả secase - - c0 HH HH HH TT ng HT ng TK cà nen 11
2.1.4 Biểu đồ hoạt động S1 n1 HH0 1 n1 HH nh He He 17
2.1.5 Lược đồ tuần tự - ST ng HH HH rrrree 27
2.1.6 Thiết kế mô hình [ERD: -©25:: 222 221121122 1 E1 36
2.1.6 Thiết kế biêu đồ lớp: ¿5c 5 2 E1111211211211 211 11 11 1 12121 erieg 42
2.2 Sự lựa chọn và thách tÌhức 2 2 - 2 v99 5530 5111k kg ng T1 kg cv 42
CHUONG 3: CAI DAT THUC NGHIEM, KET QUÁ VÀ ĐÁNH GIÁ -5: 43
3.1 Phân tích màn hình đăng nhập - - 2 E222 2221121112111 2 1111121 re 43 3.2 Phân tích màn hình home 2: 2132113213511 353351 1511551151 1551 151185121111 8151 18 x52 44 3.4 Phân tích các màn hình quản lý tài khoản sinh viên 572 2 22+ 2s c+szxs2 45 3.5 Phân tích các màn hình quản lý tài khoản giảng viên .c 2 c2 cà cà 46 3.6 Phân tích màn hình quản lý môn học 2 2 2 2212212221112 1222 1281111 47 3.7 Phân tích màn hình quản lý lớp học - c1 2222212121 1221211122 22tr tre 49 3.8 Phân tích màn hình quản lý câu hỏi - 2 - 2c 22 2222212111211 1 1211211118 Ekereo 50
3.9 Phân tích màn hình quản lý đề thi 52-55 112112 1E E2 2 5E tr rHrye 52
Trang 103.11 Phân tích màn hình chon 46 thin c.ccccccccccccccccesscesssssesssesssestesstesesesseeeensesseseeteees 55 3.12 Phân tích màn hình thi 2 2: ©2s22S19EE2225122511221271121112112711211.271 1 2 eee 56
3.13 Phân tích màn hình xem điểm 2-2 SE SE E1 2E2E1512517121151211525151 11522512 2Extx tra 57
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52-5 522E22E15212E1E21211717121212 xe re, 58
DANH MUC TAI LIEU THAM KHAO ccceccccccscscssesesesesvevsseseseeevevesesesesesavavscsvecsesesees 59
Trang 11Hình 1.1 Visual studio œod€ - c0 1 1121111111111 11112111111 1111111115111 11 111 111g 1x tra 2 Hình 1.2 Visual sfud10 - - c1 0 201121 1211111111 11111111111 112111 111115111 111 111 11 51 T1 111 tra 3 Hình 1.3 MS SQL S€TveT - Q00 21 1201111151111 011 110011111 K KH 1kg KE ng kg 1k0 3
000 9® in e 4 Hình 1.4 Reaet JŠ - - L1 11121 1211111111 1111111211 11112 11 118011011 11 111110 11H HH HH HH Hiệu 5
Hình 2.5 Sơ đồ usecase quản lý tài khoản - 5c s t 2111121121111 1 121tr reo 13 Hình 2.6 Sơ đồ usecase quản lý đề thi - S1 xEEEE11111 1121110121211 rryeg 14
Hình 2.7 Sơ đồ usecase quản lý danh sách điểm, thi + SE SE EEEEE sexy 14
Hình 2.8 Sơ đồ usecase quản lý câu hỏi - - 5c c2 21211211 1 E1 1 tre rat 15
Hình 2.9 Sơ đồ usecase thêm câu hỏi từ file : 5c 22 tr tre l6
Hình 2.10 Sơ đồ usecase tham gia thi 5-55 S1 tt SE E112111221121 22111118 trg tra 16 Hình 2.11 Sơ đồ usecase xem điểm 55c 2s x2 2212212122212 212121 xe 17
Hình 2.12 Biểu đồ hoạt động đăng nhập - 1 ST E1 E12 21181212121 re 18
Hình 2.13 Biểu đồ hoạt động quản lý lớp học - 5: s SE xEEEE221212 E121 19 Hình 2.14 Biểu đồ hoạt động quản lý môn học - 2-52 2S SE E181 11221221111 xrkt 20
Hình 2.15 Biểu đồ hoạt động quản lý tài khoản - 5c ST EEE E2 2x re 21 Hình 2.16 Biểu đồ hoạt động quản lý đề thi 5-5 SE EE11E11E2121111 12111 cty 22 Hình 2.17 Biểu đồ hoạt động quản lý danh sách thi, điểm 2 5s SE zxcrrrsre 23 Hình 2.18 Biểu đồ hoạt động quản lý câu hỏi 5c SE 1221 E1 HE HH nghe rên 24
Trang 12Hình 2.20 Biểu đỗ hoạt động tham gia thi 5-5 SE 111E11E1121111211 21112 Hee 26 Hình 2.21 Biểu đỗ hoạt động tham gia thi 5-5 SE EE111E11E112111121 2121 cterrieg 27 Hình 2.22 Lược đồ tuần tự đăng nhập - 5 St n SE 21121121211 102111 1 trêu 27 Hình 2.23 Lược đồ tuần tự quản lý lớp học - -scc2E11EE1EE121121211211 21 Excterrree 28 Hình 2.24 Lược đồ tuần tự quản lý môn học -.- 5s tt kEE12E121221211 1.1.1 crrrreh 29 Hình 2.25 Lược đồ tuần tự quản lý tài khoản - 5 5c s12 2 21k 30 Hình 2.26 Lược đồ tuần tự quản lý để thi 5c s21 1121121121111 2121 errrreg 31 Hình 2.27 Lược đồ tuần tự quản lý danh sách đề, điểm - 5 - St SE srre se 32 Hình 2.28 Lược đồ tuần tự quản lý câu hỏi 5: SE 1111211118212 ket rrey 33
Hình 2.29 Lược đồ tuần tự thêm câu hỏi từ file - -¿: 2c: 22Ettrrrrttrrrrrrrrrrree 34
Hình 2.30 Lược đồ tuần tự tham 1a ỈH 2 20 220111221121 151 1115115111151 11581 tren 35 Hình 2.31 Lược đồ tuần tự xem điểm 2 ST 2 Hn TT EEnEn nen He He He Heo 36
Hình 3.10 Giao diện thêm môn học - - G Q T021 12 211111 SE S9 kg TH nh ng ky 48
Hinh 3.11 Giao diện quản lý lớp học 2 L2 2211221121112 11211112 2111k He 49
Hình 3.12 Giao diện thêm lớp học 002221112111 121 1121122111181 1101111 815gr ky 49
Hình 3.13 Giao điện quản lý câu hỏi 2 22 2221212112211 1111 1121112111 111181158111 ky 50
Hình 3.14 Giao diện thêm câu hỏi bằng cách điền thông tin - 5 nen set 51
Trang 13Hình 3.16 Mẫu file excel - 2-52 221221 2121121121121121121121121121121122121 re 52 Hình 3.17 Màn hình hiển thị danh sách đề thi - 2: ©2s2S2SE22E122122212212221221222212 222 52 Hình 3.18 Màn hình thêm đề thi - 22-25 2 SE2251221112271211221211212211211 1211222 ye 53 Hình 3.19 Giao điện chi tiét dé thie ccccecccecssssssssesstssssssssstssesstesesenstseeseseseseeeees 54
Hình 3.20 Nội dung file “Export List SŠtudernf” - 1221121121111 1 1113113111111 1 re 34 Hình 3.21 Nội dung file “Export List Test Studenif” c2 0112111121 1 2111111 35
Hình 3.22 Các đề có thê tham gi thi 52 St 11211112 12112111 21 11111121 55
Hình 3.23 Màn hình tham gia tH1 ccc 2 2221222121211 3111151151151 1112111571111 11c re 56 Hình 3.24 Thông báo số điêm của bài kiêm tra vừa làm -2- 2S S2E SE Eretsrrsr eee 56
Hình 3.25 Màn hình hiển thị số điểm của các bài thi đã làm 5.522 S2 2212525225 c2 57
Trang 14Bảng định nghĩa thực thể tài khoản 525 2 E221 E215E 111112112 re 36
Bang dinh nghĩa thực thể sinh viên 2 2S ST 5E 5E HH HH HH te 37 Bảng định nghĩa thực thể môn học - 2S T21 S251 255 15511 E5 re na 37 Bảng định nghĩa thực thé lớp học 2 2n 1121112112121 222 1H key 38 Bang dinh nghĩa thực thể câu hỏi 2 TS T111 11518258 2 HH tre 38
Bảng định nghĩa thực thê câu trả lời 5 5s SE EEEEEE Etryk 39 Bảng định nghĩa thực thê đề thi 5 5c s ềSEE12112111211 2x12 211 tre 39 Bảng định nghĩa thực thê điểm 5 5c c EE121111112211 111 ma 40
Bảng định nghĩa thực thê liên kết sinh viên và đề thi s eeees 40 Bảng 2.10: Bảng định nghĩa thực thể liên kết câu hỏi va dé thi cece eee 41
Trang 15STT Ký hiệu Dang day du Diễn giải
CORDS Cross-Origin Resource Sharing Một cơ chế
ERD Entity Relationship Diagram Mô hình thực thê
Integrated Development Môi trường tích hợp đề
MS SQL Server Microsoft SQL Server He thong quan ly £ ag quan
hệ của cơ sở dữ liệu
URL Uniform Resource Locator He thong dinh I tat nguyên thong nhat
VSC Visual Studio Code Trinh soan thao ma nguồn
Trang 16MỞ ĐẦU
Ngày nay, ngành Công nghệ thông tin là một ngành có tầm ảnh hưởng vô cùng lớn đối với hầu như mọi lĩnh vực: y tế, giao thông, ngân hàng trở thành một lĩnh vực quan trọng trong công cuộc phát triển kinh tế, xã hội Nó đem lại một lượng lớn thông tin đến cho mọi người truy cập và đã trở thành một thứ không thẻ thiếu trong cuộc sống hằng ngày Ứng dụng công nghệ thông tin giúp cho cuộc sống trở nên đơn giản và tiện lợi hơn
Với tình hình dịch bệnh COVID-19 chưa thể kiểm soát và dé dam bao cho việc thi
cử của sinh viên, sinh viên được diễn ra một cách thuận tiện, nhanh chóng Cần phải có
một hệ thông thi online giúp sinh viên, sinh viên làm bài thi trực tuyến Từ đó hệ thống thi
trắc nghiệm trực tuyến ra đời với sứ mệnh giúp thi trắc nghiệm trở nên đơn giản và dễ tiếp
cận hơn
Trang 17CHUONG 1: TONG QUAN TAI LIEU
1.1 Các dự án liên quan:
So với đồ án website quản lý hồ sơ em đã từng làm trước đây, thì nhiều sự khác biệt
như là:
- Có nhiều đôi tượng người dùng hơn
- Quản lý nhiều đối tượng hơn, làm rõ quan hệ dữ liệu
- Đăng nhập với độ bảo mật tốt hơn bằng kỹ thuật jwt
- Bảo mật dữ liệu tốt hơn
1.2 Cơ sở lý thuyết:
1.2.1 Công cụ sử dụng và hỗ trợ
* Visual Studio Code:
Visual Studio Code (VS Code hay VSC) Là một trình biên tập lập trình code miễn phi danh cho Windows, Linux va macOS, VSC duoc phat triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa [DE và Code Editor
VSC hỗ trợ chức năng tìm kiếm lỗi, đi kèm với Git, có syntax highlighting, tự hoàn
thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phim tắt, và các tùy chọn khác
Hinh 1.1 Visual studio code
Trang 18* Visual Studio:
Visual Studio la (IDE — Integrated Development Environment) một bộ công cụ phát triển phần mềm do Microsoft phát triển Visual Studio cũng là một tool được sử dụng bởi các lập trình viên đê xây dựng nên các sản phâm phân mêm
Hinh 1.2 Visual studio
* MS SQL Server:
MS SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ được phát triển bởi
Microsoft Là một may chủ cơ sở dữ liệu, nó là một sản phâm phần mềm có chức năng chính là lưu trữ và truy xuất dữ liệu theo yêu cầu của các ứng dụng phần mềm khác Có thê chạy trên cùng một máy tính hoặc trên một máy tính khác trên mạng
SQL Server có khả năng cung cấp đầy đủ các công cụ cho việc quản lý từ giao diện
GUI đến sử dụng ngôn ngữ cho việc truy van SQL Điểm mạnh của SQL điểm mạnh của
nó là có nhiều nền tảng được kết hợp cùng như: ASP.NET, C# để xây dựng Winform
cũng chính nó có khả năng hoạt động độc lập
Tuy nhiên, SQL Server thường đi kèm với việc thực hiện riêng các ngôn ngữ SQL,
T-SQL,
Hinh 1.3 MS SOL Server
Trang 191.2.2 Ngôn ngữ, nền tang, framework
* C#:
C# là một ngôn ngữ lập trình hướng đối tượng, mã nguồn mở, đơn giản, hiện đại,
linh hoạt C# được phát triển bởi Microsofi
Microsoft phát triên C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được
sự cân bằng giữa C+-+, Visual Basic, Delphi và Java
C# được thiết kế cho Common Language Infữastructure (CLI), mà gồm Executable Code va Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level da dạng trên các nên tảng và cầu trúc máy tính khác nhau
Hinh 1.3 C#
* ReactJS:
React là một thư viện JavaScript ont-end mã nguồn mở miễn phí đề xây dựng giao diện người dùng hoặc các thành phần UI Nó được duy trì bởi Facebook và một cộng đồng các nhà phát triển và công ty cá nhân React có thể được sử dụng như một cơ so dé phát triển các ứng dụng một trang hoặc ứng dụng di động
Một trong những điểm hap dan cia React là thư viện này không chỉ hoạt động trên
phía client, mà còn được render trên server và có thê kết nối với nhau React so sánh sự
thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM
Trang 20Hình L4 React JS
*GitHub:
GitHub là một dịch vụ nồi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án phần mềm Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau
Hình 1.5 Github Vài thông tin về GIT:
- Là công cụ giúp quản lý source code tô chức theo dạng dữ liệu phân tán
- Giup đồng bộ source code của team lên một server
- Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, check modifications, show history, merge source, )
GitHub có 2 phiên bản: miễn phí và trả phí Với phiên bản có phí thường được các doanh nghiệp sử dung dé tang kha nang quan ly team cũng như phân quyền bảo mật dự
án Còn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ
source code
Github cung cấp các tính năng social networking như feeds, followers, và network graph đề các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit
Trang 21GitHub được coi là một mạng xã hội dành cho lập trình viên lớn nhất và dễ dùng
nhất với các tính năng cốt lõi như:
- Wiki, issue, thông kê, d6i tén project, project duoc dat vao namespace la user
- Watch project: theo dõi hoạt động của project của người khác Xem quá trinh người ta phát triển phầm mềm thé nao, project phát trién ra sao
- Follow user: theo dối hoạt động của người khác
Có 2 cách tiếp cận GitHub: Tạo project của riêng mình Contribute cho project có sẵn: fork project có sẵn của người khác, sửa đổi, sau đó đề nghị họ cập nhật sửa đối của minh (tao pull request)
1.2.3 Kỹ thuật sử dụng
*JSON Web Token:
JWT (JSON Web Token) là một phương tiện đại diện cho các yêu cầu chuyên giao giữa hai bên Client — Server, các thông tin trong chuỗi JWT được định dạng bằng JSON Trong đó chuỗi Token phải có 3 phần là header, phần payload và phần signature được
66 99
ngan bang dau “
Hinh 1.6 Cau tric JWT (JSON web token)
Trang 22Header: Phần header sẽ chứa kiểu dữ liệu, và thuật toán sử dụng để mã hóa ra chuỗi
JWT
“alg”: “HS256”
“typ”: “JWT”
“typ” (type) chỉ ra rằng đối tượng là một JWT
- “ajg” (algorithm) xác định thuật toán mã hóa cho chuỗi là HS256
Payload: Phan payloadsé chtra cac thông tin mình muốn đặt trong chuỗi Token như username , userld , author
Trang 23Hinh 1.7 Vi du vé JWT (JSON Web Token)
*Ly do sw dung JWT
Authentication: Đây là trường hợp phô biến nhất thường sử dụng JWT Khi người dùng đã đăng nhập vào hệ thống thì những request tiếp theo từ phía người dùng sẽ chứa thêm mã JWT Điều này cho phép người dùng được cấp quyền truy cập vào các url, ServIce, và resource mà mã Token đó cho phép Phương pháp này không bị ảnh hưởng bởi Cross-Origin Resource Sharing (CORS) do no khéng str dung cookie
Trao đổi thông tin: JWT là một cách thức khá hay để truyền thông tin an toàn giữa các thành viên với nhau, nhờ vào phần signature của nó Phía người nhận có thể biết được người gửi là ai thông qua phần signature Và chữ ký được tạo ra bằng việc kết hợp cả phân header, payload lại nên thông qua đó ta có thể xác nhận được chữ ký có bị giả mạo hay không
*Lâp trình đồng bộ (Synchronous) và bất đồng bộ (Asynchronous):
Lập trình đồng bộ có nghĩa là xử lý đồng bộ, chương trình sẽ chạy theo từng bước và chi khi nào bước I thực hiện xong thì mới nhảy sang bước 2, khi nào chương trình này chạy xong mới nhảy qua chương trình khác Đây là nguyên tắc cơ bản trong lập trình,
Trang 24đó là khi biên dịch các đoạn mã thì trình biên dịch sẽ biên dịch theo thứ tự từ trên xuống
dưới, từ trái qua phải và chỉ khi nào biên dịch xong dòng thứ nhât mới nhảy sang dòng thứ hai, điều này sẽ sinh ra một trạng thái ta hay gọi là trạng thái chờ
Lập trình bất đồng bộ là khả năng thực thi các tác vụ độc lập nhau, có nghĩa là chúng không nhất thiết phải chạy một cách tuần tự (có thể chạy song song với nhau) hoặc xử lý này không phải đợi xử lý khác giúp cho việc cải thiện hiệu suất hoạt động của ứng dụng
Trang 25CHƯƠNG 2: PHƯƠNG PHÁP THỰC HIỆN
2.1 Phân tích và thiết kế hệ thống
2.1.1 Đặc tả yêu cầu
Yêu cầu chức năng
- Về phía quản trị viên:
+ Quản lý lớp học: thêm, xóa, cập nhật lớp học
+ Quản lý môn học: thêm, xóa, cập nhật môn học
+ Quản lý tài khoản: thêm, xóa tài khoản của giảng viên và sinh viên
- Về phía giảng viên :
+ Quản lý đề thì: tạo, xóa đề thi với số câu hỏi dễ, trung bình, khó do người dùng
nhập Thêm, xoá sinh viên khỏi dé thi
+ Quản lý câu hỏi: thêm, xóa, phân loại mức độ câu hỏi
- Về phía sinh viên :
+ Tham gia thi trực tuyến
+ Xem điểm
Yêu cầu phi chức năng
- Tính bảo mật cao
- Có tính hiệu quả trong thì
- Đảm bảo hiệu năng với lượt truy cập cao cùng thời điểm
Trang 262.1.2 Sơ đồ Usecase
Sơ đồ usecase hệ thống :
Hinh 2.1 So dé usecase hé thong 2.1.3 Dac ta Usecase
* Dac ta usecase dang nhap
Hình 2.2 Sơ đồ usecase đăng nhập s* Tóm tắt: Use case này mô tả cách đăng nhập vào hệ thông
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case này bắt đầu khi người dùng muốn đăng nhập vào hệ thông
Trang 27+ Hệ thống yêu cầu người dùng nhập tài khoản và mật khâu
+ Hệ thống kiểm tra tài khoản và mật khâu mà người dùng đã nhập và cho phép người dùng đăng nhập vào hệ thống
- Dòng sự kiện khác: Nếu trong dòng sự kiện chính người dùng nhập tài khoản và mật khâu sai hoặc không tôn tại thì hệ thống sẽ báo lỗi Người dùng có thê quay
về đầu dòng sự kiện hoặc hủy bỏ việc đăng nhập lic nay usecase kết thúc
s* Post condition: Nếu usecase thành công thì người đăng nhập có các quyền sử dụng các tính năng của hệ thông tương ứng Ngược lại trạng thái của hệ thống không
+ Hệ thống hiển thị danh sách các lớp học tồn tại trong hệ thống
+ Người dùng chọn những tác vụ tương ứng thêm, xóa, cập nhật lớp học trong
hệ thống tùy vào nhu cầu sử dụng
Trang 28* Đặc tả usecase quản lý môn học
Hình 2.4 Sơ đồ usecase quản lý môn học s* Tóm tắt: Use case này mô tả cách quản trị viên quản lý môn học
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case này bắt đầu khi quản trị viên đăng nhập vào hệ thống
+ Hệ thống hiển thị danh sách các môn học tôn tại trong hệ thống
+ Người dùng chọn những tác vụ tương ứng thêm, xóa, cập nhật môn học trong
hệ thống tùy vào nhu cầu sử dụng
* Đặc tả usecase quản lý tài khoản
Hình 2.5 Sơ đồ usecase quản lý tài khoản s* Tóm tắt: Use case này mô tả cách quản trị viên quản lý tài khoản
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case này bắt đầu khi quản trị viên đăng nhập vào hệ thống
Trang 29+ Hệ thống hiển thị chỉ tiết thông tin danh sách tài khoản tồn tại trong hệ thống + Người dùng chọn những tác vụ tương ứng thêm, xóa tài khoản trong hệ thông tùy vào nhu cầu sử dụng Có 2 vai trò khi cấp tài khoản cần chú ý là: giảng viên và sinh viên, mỗi vai trò sẽ có những chức năng tương ứng
* Đặc tả usecase quản lý đề thi
Hinh 2.6 So dé usecase quan ly dé thi
“+ Tom tat: Use case này mô tả cách giảng viên quản lý đề thi
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case này bắt đầu khi giảng viên đăng nhập vào hệ thông và muốn quản lý
đề thi
+ Người dùng chọn những tác vụ tương ứng tạo, xoá đề thi được chỉ định
* Đặc tả usecase quản lý danh sách thi, điểm
Hình 2.7 Sơ đồ usecase quản lý danh sách điểm, thí
s* Tóm tắt: Use case mô tả cách giảng viên quản lý danh sách thi, xem điềm
** Dòng sự kiện:
Trang 30- Dòng sự kiện chính
+ Use case nay bat dau khi giảng viên xem chỉ tiết đề thi
+ Hệ thống tải dánh sách sinh viên thi và điểm số nếu có
+ Người dùng chọn những tác vụ tương ứng đề thêm sinh viên, xoá sinh viên
khỏi dé thi
+ Hệ thống sẽ thêm, xoá sinh viên ra khỏi đề thi
+ Người dùng chọn tác vụ mm danh sách thi hoặc danh sách điểm
+ Hệ thống sẽ cho người dùng tải về một ñle tương ứng
* Đặc tả usecase quản lý cầu hỏi
Hình 2.8 Sơ đồ usecase quản lý câu hỏi s* Tóm tắt: Use case này mô tả cách giảng viên quản lý câu hỏi
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case nay bat dau khi giảng viên đăng nhập vào hệ thông
+ Hệ thống hiển thị chỉ tiết thông tin danh sách câu hỏi tổn tại trong hệ thông + Người dùng chọn những tác vụ tương ứng thêm, xóa câu hỏi trong hệ thống tùy vào nhu câu sử dụng
Trang 31* Đặc tả usecase thêm câu hỏi từ file
Thêm câu
hoi tir file
Hình 2.9 Sơ đồ usecase thêm câu hỏi từ file s* Tóm tắt: Use case này mô tả cách giảng viên thêm câu hỏi từ một ñle excel
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case này bắt đầu khi giảng viên chọn tải lên danh sách câu hỏi từ màn hình quản lý câu hỏi
+ Nguoi dung chon file excel cần tạo câu hỏi
+ Hệ thống hiển thị tong s6 cau hoi co trong file
+ Người dùng bam “Upload” đề tạo câu hỏi trong danh sách
+ Hệ thống thẻ hiện trạng thái tiến trình, tổng số lượng câu hỏi tạo thành công
và thất bại cho người dùng
* Đặc tả usecase tham gia thi
Hình 2.10 Sơ đồ usecase tham gia thi s* Tóm tắt: Use case này mô tả cách sinh viên tham gia thi trực tuyến
Trang 32** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case nay bat đầu khi sinh viên đăng nhập vào hệ thống và muốn tham gia bai thi
+ Sinh vién chon dé thi
+ Hệ thống hiển thị đề thi đã được định trước và cho sinh viên bắt đầu tiền hành
làm bài thi
* Đặc tả usecase xem điềm
Hình 2.11 Sơ đồ usecase xem điềm s* Tóm tắt: Use case này mô tả cách sinh viên xem điểm của bản thân mình
** Dòng sự kiện:
- Dòng sự kiện chính
+ Use case nay bat đầu khi sinh viên đăng nhập vào hệ thống và muốn xem
điểm bài da thi
+ Sinh viên chọn xem điểm
+ Hệ thống hiển thị điểm trên từng đề của sinh viên đã thi
2.1.4 Biểu đồ hoạt động
Trang 33* Đăng nhập
Hình 2.12 Biểu đô hoạt động đăng nhập
Trang 34* Quản lý lớp học
Tình 2.13 Biêu đô hoạt động quản lý lớp học
Trang 35* Quản lý môn học
Tình 2.14 Biêu đô hoạt động quản lý môn học
Trang 36* Quản lý tài khoản
Tình 2.15 Biểu đô hoạt động quản lý tài khoản
Trang 37* Quản lý đề thi
Hình 2.1ó Biêu đô hoạt động quản lý đề thị