Trong đó có các tính năng chính: - Luyện tập với các bài tập có phân cấp độ, theo chương, môn học cùng với sự đánh giá khả năng hoàn thành bài tập đó - Thi thử trực tuyến với hệ thống tự
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
LÊ XUÂN TÙNG NGUYỄN THANH TUẤN
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG LUYỆN THI ĐẠI HỌC
Building an application practicing exam preparation for university
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP HỒ CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
LÊ XUÂN TÙNG – 18521616 NGUYỄN THANH TUẤN - 18521604
KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG LUYỆN THI ĐẠI HỌC
Building an application practicing exam preparation for university
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN ThS HUỲNH HỒ THỊ MỘNG TRINH
TP HỒ CHÍ MINH, 2022
Trang 3THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin
1 – Chủ tịch
2 – Thư ký
3 – Uỷ viên
4 – Uỷ viên
Trang 4LỜI CẢM ƠN
Khóa luận tốt nghiệp với đề tài “XÂY DỰNG ỨNG DỤNG LUYỆN THI ĐẠI HỌC”
là minh chứng cho quá trình cố gắng không ngừng nghỉ trong việc tìm tòi, học hỏi trong suốt 4 năm học tập tại trường Đại học Công nghệ Thông tin của nhóm chúng em Các thầy cô trường Đại học Công nghệ Thông Tin nói chung và các thầy cô trong Khoa Công nghệ Phần mềm nói riêng đã tận tình truyền đạt rất nhiều kiến thức bổ ích và vô cùng cần thiết tới chúng em để chúng em có được một nền tảng chuyên môn vững chắc trong tương lai Thông qua khoá luận này, chúng em đã thể hiện những gì đã được học và kết hợp lại để cố gắng tạo nên một sản phẩm có tính ứng dụng thực tế cao, bước đầu là quy
mô vừa và nhỏ, dần dần hướng đến một sản phẩm hoàn chỉnh với quy mô lớn hơn Chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đại học Công nghệ Thông tin nói chung, và quý thầy cô khoa Công nghệ Phần mềm nói riêng, đặc biệt là cô Huỳnh Hồ Thị Mộng Trinh đã chu đáo và tận tình hướng dẫn chúng em, giúp chúng em
có điều kiện tốt nhất để hoàn thành khoá luận với chất lượng cao nhất
Cảm ơn giảng viên phản biện và các thầy cô trong hội đồng chấm khoá luận với những lời khuyên, góp ý quý báu và bổ ích Từ đó khoá luận tốt nghiệp của chúng em đã trở nên hoàn thiện hơn
Bên cạnh đó, nhóm chúng em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã luôn bên cạnh, động viên và đóng góp ý kiến trong quá trình chúng em hoàn thành khóa luận này Trong suốt quá trình thực hiện khóa luận, do quy mô của sản phẩm là khá lớn so với các
đồ án thông thường khác, với thời gian và vốn kiến thức vẫn còn nhiều hạn chế, chắc chắn nhóm khó tránh khỏi những sai sót không mong muốn Chúng em rất mong nhận được sự góp ý chân thành từ phía thầy cô và các bạn
Thành phố Hồ Chí Minh, tháng 06 năm 2022
Lê Xuân Tùng
Trang 5MỤC LỤC
TÓM TẮT KHÓA LUẬN 1
Chương 1 TỔNG QUAN 2
1.1 Giới thiệu đề tài 2
1.2 Mục tiêu 7
1.3 Phạm vi 8
1.4 Phương pháp thực hiện 8
1.5 Ý nghĩa thực tiễn 8
1.6 Kết quả dự kiến 9
Chương 2 CƠ SỞ LÝ THUYẾT 10
2.1 Thu thập dữ liệu về ma trận đề thi 10
2.2 Thiết kế thuật toán để giải quyết bài toán gợi ý lộ trình luyện thi 15
2.3 Thiết kế thuật toán để giải quyết bài toán nhận diện thẻ giáo viên 16
Chương 3 TỔNG QUAN CÔNG NGHỆ 18
3.1 ReactJS 18
3.2 NodeJS 19
3.3 MongoDB 20
3.4 Express 20
3.5 TesseractJS 21
Chương 4 XÂY DỰNG HỆ THỐNG LUYỆN THI ĐẠI HỌC 22
4.1 Phân tích yêu cầu hệ thống 22
Trang 64.1.1 Phân tích yêu cầu chức năng 22
4.1.2 Yêu cầu tính năng 22
4.1.3 Phân tích yêu cầu phi chức năng 22
4.1.4 Sơ đồ use case 23
4.1.5 Một số use case của hệ thống 26
4.2 Thiết kế hệ thống 32
4.2.1 Sơ đồ tuần tự thao tác thi thử 32
4.2.2 Sơ đồ tuần tự thao tác làm khảo sát - nhận gợi ý lộ trình luyện thi 35
4.2.3 Sơ đồ tuần tự thao tác làm bài tập 36
4.2.4 Sơ đồ tuần tự thao tác tham khảo tài liệu luyện thi 37
4.3 Thiết kế cơ sở dữ liệu 40
4.3.1 Sơ đồ cơ sở dữ liệu 40
4.3.2 Mô tả các bảng dữ liệu 42
4.4 Thiết kế kiến trúc hệ thống 50
4.4.1 Kiến trúc tổng thể 50
4.4.2 Kiến trúc ứng dụng web 52
4.4.3 Sơ đồ thành phần 53
4.4.4 Sơ đồ triển khai 54
4.5 Thiết kế giao diện 55
4.5.1 Danh sách màn hình 55
4.5.2 Một số màn hình của ứng dụng 61
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83
Trang 75.1 Kết quả đạt được 83
5.2 Thuận lợi và khó khăn 84
5.2.1 Thuận lợi 84
5.2.2 Khó khăn 84
5.3 Hướng phát triển 85
TÀI LIỆU THAM KHẢO 86
Trang 8DANH MỤC HÌNH
Hình 1-1 Tỷ lệ sử dụng website luyện thi đại học 2
Hình 1-2 Số lượng người dùng ở các website luyện thi đại học 3
Hình 1-3 Tỷ lệ đánh giá việc luyện thi online 4
Hình 1-4 Tỷ lệ mong muốn sử dụng website luyện thi đại học 4
Hình 2-1 Sơ đồ thuật toán nhận diện thẻ giáo viên 16
Hình 2-2 Giải thuật diện hình ảnh của TerractJs 16
Hình 4-1 Sơ đồ Use case tổng quan 23
Hình 4-2 Sơ đồ use-case thi thử 26
Hình 4-3 Sơ đồ use-case làm khảo sát – nhận lộ trình luyện thi 28
Hình 4-4 Sơ đồ use-case làm bài tập 29
Hình 4-5 Sơ đồ use-case tham khảo tài liệu luyện thi 30
Hình 4-6 Sơ đồ tuần tự thao tác thi thử 32
Hình 4-7 Sơ đồ tuần tự thao tác xem lại và thảo luận đề thi 33
Hình 4-8 Sơ đồ tuần tự thao tác xem bảng xếp hạng 34
Hình 4-9 Sơ đồ tuần tự thao tác khảo sát - nhận gợi ý lộ trình luyện thi 35
Hình 4-10 Sơ đồ tuần tự thao tác làm bài tập 36
Hình 4-11 Sơ đồ tuần tự thao tác xem đề thi tham khảo 37
Hình 4-12 Sơ đồ tuần tự thao tác xem tài liệu tham khảo 38
Hình 4-13 Sơ đồ thao tác xem bài chia sẻ 39
Hình 4-14 Sơ đồ cơ sở dữ liệu 40
Hình 4-15 Mô hình MERN stack 51
Hình 4-16 Kiến trúc ứng dụng web 52
Hình 4-17 Sơ đồ thành phần của hệ thống 53
Hình 4-18 Sơ đồ triển khai ứng dụng 54
Hình 4-19 Danh sách liên kết màn hình phía người dùng 55
Trang 9Hình 4-20 Danh sách liên kết màn hình phía quản trị 58
Hình 4-21 Màn hình đăng ký thi thử 61
Hình 4-22 Màn hình Thi thử 62
Hình 4-23 Màn hình xem lại kết quả bài thi đã làm 64
Hình 4-24 Màn hình bình luận 65
Hình 4-25 Màn hình chọn lựa những môn học user sẽ thi 66
Hình 4-26 Màn hình điều hướng user làm bài đánh giá năng lực 67
Hình 4-27 Màn hình lựa chọn mục tiêu điểm số của user mong muốn 68
Hình 4-28 Màn hình lộ trình luyện thi 69
Hình 4-29 Màn hình danh sách các môn học 70
Hình 4-30 Màn hình danh sách chương 71
Hình 4-31 Màn hình làm bài tập 72
Hình 4-32 Màn hình tham khảo tài liệu luyện thi 73
Hình 4-33 Màn hình danh sách đề thi thử tham khảo 74
Hình 4-34 Màn hình xem tài liệu tham khảo 75
Hình 4-35 Màn hình tra cứu 76
Hình 4-36 Màn hình trang cá nhân 77
Hình 4-37 Màn hình đổi mật khẩu 78
Hình 4-38 Màn hình sửa thông tin cá nhân 79
Hình 4-39 Màn hình danh sách bài chia sẻ 80
Hình 4-40 Màn hình bài chia sẻ 81
Hình 4-41 Màn hình quản lý người dùng 82
Trang 10DANH MỤC BẢNG
Bảng 1-1 Tiêu chí đánh giá của một số website luyện thi đại học nổi tiếng 5
Bảng 2-1 Ma trận đề thi môn Toán năm 2021 11
Bảng 2-2 Ma trận đề thi môn Vật lý năm 2021 11
Bảng 2-3 Ma trận đề thi môn Địa lý năm 2021 12
Bảng 2-4 Ma trận đề thi môn Toán năm 2020 13
Bảng 2-5 Ma trận đề thi môn Vật lý năm 2020 13
Bảng 2-6 Ma trận đề thi môn Địa lý năm 2020 14
Bảng 4-1 Danh sách các actor 24
Bảng 4-2 Danh sách các use-case 24
Bảng 4-3 Đặc tả use-case thi thử 27
Bảng 4-4 Đặc tả use-case làm khảo sát – nhận lộ trình luyện thi 28
Bảng 4-5 Đặc tả use-case làm bài tập 29
Bảng 4-6 Đặc tả use-case tham khảo tài liệu luyện thi 30
Bảng 4-7 Danh sách các bảng dữ liệu 41
Bảng 4-8 Bảng đơn vị/trường 42
Bảng 4-9 Bảng chương học 42
Bảng 4-10 Bảng danh sách bài tập đã hoàn thành 43
Bảng 4-11 Bảng danh sách đề thi đã hoàn thành 43
Bảng 4-12 Bảng danh sách bài tập 43
Bảng 4-13 Bảng danh sách tài liệu tham khảo 44
Bảng 4-14 Bảng danh sách đề thi tham khảo 45
Bảng 4-15 Bảng phân quyền 45
Bảng 4-16 Bảng danh sách bài chia sẻ 46
Bảng 4-17 Bảng danh sách môn học 46
Bảng 4-18 Bảng danh sách đề thi 47
Trang 11Bảng 4-19 Bảng danh sách trường đại học 47
Bảng 4-20 Bảng danh sách người dùng 48
Bảng 4-21 Bảng danh sách tài khoản giáo viên yêu cầu duyệt 48
Bảng 4-22 Bảng danh sách gợi ý lộ trình 49
Bảng 4-23 Bảng danh sách môn học gợi ý 49
Bảng 4-24 Bảng danh sách bình luận đề thi 50
Bảng 4-25 Bảng danh sách bài tập đã nộp 50
Bảng 4-26 Danh sách màn hình phía người dùng 55
Bảng 4-27 Danh sách màn hình phía quản trị 59
Bảng 4-28 Mô tả màn hình đăng ký thi thử 61
Bảng 4-29 Mô tả màn hình thi thử 63
Bảng 4-30 Mô tả màn hình xem lại kết quả bài thi đã làm 64
Bảng 4-31 Mô tả màn hình bình luận 65
Bảng 4-32 Mô tả màn hình chọn lựa những môn học user sẽ thi 66
Bảng 4-33 Mô tả màn hình điều hướng user làm bài đánh giá năng lực 67
Bảng 4-34 Mô tả màn hình lựa chọn mục tiêu điểm số của user mong muốn 68
Bảng 4-35 Mô tả màn hình lộ trình luyện thi 69
Bảng 4-36 Mô tả màn hình danh sách các môn học 70
Bảng 4-37 Mô tả màn hình làm bài tập 71
Bảng 4-38 Mô tả màn hình làm bài tập 72
Bảng 4-39 Mô tả màn hình tham khảo tài liệu luyện thi 73
Bảng 4-40 Mô tả danh sách đề thi thử tham khảo 74
Bảng 4-41 Mô tả màn hình xem tài liệu tham khảo 76
Bảng 4-42 Mô tả màn hình tra cứu 77
Bảng 4-43 Mô tả màn hình trang cá nhân 77
Bảng 4-44 Mô tả màn hình đổi mật khẩu 78
Bảng 4-45 Mô tả màn hình sửa thông tin cá nhân 79
Trang 12Bảng 4-46 Mô tả màn hình danh sách bài chia sẻ 80 Bảng 4-47 Mô tả màn hình bài chia sẻ 81 Bảng 4-48 Mô tả màn hình quản lý người dùng 82
Trang 13DANH MỤC TỪ VIẾT TẮT
STT Từ viết tắt Từ đầy đủ Ý nghĩa
1 THPT Trung học phổ thông Trung học phổ phông
2 UIT University of Information
Technology
Trường Đại học Công nghệ Thông tin – Đại học Quốc gia
Tp Hồ Chí Minh
Trang 14TÓM TẮT KHÓA LUẬN
Hiện nay, các bạn học sinh đặc biệt là học sinh cấp 3 được tiếp cận Internet từ khá sớm,
và dần dần việc ôn luyện chuẩn bị cho kỳ thi THPT Quốc gia trên các trang web luyện thi ngày càng phổ biến Có khá nhiều trang web ôn thi THPT Quốc gia ở thời điểm hiện tại, tuy nhiên điểm chung của những trang web này là: dạy học qua video và bán khoá học online đó, và chỉ những học sinh đã đăng ký khoá học mới có thể tiếp cận được nguồn đề thi đó Và không phải học sinh nào cũng đủ điều kiện để mua những khoá học online này bởi vì tiền mua 1 khoá học online trên mạng không hề rẻ đối với 1 học sinh THPT (thường dao động từ 600.000 - 1.000.000 VND)
Nhằm cung cấp cho các bạn học sinh có một môi trường để luyện tập, thử sức cùng các
đề thi thử và hướng tới kỳ thi đại học Trong đó có các tính năng chính:
- Luyện tập với các bài tập có phân cấp độ, theo chương, môn học cùng với sự đánh giá khả năng hoàn thành bài tập đó
- Thi thử trực tuyến với hệ thống tự động chấm bài trắc nghiệm
- Xem lại và trao đổi sau mỗi đề thi
- Tra cứu thông tin tuyển sinh đại học
- Tham khảo tài liệu, đề thi mới nhất trên cả nước, các bài chia sẻ hữu ích về việc
ôn thi đại học
- Ngoài ra còn các tính năng khác như khảo sát và đưa ra gợi ý lộ trình luyện thi, tính năng quản trị và quyền truy cập giáo viên
Kết quả cuối cùng của khoá luận: Nhóm đã xây dựng một ứng dụng luyện thi đại học với các tính năng chính nêu trên
Trang 15Chương 1 TỔNG QUAN
1.1 Giới thiệu đề tài
Theo khảo sát khoảng 194 học sinh THPT (đa phần tại tỉnh Quảng Bình và tỉnh Quảng Ngãi), là đại diện cho những học sinh từ những tỉnh nhỏ lẻ trên cả nước, thì có kết quả:
- 78.9% học sinh chưa từng luyện thi đại học trên các website trực tuyến Một số
lý do được chia sẻ là:
Hình 1-1 Tỷ lệ sử dụng website luyện thi đại học
● “Học phí mỗi khoá học khá cao so với thu nhập tại địa phương”
● “Để luyện thi trên những trang web này đều phải đăng ký mua khoá học, nhưng vì giá mua khá cao so với điều kiện kinh tế của gia đình nên không mua được”
● “Không quen sử dụng máy tính và truy cập các website luyện thi”
- “hocmai.vn”, “tuyensinh247.com”, “moon.vn”: là 3 trang web được tin dùng
từ các bạn học sinh
Trang 16Hình 1-2 Số lượng người dùng ở các website luyện thi đại học
- Hơn 90%: các bạn học sinh đều cảm thấy thích thú với việc luyện thi online trên
những trang web Cụ thể là:
● 37.1%: cảm thấy việc luyện thi online “Rất cần thiết”
● 58.2%: cảm thấy việc luyện thi online “Cũng hay”
Trang 17Hình 1-3 Tỷ lệ đánh giá việc luyện thi online
- Gần 100%: mọi người đều rất mong đợi được trải nghiệm 1 website luyện thi đại
học hoàn toàn miễn phí từ việc thi thử đến việc tra cứu tài liệu ôn thi, đề thi cũng như thông tin tuyển sinh
Hình 1-4 Tỷ lệ mong muốn sử dụng website luyện thi đại học
Trang 18Bảng so sánh các tính năng của các hệ thống chia sẻ tài liệu đang trên thị trường và hệ thống đề xuất:
Bảng 1-1 Tiêu chí đánh giá của một số website luyện thi đại học nổi tiếng
Tiêu chí
đánh giá hocmai.vn tuyensinh247.com moon.vn
Hệ thống đề xuất
Trang 19Tài liệu tham
thực tự động Không Không Không Có
- Từ những con số thống kê trên đã cho ta thấy rằng, nhu cầu được luyện thi đại học trên 1 website không tốn bất kỳ loại phí nào của các bạn học sinh là rất lớn, đặc biệt là các bạn học sinh ở những tỉnh thành nhỏ lẻ, còn gặp nhiều khó khăn
về mặt kinh tế Hơn thế nữa, việc không thuần thục các thao tác với máy tính cũng như truy cập Internet cũng là rào cản không hề nhỏ cho các bạn học sinh Và về lâu dài, việc ngày càng kéo dài điều này sẽ dẫn đến sự thua thiệt không đáng có, khiến các bạn học sinh khó có thể tiếp cận được nguồn tài liệu có chọn lọc và tham gia thử thách mình ở những bài thi thử đầy thử thách
- Hệ thống luyện thi đại học là một website sẽ giúp cho các bạn học sinh có thể trực tiếp luyện tập làm những bài tập theo từng chủ đề khác nhau, cũng như là trải nghiệm thi thử Ngoài ra, còn có 1 kho tài liệu để mọi người có thể tham khảo và nhiều tính năng hỗ trợ cho các bạn học sinh có 1 trải nghiệm ôn thi với những thao tác cực kỳ đơn giản mà ai cũng sẽ làm quen được ngay trong lần đầu trải nghiệm
Trang 20- Cả 2 thành viên trong nhóm em đều đã từng trải qua giai đoạn luyện thi Trung học phổ thông Quốc gia cực kỳ quan trọng trong đời mình Hơn ai hết, chính chúng em hiểu rất rõ sự lo lắng cũng như những khó khăn mà mỗi bạn học sinh trong giai đoạn này phải đối mặt Nếu như không phải gặp khó khăn trong việc
sử dụng Internet để tìm kiếm tài liệu ôn tập thì cũng gặp không ít khó khăn từ việc phải đi góp nhặt từng đề thi thử một về để tổng hợp lại mới có thể làm, ngoài ra còn phải đi tìm lời giải cho những câu hỏi chưa làm được trong những bộ đề thi này Việc này tuy là vẫn khả thi nhưng đòi hỏi các bạn học sinh phải khá thông thạo trong việc sử dụng máy tính cũng như biết cách tra cứu trên Internet, ngoài
ra cũng gây tốn không ít thời gian tìm kiếm nguồn tài liệu này Từ đó, dưới góc nhìn của những người đã từng trải qua những khó khăn này mà nhóm chúng em muốn cùng nhau xây dựng 1 hệ thống tổng hợp nguồn đề chất lượng cũng như là không gian ôn tập, luyện thi và cung cấp những thông tin tuyển sinh bổ ích cho các bạn học sinh để các bạn có thể “toàn tâm toàn lực” chuẩn bị thật tốt cho công cuộc chinh phục cuộc thi có thể nói là “bước ngoặt” trong chính cuộc đời của chính các bạn
- Đề tài này cũng là một sự tâm huyết của giảng viên hỗ trợ ThS Huỳnh Hồ Thị Mộng Trinh Cô đã góp ý và đưa ra ý tưởng sơ khai cho nhóm, sau nhiều lần trao đổi giữa cô và nhóm chúng em thì cuối cùng cô và nhóm chúng em đã đi đến quyết định sẽ lựa chọn đề tài này
1.2 Mục tiêu
- Xây dựng một ứng dụng giúp cho các bạn học sinh trong quá trình ôn thi đại học
có thể tiếp cận dễ dàng hơn với nguồn tài liệu, đề thi có chọn lọc
- Các bạn học sinh có thể theo dõi những thành tích mình đạt được quá trình ôn tập, làm đề thi của mình để có thể có những thay đổi phù hợp hơn
Trang 21- Tạo ra một không gian làm đề thi thử có tính giờ theo chuẩn của Bộ giáo dục để các bạn học sinh làm quen với áp lực thời gian làm bài
- Xây dựng trang quản trị để quản lý tài nguyên của website
- Phân quyền cho giáo viên có thể đóng góp đề thi cho hệ thống
- Đưa ra gợi ý lộ trình ôn luyện thi cho các bạn học sinh
- Kiểm duyệt tự động khi đăng ký quyền giáo viên
1.3 Phạm vi
- Đề tài tập trung vào xây dựng hệ thống trên nền tảng website hướng tới đối tượng
sử dụng chính là các bạn học sinh THPT chuẩn bị cho kì thi Đại học Ngoài ra, các quý thầy, cô giáo là giáo viên giảng dạy bậc THPT
- Các bạn học sinh có thể sử máy tính cá nhân hoặc smartphone để truy cập website bởi vì website có hỗ trợ responsive
- Các thầy, cô giáo có thể đóng góp dữ liệu cho hệ thống (tài liệu tham khảo, bài tập, bài chia sẻ, …)
- Các bạn học sinh sẽ có một nơi luyện thi mới thú vị hơn và có một nguồn đề mới
có chọn lọc theo chuẩn của Bộ giáo dục để có thể chuẩn bị tốt nhất cho kỳ thi Đại học sắp tới
Trang 22- Các bạn học sinh có thể theo dõi những thành tích mình đạt được quá trình ôn tập, làm đề thi của mình để có thể có những thay đổi phù hợp hơn
- Có không gian trao đổi, bình luận dưới mỗi đề thi “đã làm” để các bạn có thể nhờ mọi người trả lời những thắc mắc của mình gặp phải khi làm đề thi đó
- Các bạn học sinh có thể chủ động tra cứu thông tin tuyển sinh từ đa số các trường Đại học trên cả nước trong các năm gần đây ngay trên website
1.6 Kết quả dự kiến
- Hiểu rõ hơn các công nghệ mới:
● Front - end: ReactJS
● Back - end: NodeJS, MongoDB, Express
- Hoàn thành sản phẩm với các chức năng đã đề ra trước đó
- Giao diện thân thiện, dễ sử dụng ngay cả với những bạn học sinh ít sử dụng máy tính
- Tạo ra những giá trị thiết thực của mục tiêu hướng tới
Trang 23Chương 2 CƠ SỞ LÝ THUYẾT
2.1 Thu thập dữ liệu về ma trận đề thi
Trong quá trình ôn thi Đại học, luôn có một vấn đề mà khá nhiều học sinh vướng mắc
đó chính là không biết phải ôn luyện từ đâu, khi lượng kiến thức học được trong 12 năm ngồi trên ghế nhà trường chỉ gói gọn trong 1 đề thi chỉ có 40 hoặc 50 câu hỏi Nên việc lựa chọn và sắp xếp độ ưu tiên kiến thức trong giai đoạn ôn thi là rất quan trọng và sẽ ảnh hưởng khá lớn đến điểm số đạt được của các bạn học sinh trong kỳ thi này
Sau đây, nhóm đã tiến hành thu thập số liệu, nghiên cứu về ma trận đề thi các môn trong
kỳ thi THPT Quốc gia qua các năm Và nhóm đã rút ra được rằng, ma trận đề thi của các môn trong kỳ thi THPT Quốc gia đa phần sẽ có phổ điểm dựa vào 2 tiêu chí là: độ khó câu hỏi và phạm vi kiến thức (theo chương) của câu hỏi Đối với từng chương sẽ chiếm một số lượng câu hỏi nhất định đi kèm với nhiều mức độ khó khác nhau trong đề thi THPT Quốc gia
Vì vậy, Nhóm đã quyết định đưa ra những gợi ý ôn thi cho người dùng bằng phương pháp dựa trên “điểm số kỳ vọng” so với “điểm số hiện tại” của người dùng theo từng môn học để có thể đưa ra những gợi ý tốt nhất có thể
- Điểm số hiện tại: Nhóm sẽ cho các bạn học sinh làm đề thi chuẩn của Bộ Giáo dục và Đào tạo tương ứng với từng môn học mà học sinh đã lựa chọn
- Điểm số kỳ vọng: Nhóm sẽ cho các bạn học sinh lựa chọn mức điểm kỳ vọng trong kỳ thi THPT Quốc gia sắp tới
Tương ứng với từng điểm số kỳ vọng của các bạn so với điểm số hiện tại mà các bạn học sinh đã làm được trong bài kiểm tra, các bạn học sinh sẽ nhận được từng lộ trình tương ứng
Trang 24Sau đây là các ma trận đề thi của một số môn học trong những năm gần đây
- Năm 2021:
+ Toán học:
Bảng 2-1 Ma trận đề thi môn Toán năm 2021
Nhận biết
Thông hiểu
Vận dụng
Vận dụng cao
Tổng
số câu Chương 1: Đạo hàm và
Thông hiểu
Vận dụng
Vận dụng cao
Tổng
số câu Chương 1: Dao động cơ 2 1 1 2 6
Trang 25Thông hiểu
Vận dụng
Vận dụng cao
Tổng
số câu Chương 1: Địa lý tự
Trang 26Thông hiểu
Vận dụng
Vận dụng cao
Tổng
số câu Chương 1: Đạo hàm và
Thông hiểu
Vận dụng
Vận dụng cao
Tổng
số câu Chương 1: Dao động cơ 3 2 3 0 8
Trang 27Thông hiểu
Vận dụng
Vận dụng cao
Tổng
số câu Chương 1: Địa lý tự
Trang 28Chương 5 Thực hành kĩ
năng địa lý
2.2 Thiết kế thuật toán để giải quyết bài toán gợi ý lộ trình luyện thi
Theo như những dữ liệu mà nhóm thu thập được về ma trận đề thi, thì nhóm đã xây dựng được giải pháp nhằm đưa ra gợi ý lộ trình luyện thi cho các bạn học sinh dựa trên 2 yếu
tố chính là: số điểm làm bài kiểm tra của hệ thống dành cho học sinh (Dựa theo ma trận chuẩn từ Bộ Giáo dục và Đào tạo) và số điểm mục tiêu mà bạn học sinh mong muốn
T = (( f∘g ) (X, Y)) Trong đó, T là lộ trình luyện thi của học sinh, f là lộ trình theo điểm mục tiêu từ hệ thống, g là lộ trình theo điểm số làm bài từ hệ thống, X là số điểm thi từ bài kiểm tra đầu vào mà học sinh làm được, Y là số điểm mục tiêu của học sinh Như chúng ta thấy, tùy thuộc vào số điểm làm bài từ bài kiểm tra đầu vào mà học sinh làm trên hệ thống khi làm khảo sát (X) và số điểm mục tiêu mà học sinh mong muốn (Y), thì hệ thống sẽ xử lý tích hợp số điểm đó vào hàm ( f∘g ) để lọc ra một bộ lộ trình phù hợp với bạn học sinh đó Như vậy, khi X, Y có sự chênh lệch càng lớn, tức số điểm hiện tại và số điểm mục tiêu của bạn học sinh chênh lệch càng lớn thì T sẽ có sự biến thiên giá trị càng nhiều
Trang 292.3 Thiết kế thuật toán để giải quyết bài toán nhận diện thẻ giáo viên
Hình 2-1 Sơ đồ thuật toán nhận diện thẻ giáo viên
Hình 2-2 Giải thuật diện hình ảnh của TerractJs
Việc nhận diện thẻ giáo viên sẽ diễn ra trong 3 bước chính:
- Quét thông tin để đọc được các trường cơ bản của thẻ
- Phân tích các trường đã đọc được và tính tỷ lệ khớp so với các trường thông tin
đã nhập lúc đăng ký
Trang 30- Đối chiếu tỷ lệ và có cách xử lý riêng cho từng mức
Công thức tính tỷ lệ với từng trường thông tin cơ bản:
𝑀𝑎𝑡𝑐ℎ = ∑ 𝐶ℎ𝑎𝑟𝑎𝑐𝑡𝑒𝑟 𝑚𝑎𝑡𝑐ℎ
𝐹𝑖𝑒𝑙𝑑 𝑙𝑒𝑛𝑔𝑡ℎ 𝑖=1
𝐹𝑖𝑒𝑙𝑑 𝑙𝑒𝑛𝑔𝑡ℎTrong đó: Match là tỷ lệ, Field length là độ dài của trường, Character match là tỷ lệ khớp theo từng ký tự
Sau khi có được tỷ lệ từng trường, tính tỷ lệ trung bình bằng cách:
𝑆 =∑ 𝑀𝑎𝑡𝑐ℎ𝑖
𝑛 𝑖=1
𝑛Trong đó: S là tỷ lệ trung bình, n là tổng số trường, 𝑀𝑎𝑡𝑐ℎ𝑖 là tỷ lệ của trường thứ i
Trang 31Chương 3 TỔNG QUAN CÔNG NGHỆ
3.1 ReactJS
Ứng dụng sử dụng ReactJS trong việc xây dựng front-end
- Xây dựng các UI Components
- Gọi API, xử lý dữ liệu gửi và nhận
- Xử lý lỗi ở phía người dùng
Các định nghĩa cơ bản về ReactJS:
- React là một thư viện JavaScript để xây dựng giao diện người dùng Nó được phát triển bởi Facebook và có một cộng đồng lớn gồm các nhà phát triển và công ty cá nhân
- React có thể được sử dụng làm cơ sở trong việc phát triển các ứng dụng một trang hoặc di động
- ReactJS cho phép Developer viết ứng dụng trực tiếp trên JavaScript Không chỉ vậy, ReactJS còn sử dụng JSX – một sự pha trộn tuyệt vời của JavaScript và HTML làm rõ toàn bộ quá trình viết cấu trúc trang web Developer giờ đây có thể tạo nên một tính năng mới và có thể xem nó xuất hiện ngay trong thời gian thực, giúp Developer có thể được đưa trực tiếp các đoạn HTML vào JavaScript
- Cho phép Developer chia nhỏ những cấu trúc UI phức tạp thành những component độc lập Developer sẽ không phải lo lắng về tổng thể ứng dụng web bởi giờ đây, họ đã có thể dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component đơn giản hơn
- Thông qua Props, các component có thể kết nối với nhau bằng cách sử dụng data tùy biến Điều này giúp chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể
- Tính năng State trong ReactJS giúp điều chỉnh trạng thái cho các component (child) nhận data từ một component nguồn (parent) Developer có thể thay đổi
Trang 32trạng thái cho nhiều component (child) trên ứng dụng nhưng không ảnh hưởng tới component gốc (parent) đang ở trạng thái Stateful
- React cung cấp nhiều công cụ out-of-the-box: Khi bạn bắt đầu những chuyến phiêu lưu với React, đừng quên cài đặt extension chính thức của React Chrome,
nó giúp debug app nhanh hơn
3.2 NodeJS
Ứng dụng sử dụng NodeJS trong việc xây dựng back-end
- Xây dựng các model và liên kết với hệ quản trị cơ sở dữ liệu
- Quản lý API
- Xây dựng các controller
Các khái niệm cơ bản trong NodeJS:
- NodeJS là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng
- NodeJS được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ
sở tại California, Hoa Kỳ Phần Core bên dưới của NodeJS được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao
- NodeJS thường được áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể
- Những đặc điểm làm nên lợi thế của NodeJS là:
+ Các ứng dụng NodeJS được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thông dụng
+ NodeJS chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả
Trang 33Event-+ Có thể chạy ứng dụng NodeJS ở bất kỳ đâu trên máy Mac – Window – Linux, hơn nữa cộng đồng NodeJS rất lớn và hoàn toàn miễn phí Cộng đồng NodeJS là rất lớn và các package đều hoàn toàn free
+ Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết
bị
3.3 MongoDB
Ứng dụng sử dụng MongoDB làm hệ quản trị cơ sở dữ liệu
- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql
và được hàng triệu người sử dụng
- MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ nhanh hơn
- Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định
3.4 Express
Ứng dụng sử dụng Express trong việc hỗ trợ xây dựng API ở back-end
- Khởi tạo server và tiếp nhận các request từ phía người dùng
- Phân chia các route thuộc các API
Express là một framework nhỏ gọn và linh hoạt dành cho NodeJS, cung cấp một bộ tính năng mạnh mẽ cho các ứng dụng web và di động Express hỗ trợ các phương thức HTTP
và middleware tạo ra một API vô cùng mạnh mẽ và dễ sử dụng Một số chức năng chính của express như sau:
- Thiết lập các lớp trung gian để trả về các HTTP request
Trang 34- Định nghĩa router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL
- Cho phép trả về các trang HTML dựa vào các tham số
Tesseract có chứa sẵn bộ dữ liệu đa ngôn ngữ phục vụ cho việc training nhận diện hình ảnh
Một số điểm nổi bật ở thư viện TesseractJS
Mã nguồn mẫu thể hiện ứng dụng của TesseractJS:
import Tesseract from 'tesseract.js';
Tesseract.recognize(<image_url>, 'vie').then(({ data: { text } }) => {
// Xử lý text sau khi đã nhận diện
});
Sau khi có được dữ liệu từ thẻ, phần text sẽ tiếp tục được so sánh với những thông tin
mà người dùng cung cấp khi đăng ký tài khoản Dựa theo tỷ lệ trùng khớp ở các text
mà có kết quả trả về phù hợp cho người dùng
Trang 35Chương 4 XÂY DỰNG HỆ THỐNG LUYỆN THI ĐẠI HỌC
4.1 Phân tích yêu cầu hệ thống
4.1.1 Phân tích yêu cầu chức năng
Cơ sở dữ liệu NoSQL
Việc chọn hệ quản trị cơ sở dữ liệu rất quan trọng trong việc phát triển ứng dụng
và tính cải tiến sau này
- Dễ dàng bổ sung các trường dữ liệu cần thiết
- Tốc độ truy xuất nhanh hơn
4.1.2 Yêu cầu tính năng
Hệ thống chạy trên nền tảng website, có khả năng truy cập ở tất cả mọi vị trí, thời điểm có kết nối internet Một vài yêu cầu mà hệ thống cần đáp ứng:
- Chức năng truy vấn: Đáp ứng yêu cầu truy vấn của người dùng như tìm kiếm, xem lại tài liệu,
- Chức năng cập nhật: Chức năng cập nhật luôn được thực hiện và giảm thiểu tối đa sai sót của người dùng
- Chức năng tải lên: Hỗ trợ lưu trữ hình ảnh đại diện, ảnh trong các đề thi, bài thi và nhập thông tin hàng loạt
4.1.3 Phân tích yêu cầu phi chức năng
- Ứng dụng sử dụng tiếng Việt, hoạt động ổn định trên nền tảng website
- Để thu hút được sinh viên hứng thú sử dụng, các thao tác trên ứng dụng phải thật đơn giản Giao diện thân thiện, giúp học sinh nhận thức được giá trị nhận lại khi sử dụng hệ thống
- Tận dụng các tài nguyên đã có tại trường như dữ liệu người dùng, dữ liệu môn học
- Các thông tin của người dùng được bảo mật và bảo đảm chỉ có những người có thẩm quyền mới có thể truy cập vào các tài nguyên cụ thể
Trang 364.1.4 Sơ đồ use case
Hình 4-1 Sơ đồ Use case tổng quan
Trang 37- Danh sách các Actor:
Bảng 4-1 Danh sách các actor
STT Tên Actor Ý nghĩa/Ghi chú
1 Admin Quản lý tài liệu, đề thi, đề thi tham khảo, người
dùng, dữ liệu của toàn hệ thống
2 User Tương tác thông qua việc xem các tài liệu, đề thi, bài
chia sẻ hoặc tham gia thi thử, làm bài tập và tra cứu thông tin
3 Teacher Đóng góp đề thi tham khảo, bài chia sẻ, bài tập và tài
liệu tham khảo
- Danh sách các Use case:
Bảng 4-2 Danh sách các use-case
STT Tên Use-case Ý nghĩa/ghi chú
1 Đăng ký tài
khoản
Cho phép người dùng đăng ký tài khoản thông thường
2 Đăng nhập Cho phép người dùng, quản trị viên đăng nhập vào hệ
thống bằng cách thông thường hoặc bằng các tài khoản khác (Facebook, Google)
3 Đổi mật khẩu Cho phép người dùng, quản trị viên đổi mật khẩu
4 Đăng xuất Cho phép người dùng, quản trị viên đăng xuất khỏi hệ
thống
Trang 385 Thi thử Người dùng tiến hành làm bài thi dựa trên thông tin đã
Người dùng có thể chỉnh sửa thông tin cá nhân
8 Tra cứu điểm
chuẩn, thông tin tuyển sinh
và trường đại học
Tra cứu điểm chuẩn của mỗi ngành ở mỗi năm của mỗi trường đại học, tra cứu thông tin tuyển sinh mới nhất của các trường đại học và tìm kiếm tất cả các trường đại học có đào tạo ngành mong muốn
9 Tham khảo tài
liệu luyện thi
Cho phép người dùng tham khảo các loại tài liệu tham khảo có trên hệ thống bao gồm: đề thi tham khảo, tài liệu tham khảo, các bài chia sẻ Đồng thời, cho phép người dung có thể tải các tài liệu này về máy
Trang 39Quản lý danh sách các tài liệu tham khảo có trên hệ thống
Làm bài khảo sát môn học để nhận lộ trình luyện thi phù hợp
Trang 40Bảng 4-3 Đặc tả use-case thi thử
Tên use-case Thi thử
Mô tả User làm bài thi trắc nghiệm giống thi đại học, có bộ
đếm thời gian và tự động nộp bài khi hết giờ Kết quả bài thi hiện ngay sau khi nộp bài và có thể xem lại ở mục đăng ký
Tiền điều kiện User đã đăng nhập và đã thực hiện điền thông tin
đăng ký thi thử trước đó
Hậu điều kiện User hoặc hệ thống (nếu hết giờ) nộp bài thi thành
- Hệ thống thông báo kết quả bài thi
Usecase mở rộng - Xem bảng xếp hạng: Xem bảng xếp hạng
tương ứng với đề thi được chọn trên hệ thống
- Xem kết quả: Xem kết quả và đáp án bài thi được chọn
- Bình luận: User có thể bình luận bên dưới bài kiểm tra để trao đổi với mọi người