Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh chuyển đổi số giáo dục, nhu cầu tổ chức kiểm tra và đánh giá năng lực người học thông qua các nền tảng trực tuyến ngày càng trở nên cấp thiết. Việc ứng dụng công nghệ thông tin vào công tác khảo thí giúp các cơ sở đào tạo tối ưu hóa thời gian, tiết kiệm tài nguyên in ấn, đồng thời nâng cao hiệu suất quản lý quy trình kiểm tra. Xuất phát từ yêu cầu thực tiễn đó, đề tài "Xây dựng website kiểm tra trắc nghiệm" được thực hiện tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (Khoa Đào tạo Chất lượng cao) nhằm cung cấp một giải pháp phần mềm trực tuyến hỗ trợ toàn diện các khâu từ quản lý lớp học, quản lý ngân hàng câu hỏi đến tổ chức thi và thống kê kết quả.
Khóa luận xác định 3 nhiệm vụ nghiên cứu cụ thể:
- Tìm hiểu về quy trình xây dựng ứng dụng web sử dụng công nghệ TypeScript.
- Nghiên cứu nền tảng Node.js, công nghệ framework Laravel (PHP), kết hợp hệ quản trị cơ sở dữ liệu MySQL và môi trường ảo hóa Docker để ứng dụng vào việc xây dựng website kiểm tra trắc nghiệm.
- Hiện thực hóa và xây dựng hoàn chỉnh website kiểm tra trắc nghiệm phục vụ 4 nhóm đối tượng người dùng.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ tổ chức kiểm tra trắc nghiệm trực tuyến, kiến trúc phần mềm web và mô hình cơ sở dữ liệu phục vụ các tác nhân: Quản trị viên (Administrator), Giáo viên (Teacher), Học sinh (Student) và Khách vãng lai (Guest).
- Phạm vi không gian và thời gian: Đề tài được triển khai trong khuôn khổ đồ án tốt nghiệp ngành Công nghệ Thông tin tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh; thời gian thực hiện kéo dài 18 tuần (từ ngày 04/03/2024 đến ngày 09/07/2024), bảo vệ vào tháng 07/2024.
Cơ sở lý thuyết và phương pháp
Đồ án vận dụng các cơ sở lý thuyết về kỹ thuật phần mềm, phân tích thiết kế hệ thống thông tin và kiến trúc ứng dụng web hướng dịch vụ (RESTful API), kết hợp các phương pháp kỹ thuật sau:
- Khảo sát hiện trạng và đối chuẩn (Benchmarking): Phân tích giao diện, tính năng và luồng hoạt động của 3 nền tảng kiểm tra trực tuyến phổ biến gồm: Shub Classroom, hệ thống thi trắc nghiệm FHQX (Đại học Sư phạm Kỹ thuật TP.HCM) và Quizizz.
- Phân tích và tiếp nhận yêu cầu nghiệp vụ: Lập danh mục yêu cầu chức năng, bảng thống kê nghiệp vụ, quy định nghiệp vụ có gắn mã (
QD-...) và biểu mẫu tương ứng (BM-...) cho từng tác nhân trong hệ thống.
- Mô hình hóa dữ liệu và quy trình: Sử dụng sơ đồ use case (Usecase Diagram), sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) và thiết kế sơ đồ lớp (Class Diagram).
- Mô hình hóa cơ sở dữ liệu quan hệ: Chuẩn hóa dữ liệu và xây dựng lược đồ cơ sở dữ liệu trên hệ quản trị MySQL bao gồm các thực thể:
users, classes, majors, questions, user_class.
- Phương pháp kiểm thử phần mềm: Áp dụng phương pháp kiểm thử chức năng (Functional/Black-box testing) để kiểm tra các luồng nghiệp vụ cốt lõi thông qua các bảng kịch bản kiểm thử cụ thể.
Nguồn dữ liệu của đề tài bao gồm dữ liệu khảo sát thực tế từ các website đối chuẩn và cấu trúc cơ sở dữ liệu thực nghiệm được xây dựng trực tiếp trong hệ thống MySQL của đồ án.
Thiết kế và triển khai
Hệ thống được thiết kế và xây dựng theo mô hình phân tách giữa giao diện người dùng và dịch vụ dữ liệu thông qua giao tiếp RESTful API:
[ Giao diện Web (TypeScript) ] <---> [ RESTful API (Laravel / Node.js) ] <---> [ MySQL Database ]
\___ Đóng gói qua Docker ___/
- Công nghệ nền tảng:
- Ngôn ngữ và nền tảng: TypeScript, Node.js, PHP (Laravel Framework).
- Hệ quản trị cơ sở dữ liệu: MySQL.
- Môi trường triển khai: Docker.
- Thiết kế luồng xử lý và thuật toán dữ liệu: Các nghiệp vụ được mô hình hóa theo chu trình khép kín:
- Tiếp nhận tương tác từ giao diện (D1, D6).
- Mở kết nối cơ sở dữ liệu (B2).
- Truy xuất và ánh xạ các trường thông tin cần thiết giữa các bảng (
users, classes, questions, majors, user_class) (B3).
- Đóng kết nối cơ sở dữ liệu (B4/B5).
- Đóng gói dữ liệu trả về mảng và kết xuất lên giao diện người dùng (B5, B6).
- Tiến độ triển khai thực tế (18 tuần):
| Giai đoạn (Tuần) |
Thời gian thực hiện |
Nhiệm vụ kỹ thuật |
Kết quả / Sản phẩm bàn giao |
| Tuần 1 + 2 + 3 |
04/03 – 18/03/2024 |
Thiết kế giao diện lớp học, bài kiểm tra, đăng nhập/đăng ký/quên mật khẩu; thiết kế CSDL tương ứng. |
Giao diện và CSDL lớp học, bài kiểm tra; chức năng xác thực hoạt động. |
| Tuần 4 + 5 |
19/03 – 31/03/2024 |
Thiết kế giao diện Admin; xây dựng chức năng bài kiểm tra, lớp học. |
Giao diện quản trị site Admin; các module lớp học và bài kiểm tra hoạt động. |
| Tuần 6 + 7 + 8 |
01/04 – 22/04/2024 |
Xây dựng chức năng quản trị Admin; thiết kế CSDL kết quả kiểm tra; thiết kế giao diện thống kê điểm số. |
Chức năng Admin hoàn thiện; giao diện thống kê điểm và thông tin tài khoản. |
| Tuần 9 + 10 + 11 |
23/04 – 13/05/2024 |
Xây dựng RESTful API cho ứng dụng; hoàn thiện các chức năng tồn đọng. |
Hệ thống RESTful API kết nối frontend và backend. |
| Tuần 12 + 13 + 14 |
14/05 – 04/06/2024 |
Kiểm thử chương trình, rà soát và sửa lỗi hệ thống. |
Ứng dụng đã kiểm thử và khắc phục lỗi vận hành. |
| Tuần 15 + Dự trữ |
04/06 – 09/07/2024 |
Hoàn thiện chương trình; biên soạn và chỉnh sửa báo cáo tốt nghiệp. |
Hệ thống hoạt động hoàn chỉnh; bản báo cáo tốt nghiệp nghiệm thu. |
- Quy trình kiểm thử chức năng: Đồ án tiến hành kiểm thử 5 ca nghiệp vụ chính: Đăng ký (
QD-GS-DK), Đăng nhập (QD-GS-DN), Quên mật khẩu (QD-GS-QM), Tạo lớp học (QD-TC-LH), Tìm kiếm lớp học (QD-ST-LH).
Nội dung chính theo từng chương
Chương 1: Khảo sát hiện trạng
Chương 1 tiến hành khảo sát và đánh giá ưu, nhược điểm về mặt giao diện và chức năng của 3 nền tảng kiểm tra trực tuyến:
- Shub Classroom (
https://shub.vn/): Bố cục phân chia rõ ràng, màu sắc tươi nhạt dễ nhìn; hỗ trợ đầy đủ chức năng cơ bản của website kiểm tra trắc nghiệm, phân loại bài kiểm tra thành ôn tập và kỳ thi với hai hình thức trắc nghiệm và tự luận; hệ thống vận hành ổn định.
- FHQX - Đại học Sư phạm Kỹ thuật TP.HCM (
https://fhqx.vn): Giao diện xanh trắng hài hòa, dễ sử dụng, hỗ trợ kiểm tra trắc nghiệm (cho phép chọn một hoặc nhiều đáp án) và tự luận, hiển thị đồng hồ đếm giờ; nhược điểm ghi nhận là đôi khi bị văng ra trang đăng nhập.
- Quizizz (
https://quizizz.com/): Giao diện nhiều màu sắc, âm thanh sống động, hình thức kiểm tra mang tính trò chơi hóa có bảng xếp hạng và phụ kiện tăng điểm; nhược điểm là font chữ tiếng Việt bị lỗi hiển thị.
Chương 2: Tiếp nhận yêu cầu
Chương 2 phân loại 4 nhóm tác nhân và thiết lập hệ thống bảng thống kê nghiệp vụ, quy định nghiệp vụ và mã biểu mẫu:
- Administrator: 6 nghiệp vụ chính gồm Quản lý lớp học (
QD-AD-LH, BM-AD-LH), Quản lý tài khoản (QD-AD-TK, BM-AD-TK), Quản lý câu hỏi mẫu (QD-AD-CH, BM-AD-CH), Quản lý môn học (QD-AD-MH, BM-AD-MH), Đăng xuất (QD-AD-DX, BM-AD-DX), Quản lý thông tin tài khoản (QD-AD-TT, BM-AD-TT).
- Teacher: 10 nghiệp vụ gồm Đăng xuất (
QD-TC-DX), Quản lý lớp học (QD-TC-LH), Quản lý bài kiểm tra (QD-TC-KT), Quản lý học sinh (QD-TC-HS), Thêm học sinh vào lớp qua email (QD-TC-TH), Đuổi học sinh ra khỏi lớp (QD-TC-DR), Phê duyệt đơn xin vào lớp (QD-TC-PD), Quản lý thông báo (QD-TC-TB), Tra cứu câu hỏi mẫu (QD-TC-CHM), Quản lý thông tin tài khoản (QD-TC-TT).
- Student: 15 nghiệp vụ gồm Đăng xuất, Tra cứu lớp học, Xem thông tin lớp chưa tham gia, Xin vào lớp (nội dung đơn không quá 255 ký tự -
QD-ST-XV), Hủy đơn xin vào lớp, Vào lớp học, Rời khỏi lớp, Xem thông báo, Đánh dấu thông báo đã đọc, Tra cứu bài kiểm tra công khai, Xem thông tin bài kiểm tra, Làm bài kiểm tra có giới hạn thời gian, Xem điểm, Xem nhật ký hoạt động (hiển thị 4 hoạt động gần nhất - QD-ST-NK), Quản lý thông tin tài khoản.
- Guest: 3 nghiệp vụ xác thực gồm Đăng nhập (
QD-GS-DN), Đăng ký bằng tên đăng nhập và email (QD-GS-DK), Quên mật khẩu (gửi link cài đặt lại mật khẩu qua email - QD-GS-QM).
Chương 3: Mô hình hóa yêu cầu và thiết kế CSDL
Chương 3 xây dựng sơ đồ luồng dữ liệu (DFD) chi tiết cùng thuật toán truy xuất cơ sở dữ liệu cho từng thao tác của từng vai trò, đồng thời xác lập lược đồ cơ sở dữ liệu quan hệ gồm các bảng chính:
- Bảng
classes: lưu trữ id, name, host_id, student_amount, start_time, end_time, is_active, is_public, created_at.
- Bảng
users: lưu trữ id, login_id, name, phone, email, role, image_url, password, is_active, created_at, updated_at.
- Bảng
questions: lưu trữ id, content, author_id, major_id, hash, active, point, is_multiple, is_public.
- Bảng
majors: lưu trữ id, name, description, percent_pass, is_active.
- Bảng
user_class: liên kết quan hệ nhiều-nhiều giữa người dùng và lớp học (class_id, participant_id, student_count).
Chương 4: Thiết kế giao diện và xử lý
Chương 4 đặc tả chi tiết danh mục màn hình giao diện người dùng tương ứng với 4 nhóm vai trò:
- Giao diện Administrator (7 màn hình): Quản lý tài khoản, Quản lý lớp học, Quản lý môn học, Quản lý câu hỏi mẫu, Quản lý thông tin tài khoản, Đổi mật khẩu, Chỉnh sửa thông tin tài khoản.
- Giao diện Teacher (14 màn hình): Trang chủ, Danh sách lớp học, Thêm lớp học, Chi tiết lớp học, Quản lý thông báo, Thêm/chỉnh sửa thông báo, Danh sách đơn xin vào lớp, Thông tin học sinh xin vào lớp, Danh sách học sinh trong lớp, Thông tin học sinh, Danh sách bài kiểm tra, Tạo bài kiểm tra, Chi tiết bài kiểm tra, Ngân hàng câu hỏi.
- Giao diện Student (10 màn hình): Trang chủ, Danh sách lớp học, Thông tin lớp chưa tham gia, Đơn xin tham gia lớp học, Thông tin lớp học, Danh sách bài kiểm tra công khai, Thông tin bài kiểm tra, Làm bài kiểm tra, Danh sách câu hỏi đã trả lời, Kết quả bài kiểm tra.
- Giao diện Guest (4 màn hình): Đăng nhập, Đăng ký, Quên mật khẩu, Cài đặt lại mật khẩu.
Chương 5: Lập trình
Chương 5 trình bày việc hiện thực hóa các chức năng bằng ngôn ngữ lập trình TypeScript ở phía giao diện, PHP với Laravel Framework và Node.js ở phía máy chủ kết hợp RESTful API; cấu hình hệ quản trị cơ sở dữ liệu MySQL và xây dựng sơ đồ lớp (Class Diagram) phục vụ triển khai mã nguồn.
Chương 6: Kiểm thử
Chương 6 tiến hành kiểm tra các chức năng cơ bản của hệ thống thông qua các bảng dữ liệu kiểm thử, xác nhận tính chính xác của các luồng xử lý: Đăng ký, Đăng nhập, Quên mật khẩu, Tạo lớp học và Tìm kiếm lớp học.
Kết quả và đóng góp
- Kết quả đạt được:
- Hoàn thành xây dựng website kiểm tra trắc nghiệm trực tuyến với đầy đủ giao diện và chức năng cho 4 phân hệ người dùng (Admin, Teacher, Student, Guest).
- Triển khai thành công kiến trúc RESTful API kết nối giữa TypeScript, Laravel/Node.js và MySQL trong môi trường Docker.
- Xây dựng hệ thống cơ sở dữ liệu hoàn chỉnh quản lý lớp học, học sinh, câu hỏi, bài kiểm tra và lịch sử hoạt động.
- Giải pháp đề xuất trong hệ thống:
- Cơ chế duyệt thành viên vào lớp học thông qua đơn xin gia nhập (giới hạn 255 ký tự) hoặc thêm trực tiếp qua địa chỉ email.
- Phân quyền ngân hàng câu hỏi mẫu theo môn học (
majors) và cơ chế ẩn câu hỏi không phù hợp của quản trị viên.
- Chức năng theo dõi nhật ký ghi nhận 4 hoạt động gần nhất của học sinh.
- Đóng góp của đề tài:
- Hệ thống hóa quy trình nghiệp vụ kiểm tra trắc nghiệm trường học thành các bảng mã quy định (
QD) và biểu mẫu chuẩn (BM).
- Cung cấp mô hình phân tích chi tiết sơ đồ luồng dữ liệu (DFD) và mô tả thuật toán truy xuất CSDL phục vụ phát triển ứng dụng kiểm tra trực tuyến.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Thời gian thực hiện đồ án ngắn (18 tuần), kiến thức và kinh nghiệm thực tế của nhóm còn hạn chế.
- Phạm vi kiểm thử mới tập trung chủ yếu vào các ca kiểm thử chức năng cơ bản của quá trình xác thực và tạo/tìm kiếm lớp học, chưa bao quát toàn bộ các kịch bản kiểm thử tải hoặc bảo mật chuyên sâu.
- Hướng phát triển:
- Tiếp tục nâng cấp và hoàn thiện các chức năng chưa tối ưu trên hệ thống.
- Nghiên cứu mở rộng thêm các thuật toán tạo đề thi tự động, chống gian lận và các hình thức câu hỏi đa phương tiện nâng cao.
Giá trị tham khảo
- Đối tượng tham khảo: Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm đang thực hiện đồ án tốt nghiệp hoặc các dự án môn học về xây dựng hệ thống quản lý học tập (LMS) và phần mềm thi trực tuyến.
- Phần giá trị nhất của tài liệu:
- Quy trình phân tích nghiệp vụ với hệ thống bảng mã hóa quy định (
QD-AD-..., QD-TC-..., QD-ST-..., QD-GS-...) và biểu mẫu tương ứng (BM-...).
- Mô hình luồng dữ liệu DFD kèm thuật toán truy xuất dữ liệu chi tiết cho từng nghiệp vụ (từ D1 đến D6).
- Bản kế hoạch triển khai dự án chi tiết theo từng tuần (tuần 1 đến tuần 18).
Câu hỏi thường gặp
1. Đề tài đã khảo sát và đối chuẩn những nền tảng thi trắc nghiệm trực tuyến nào?
Đề tài khảo sát 3 nền tảng: Shub Classroom (shub.vn), trang web thi trắc nghiệm FHQX của Trường Đại học Sư phạm Kỹ thuật TP.HCM (fhqx.vn) và Quizizz (quizizz.com).
2. Hệ thống phân chia người dùng thành bao nhiêu nhóm đối tượng và vai trò là gì?
Hệ thống gồm 4 nhóm: Administrator (quản lý tài khoản, lớp học, môn học, câu hỏi mẫu), Teacher (quản lý lớp, học sinh, bài kiểm tra, thông báo), Student (tham gia lớp, làm bài kiểm tra, xem điểm, theo dõi nhật ký hoạt động) và Guest (đăng ký, đăng nhập, quên mật khẩu).
3. Công nghệ và cơ sở dữ liệu nào được sử dụng để xây dựng hệ thống?
Hệ thống sử dụng TypeScript, Node.js, PHP (Laravel Framework), hệ quản trị cơ sở dữ liệu MySQL, xây dựng theo kiến trúc RESTful API và đóng gói trong môi trường Docker.
4. Nghiệp vụ "Xin vào lớp học" của học sinh có những quy định ràng buộc nào?
Theo quy định mã QD-ST-XV, học sinh chỉ được viết đơn xin vào lớp chưa tham gia với độ dài không quá 255 ký tự; học sinh có quyền hủy đơn (QD-ST-HD) và việc tham gia chỉ hoàn tất khi giáo viên phê duyệt đơn (QD-TC-PD).
5. Cấu trúc bảng câu hỏi (questions) trong cơ sở dữ liệu gồm những trường thông tin nào?
Bảng questions lưu trữ các trường: id, content, author_id, major_id, hash, active, point, is_multiple và is_public.
Kết luận
Đồ án "Xây dựng website kiểm tra trắc nghiệm" của sinh viên Lê Trần Minh Nhựt và Nguyễn Thị Xuân Thanh đã hoàn thành đầy đủ các nhiệm vụ đặt ra trong thời gian 18 tuần nghiên cứu. Nhóm tác giả đã hoàn thiện quy trình phân tích nghiệp vụ, thiết kế cơ sở dữ liệu quan hệ, xây dựng giao diện và phát triển hệ thống RESTful API dựa trên TypeScript, Laravel, Node.js và MySQL. Đề tài cung cấp tài liệu tham khảo có cấu trúc rõ ràng về phương pháp mô hình hóa luồng dữ liệu và phân quyền hệ thống thi trực tuyến trong môi trường giáo dục.