ThiTrucTuyen là giải pháp phần mềm mã nguồn mở kết hợp giữa Nền tảng Quản lý Học tập (LMS) và Hệ thống Tổ chức Thi & Khảo sát Năng lực Trực tuyến chuyên sâu (Trắc nghiệm + Tự luận). Dự án giải quyết trọn vẹn bài toán số hóa quy trình giảng dạy, quản lý lớp học và tổ chức thi cử cho các trường phổ thông, trung tâm bồi dưỡng kiến thức, lớp học chuyên đề cũng như các nhóm gia sư dạy thêm.
Hệ thống được phát triển trên nền tảng Laravel 11 / 13, vận hành tối ưu trên PHP 8.3+, giao diện dựng bằng Bootstrap 5, hỗ trợ hiển thị công thức Toán học bằng LaTeX / MathJax, tích hợp Google Gemini AI xử lý đề thi và tích hợp cơ chế chống gian lận đa tầng.
1. Kiến trúc Tính năng Cốt lõi
Phân loại Đề thi Đa tầng & Tách biệt Luồng hiển thị
-
3 Chế độ phân loại: Đề thi chính thức (
de_thi- thi học kỳ, khảo sát), Đề kiểm tra (kiem_tra- 15 phút, 1 tiết), và Thuộc khóa học (khoa_hoc- gắn liền bài học LMS). -
Cơ chế hiển thị độc lập: Đề thi gắn nhãn
khoa_hockhông bao giờ xuất hiện ở mục "Đề thi & Bài kiểm tra cần làm" trên Dashboard hay trang/examschung. Học sinh chỉ thấy và làm bài khi truy cập đúng bài giảng trong khóa học. -
Bộ lọc quản trị: Phân tách rõ ràng trên giao diện Admin/Giáo viên qua các tab bộ lọc và dropdown khóa học, tự động đồng bộ cờ
khoa_hockhi gán bài thi.
Quản lý Khóa học & Giáo trình LMS Đa phương tiện
-
Trình biên soạn giáo trình: Hỗ trợ bài giảng Video (YouTube Unlisted, Vimeo, Google Drive, MP4), bài đọc HTML chuẩn LaTeX/MathJax, tài liệu tải về (PDF, Word, PowerPoint, Excel, ZIP) và bài kiểm tra gắn kèm.
-
Kiểm soát lộ trình (Drip Content & Prerequisites): Yêu cầu hoàn thành bài học trước mới được mở bài tiếp theo, hẹn giờ mở bài tự động theo lịch thực tế, hỗ trợ chế độ học thử (Free Preview).
-
Không gian lớp học cô lập: Khóa học gán riêng cho từng lớp học, ngăn chặn học sinh lớp khác truy cập ngoài phạm vi.
Trợ lý Trí tuệ Nhân tạo Google Gemini AI
-
Tự động bóc tách đề thi (AI Import): Nhận diện từ file
.pdf,.docx,.txthoặc ảnh chụp.png,.jpgđể trích xuất câu hỏi, mức độ khó, đáp án đúng và lời giải chi tiết. Tích hợp sẵn công cụ cắt ảnh minh họa (Crop Image Tool) lưu thẳng vào thư mục web. -
Cố vấn Sư phạm AI: Phân tích ma trận kiến thức, chỉ ra 5 lỗ hổng tư duy của từng học sinh sau bài nộp.
-
Chế độ Toàn màn hình (Fullscreen Modal): Cung cấp lộ trình bồi dưỡng 3 tuần, khung lời phê mẫu và gợi ý điều chỉnh giáo án cho thầy cô.
Cơ chế Đánh giá & Chống gian lận Phòng thi
-
5 Dạng câu hỏi: Trắc nghiệm 1 đáp án, trắc nghiệm nhiều đáp án, Đúng/Sai, Điền khuyết/Trả lời ngắn và Tự luận (cho phép gõ trực tiếp hoặc nộp ảnh bài làm viết tay).
-
Bảo toàn dữ liệu lịch sử (
question_snapshot): Chụp ảnh nguyên trạng câu hỏi và phương án làm bài tại thời điểm thi. Dù ngân hàng gốc bị sửa đổi, kết quả và đề thi cũ của học sinh vẫn giữ nguyên vẹn 100%. -
Chống gian lận (Anti-Cheat Engine): Giám sát và đếm số lần chuyển tab (tự động nộp bài nếu vượt ngưỡng), chặn chuột phải, vô hiệu hóa phím tắt mở DevTools, chặn copy/paste và khóa xem lời giải trước giờ chỉ định.
-
Tự động lưu ngầm (AJAX Auto-save): Tránh mất dữ liệu bài làm khi gặp sự cố điện hoặc rớt mạng.
Giải pháp Lưu trữ Hình ảnh Chống đứt gãy Symlink
-
Toàn bộ ảnh minh họa trong ngân hàng câu hỏi được ghi trực tiếp vào
public/storage/questions/(kèm bản sao dự phòng tạistorage/app/public/questions/). Thiết kế này giải quyết triệt để lỗi ảnh 404 thường gặp khi chạy trên Windows, XAMPP hoặc môi trường cPanel Shared Hosting không hỗ trợ symlink dòng lệnh.
2. Bảng Phân quyền Người dùng
| Vai trò | Phạm vi & Quyền hạn thực thi |
| Quản trị viên (Admin) | Quản lý danh mục khối (1–12), lớp học, môn học, niên khóa; phân công giảng dạy; import học sinh hàng loạt từ Excel; kiểm soát phiên đăng nhập và bảo trì CSDL tại /admin/database-manage. |
| Giáo viên (Teacher) | Quản lý khóa học, bài giảng theo môn được phân công; biên soạn ngân hàng câu hỏi; nhập đề tự động qua Gemini AI; tạo đề thi; chấm điểm tự luận kèm nhận xét AI; xuất phổ điểm Excel (hỗ trợ UTF-8 BOM). |
| Học sinh (Student) | Xem Dashboard nhiệm vụ cần làm; tham gia khóa học LMS (video, lý thuyết, thảo luận); làm bài thi trắc nghiệm & tự luận; xem lại lịch sử làm bài, điểm số và lời giải chi tiết. |
| Phụ huynh (Parent) | Theo dõi tiến độ học tập, lịch sử nộp bài và kết quả điểm số định kỳ của con em. |
3. Yêu cầu Môi trường
-
PHP: $\ge$ 8.3 (yêu cầu extensions:
pdo_mysql,mbstring,openssl,xml,zip,gd/fileinfo,curl). -
Cơ sở dữ liệu: MySQL 8.0+ / MariaDB 10.4+ (hỗ trợ SQLite cho môi trường kiểm thử/dev nhanh).
-
Package Managers: Composer cho PHP, Node.js & NPM cho frontend.
-
Web Server: Apache (bật
mod_rewrite) hoặc Nginx.
4. Tính Năng Tự Phục Hồi (Self-Healing) & Bảo Trì
Hệ thống được lập trình cơ chế tự thích ứng cấu trúc: các Eloquent Models trọng yếu (Exam, Lesson, QuestionBank...) đều tích hợp sẵn phương thức kiểm tra schema động ensureColumnsExist(). Nếu phát hiện bảng thiếu cột do quá trình cập nhật phiên bản, hệ thống sẽ tự động bổ sung cột cần thiết mà không làm gián đoạn các phiên làm việc của người dùng. Toàn bộ lịch sử thay đổi qua các phiên bản được ghi nhận chi tiết tại tệp nhat_ky_cong_viec.md.