Skip to content

Liêm chính học thuật ​

Tập hợp các công cụ giúp phát hiện và phòng ngừa gian lận trong bài thi, quiz và bài tập. Trang này là bản đồ: mỗi mục nói màn hình nằm ở đâu, nó trả lời được câu gì, và — quan trọng không kém — nó không trả lời được câu gì.

Đọc mục này trước mọi mục khác

Không công cụ nào trong trang này chứng minh một hành vi gian lận. Tất cả đều sinh ra câu hỏi cho người phụ trách đọc, không sinh ra phán quyết. Không có màn hình nào tự trừ điểm, tự chặn bài nộp, hay tự gửi thông báo buộc tội học viên — mọi hậu quả (nếu có) do con người quyết định, theo quy chế của cơ sở đào tạo.

Hệ quả thực tế: bật một công cụ mà không có người đọc kết quả thì không bằng không bật — nó chỉ tạo ra một hàng đợi không ai mở.

Những gì hệ thống cố ý KHÔNG làm ​

Đây là lựa chọn thiết kế, không phải tính năng còn thiếu:

Không làmVì sao
Giám sát qua webcam / micro / ảnh chụp màn hìnhLà dữ liệu sinh trắc học và dữ liệu cá nhân nhạy cảm theo Luật Bảo vệ dữ liệu cá nhân 91/2025/QH15, kéo theo nghĩa vụ đánh giá tác động và lưu trữ mà một LMS không nên gánh thay cơ sở đào tạo
Khoá trình duyệt / chặn ứng dụng khácCần cài phần mềm lên máy học viên; phá vỡ khả năng học trên điện thoại, và vẫn vượt được bằng một chiếc điện thoại thứ hai
Phát hiện "văn bản do AI viết"Các công cụ này gắn cờ nhầm bài do người viết trong 10–20% trường hợp và lệch hẳn về phía người viết bằng ngoại ngữ — tức sai nhiều nhất với học viên Việt Nam viết tiếng Anh. Thay thế: khai báo sử dụng AI
Gửi bài nộp ra dịch vụ chống đạo văn bên ngoàiBài nộp là dữ liệu cá nhân của người học; chuyển ra bên thứ ba cần cơ sở pháp lý riêng. Đối chiếu chạy trong nội bộ từng tenant

Bản đồ màn hình ​

ViệcVào đâuQuyền cần có
Bật cam kết liêm chính trước giờ thiCài đặt → Học tập → thẻ Cam kết liêm chínhconfigure_exam_integrity
Xáo thứ tự phương ánTrang sửa đề thi / hoạt động Quizquyền sửa đề / hoạt động
Chính sách hiện đáp án của quizTrang sửa hoạt động Quizquyền sửa hoạt động
Bắt buộc khai báo dùng AITrang sửa hoạt động Bài tậpquyền sửa hoạt động
Ghi nhật ký soạn thảo bài tậpTrang sửa hoạt động Bài tậpquyền sửa hoạt động
Cảnh báo mức trùng đềTrang sửa đề thi → khối Bản thiết kế đềquyền xem đề
Nhật ký thao tác của một phiên thiLượt thi → Xem bài làm → khối Nhật ký thao tácquyền xem lượt thi
Rà soát thời gian xem videoLệnh chạy tay (không có màn hình)quyền chạy lệnh trên máy chủ
Hàng đợi cờ liêm chínhNhóm Kiểm tra → Liêm chính học thuậtview_any_integrity_flag
Chốt sổ bảng điểm đợt thiLịch thi → Báo cáo đợt thiseal_exam_schedule

Cam kết liêm chính trước giờ thi ​

Cài đặt → Học tập → Cam kết liêm chính. Mặc định tắt.

Khi bật, thí sinh phải đọc và bấm xác nhận một bản cam kết trước khi phiên thi được tạo. Hệ thống lưu dấu thời gian và mã băm của chính văn bản họ đã đọc.

  • Đây là biện pháp rẻ nhất và có bằng chứng thực nghiệm tốt nhất trong cả nhóm: nghiên cứu về quy tắc danh dự cho thấy một lời nhắc về liêm chính ngay trước bài thi làm giảm gian lận đo được. Nó không chặn ai, không thu thập gì, không có dương tính giả.
  • Nó cũng là thứ bước xử lý kỷ luật cần tới về sau: khó nói "em không biết đó là vi phạm" khi có dấu thời gian của chính học viên trên đúng bản quy chế đang hiệu lực.
  • Văn bản cam kết sửa được và nên viết lại theo quy chế của trường bạn. Bản mặc định viết ở ngôi thứ nhất ("Tôi cam kết…") một cách có chủ ý — câu ở ngôi thứ nhất buộc người đọc nhận lấy lời hứa, câu kiểu "Học viên phải…" thì không.

Mã băm chứng minh được sự KHÁC BIỆT, không khôi phục được nội dung

Nếu bạn sửa văn bản cam kết, mã băm cho phép chứng minh "bản học viên đã đọc khác bản đang hiển thị" — nhưng không dựng lại được nguyên văn bản cũ. Muốn đối chiếu từng chữ khi có tranh chấp, cơ sở đào tạo phải tự lưu lịch sử các bản quy chế của mình.

Cửa sổ thi vẫn chạy trong lúc thí sinh đọc cam kết

Trang cam kết không dừng đồng hồ của đợt thi. Thí sinh vào sát giờ đóng và đọc lâu có thể mất lượt. Hãy nói điều này khi thông báo lịch thi.

Giảm mức trùng đề ​

Xáo thứ tự phương án ​

Bật trên đề thi và trên hoạt động Quiz. Mỗi phiên thi (và mỗi lượt làm quiz) nhận một thứ tự phương án riêng, nên câu "câu 3 chọn B" không còn nghĩa gì giữa hai thí sinh.

Chỉ áp dụng cho câu một lựa chọn và nhiều lựa chọn.

Tắt khi đề có phương án "Tất cả các đáp án trên"

Xáo thứ tự làm loại phương án này trở nên vô nghĩa hoặc sai. Nếu ngân hàng đề của bạn có chúng, hãy sửa đề hoặc tắt xáo cho đề đó.

Cảnh báo mức trùng đề ​

Trang sửa đề thi → khối Bản thiết kế đề. Ngoài bảng "mỗi chủ đề cần bao nhiêu / có bao nhiêu", khối này in ra hai con số:

  • Mức trùng đề — hai thí sinh bất kỳ nhận chung khoảng bao nhiêu phần trăm số câu. Từ 50% trở lên hiện màu cảnh báo.
  • Số câu có mặt trong MỌI đề — những câu mà ô của chúng phải lấy hết, nên rút ngẫu nhiên không có tác dụng gì: thí sinh thi sau biết trước chúng sẽ ra.

Cách giảm: thêm câu vào ngân hàng của đề. Giảm số câu mỗi đề không giúp nhiều — mức trùng đi theo tỉ lệ rút trên từng ô chủ đề × độ khó, nên rút 10/20 và rút 20/40 cho cùng một mức trùng.

Khi con số hiện dưới dạng "ÍT NHẤT :percent%"

Nghĩa là có ô chủ đề đang thiếu câu nên bộ chọn phải mượn chéo sang ô khác. Mức trùng thật không thể thấp hơn con số đang hiện, nhưng có thể cao hơn. Bù đủ câu cho các ô đang thiếu rồi xem lại.

Con số này nói về cấu trúc đề, KHÔNG nói đề đã bị lộ ra ngoài

Một đề có mức trùng 20% vẫn có thể đã bị chụp màn hình và phát tán. Đây là hai vấn đề khác nhau và chỉ vấn đề thứ nhất đo được từ trong hệ thống.

Chính sách hiện đáp án của quiz ​

Trang sửa hoạt động Quiz → Khi nào hiện đáp án đúng:

Lựa chọnDùng khi
Ngay sau mỗi lượt nộpBài luyện tập, không tính điểm nghiêm ngặt
Sau khi học viên hết lượtBài có giới hạn lượt và có tính điểm
Không bao giờ hiệnBài không giới hạn lượt, hoặc ngân hàng câu cần dùng lại cho khoá sau

Bẫy kinh điển: giới hạn lượt + hiện đáp án ngay

Học viên nộp bừa lượt đầu, đọc đáp án, làm lại được điểm tối đa. Với cách chấm "lượt tốt nhất" thì sổ điểm không để lại dấu vết nào. Form soạn hoạt động hiện cảnh báo đỏ khi bạn chọn đúng tổ hợp này.

"Sau khi hết lượt" trên bài KHÔNG giới hạn lượt = không bao giờ hiện

Nếu đó là điều bạn muốn, hãy chọn thẳng "Không bao giờ hiện" cho rõ ràng. Form cũng nhắc điều này.

Khi đáp án bị giữ lại, hệ thống giữ nhất quán ở mọi cửa: trang kết quả, xem lại lượt cũ, danh sách câu hỏi, hàng ôn tập lặp ngắt quãng (SRS) và bộ sinh bài luyện tập đều không rò đáp án ra. Học viên thấy một dòng nói rõ lý do chứ không phải một ô trống.

Khai báo sử dụng AI ​

Trang sửa hoạt động Bài tập → Bắt buộc khai báo sử dụng AI. Mặc định tắt, cho cả bài cũ lẫn bài soạn mới.

Vì sao không bật sẵn cho bài mới

Một trường bắt buộc thì chặn người nộp bài, nên nó phải là lựa chọn tường minh của người soạn — khác với xáo thứ tự phương án, thứ không chặn ai. Thêm nữa, màn hình duy nhất để người chấm đọc lời khai nằm trong module Quản lý đào tạo; tổ chức không bật module đó mà lại bắt khai báo thì học viên bị chặn chỉ để tạo ra một bản ghi không ai đọc được.

Học viên chọn một trong bốn mức (không dùng / dùng tìm ý tưởng / dùng sửa diễn đạt / AI sinh nội dung), và mọi mức khác "không dùng" bắt buộc kèm một dòng mô tả cụ thể.

Đừng bật giữa chừng cho bài học viên đang làm dở

Người đang ở bước nộp sẽ bị chặn bởi một ô họ chưa từng thấy lúc bắt đầu. Đó là lý do cột này mặc định tắt cho bài cũ. Bật khi bắt đầu một đợt mới, và báo trước cho lớp.

Lời khai không được đưa vào prompt chấm điểm của AI — nó là chữ do học viên kiểm soát, đưa vào là mở một đường tác động lên điểm số. Nó sinh ra để người chấm đọc.

Giá trị thật của cơ chế này là nó đổi bản chất vấn đề: từ "chứng minh em đã dùng AI" — không chứng minh được — sang "em khai sai", một việc đối chiếu được với bài làm.

Nhật ký soạn thảo bài tập ​

Trang sửa hoạt động Bài tập → Ghi nhật ký soạn thảo. Mặc định tắt.

Trả lời một câu mà bài nộp cuối cùng không trả lời được: bài này được viết như thế nào.

Ghi lạiNguồnNội dung
Lúc mở ô soạn bàiMáy chủ—
Mỗi lần dánTrình duyệtĐộ dài đoạn dán
Lúc nộpMáy chủSố ký tự gõ tay, số ký tự dán, độ dài bài

Không lưu một chữ nào của bài làm

Đây là điểm quan trọng nhất và cũng là điểm khác với các công cụ "phát lại quá trình viết" mà bạn có thể đã gặp: hệ thống không lưu bản nháp theo chu kỳ. Thứ cần trả lời là bài được viết thế nào, và độ dài trả lời được câu đó — một bài 2.000 ký tự trong đó 1.980 đến từ một lần dán lúc 23:47 là một dữ kiện đủ rõ. Nội dung bản nháp không thêm gì vào dữ kiện ấy, mà lại tạo ra một kho văn bản chưa hoàn thiện của người học, kèm nghĩa vụ hạn lưu, quyền xem và xoá theo Luật 91/2025.

Bật thì học viên NHÌN THẤY

Ô soạn bài hiện một dòng báo nói cả hai vế — ghi gì, và không ghi gì — cùng một câu nói rõ dán không bị phạt. Dòng đó không tắt được, và đó là chủ ý: nhật ký soạn thảo quan sát học viên trong lúc họ làm việc (khác mọi công cụ khác trên trang này, vốn chỉ đọc thứ đã nộp). Ghi mà không nói là thu thập lén.

Không có cờ tự động, và lý do đáng đọc ​

Nhật ký này không nêu cờ vào hàng đợi liêm chính. Không phải vì chưa làm — vì làm thì sai:

Tài liệu của chính hệ thống này khuyên học viên "soạn ở editor ngoài (Notion, Google Docs) trước rồi paste — tránh mất bài nếu trình duyệt sập". Một bộ phát hiện nêu cờ khi thấy dán sẽ có tỉ lệ dương tính giả do chính lời khuyên của chúng ta sinh ra.

Nên nhật ký chỉ hiện cạnh bài nộp trong màn hình chấm bài, kèm hai dòng cảnh báo in sẵn. Muốn đổi điều đó về sau thì việc đầu tiên là đo tỉ lệ nền trên dữ liệu thật, không phải chọn một ngưỡng.

Đọc nó thế nào ​

Màn hình chấm bài (Quản lý đào tạo → bảng tiến độ học viên → khối bài nộp) hiện dòng tổng kết dạng "Bài dài 2.000 ký tự — gõ tay 20, dán 1.980", rồi tới danh sách sự kiện theo thời gian.

  • Gõ tay + dán không bằng độ dài bài là chuyện bình thường — học viên xoá bớt, viết lại, hoặc nộp lần hai (bộ đếm tính theo lần soạn, còn độ dài là của cả bài). Màn hình tự hiện một dòng nhắc khi hai số không khớp.
  • Không có lần dán nào thì không chứng minh được gì. Sự kiện dán do trình duyệt báo: học viên tắt được (chặn JS) và bịa được. Chỉ mốc mở ô soạn và mốc nộp là do máy chủ ghi.
  • Mỗi lần nộp lại có mốc mở của riêng nó, nên bạn đọc được từng lần soạn tách bạch.

Giới hạn và hạn lưu ​

  • Tối đa 200 sự kiện mỗi bài nộp. Chạm trần thì dừng ghi sự kiện từ trình duyệt; dòng nộp bài vẫn luôn được ghi.
  • Độ dài một đoạn dán bị kẹp ở 1.000.000 ký tự và đánh dấu rõ — trình duyệt báo lên được bất kỳ con số nào, in thẳng ra là một con số bịa trông như đo được.
  • Hạn lưu 730 ngày, dọn bằng lệnh chạy tay:
bash
# xem trước, không xoá
php artisan tenants:run assignment:prune-draft-events --tenants=<tenant> --option="pretend=1"
# chạy thật
php artisan tenants:run assignment:prune-draft-events --tenants=<tenant>

Xoá cứng, không thùng rác, không hoàn tác

Như lệnh dọn nhật ký phiên thi: chạy pretend=1 trước lần chạy thật đầu tiên trên một tenant. Sàn tối thiểu 30 ngày.

Nhật ký thao tác của phiên thi ​

Lượt thi → nút Xem bài làm → khối Nhật ký thao tác.

Nhật ký chia hai nguồn, và sự khác nhau giữa chúng là điều quan trọng nhất trên màn hình này:

NguồnSự kiệnTin được đến đâu
Hệ thốngBắt đầu làm bài, Nộp bài, Tự nộp do hết giờKhông giả mạo được, không bỏ sót được
Trình duyệtRời khỏi tab, Quay lại tab, Dán nội dungThí sinh tắt được (chặn JS) và bịa được

Nhật ký sạch KHÔNG phải bằng chứng ngoại phạm

Không có sự kiện nào có thể nghĩa là thí sinh làm bài nghiêm túc — mà cũng có thể nghĩa là họ đã tắt JavaScript. Có sự kiện là một dữ kiện đáng xem; không có sự kiện thì không chứng minh được gì. Màn hình in sẵn cảnh báo này; đừng để người chấm đọc "0 lần rời tab" thành lời bào chữa.

Rời tab không phải là gian lận

Thông báo đẩy, cuộc gọi đến, xoay màn hình điện thoại đều sinh ra focus_lost. Hệ thống không trừ điểm theo con số này và không kết luận gì. Nó là tư liệu để đọc khi đã có lý do khác để xem lại một phiên.

Hệ thống cũng lưu, cho từng câu: thời điểm trả lời lần đầu và số lần đổi đáp án. Tín hiệu đáng chú ý nằm ở đầu thấp — chọn một lần rồi không bao giờ đổi, trên toàn bộ bài, trong thời gian rất ngắn. Đổi đáp án nhiều lần là dấu hiệu của một người đang suy nghĩ, không phải dấu hiệu xấu.

Giới hạn và hạn lưu ​

  • Mỗi phiên ghi tối đa 500 sự kiện. Chạm trần thì dừng ghi sự kiện từ trình duyệt (sự kiện hệ thống vẫn ghi) — chặn một tab treo trong vòng lặp bơm hàng vạn dòng.
  • IP và user agent được băm, không lưu thô. Câu duy nhất trả lời được là "hai phiên này có cùng một đường truyền không".
  • Hạn lưu mặc định 730 ngày, dọn bằng lệnh chạy tay:
bash
# xem trước, không xoá
php artisan tenants:run examination:prune-session-events --tenants=<tenant> --option="pretend=1"
# chạy thật
php artisan tenants:run examination:prune-session-events --tenants=<tenant>

Xoá cứng, không thùng rác, không hoàn tác

Luôn chạy pretend=1 trước lần chạy thật đầu tiên trên một tenant. Hạn tối thiểu là 30 ngày — gõ nhầm days=1 sẽ bị từ chối.

Đối chiếu bài nộp giống nhau ​

Lệnh chạy tay, không tự chạy theo lịch:

bash
# xem trước, không ghi cờ — chạy được cả khi module hàng đợi chưa bật
php artisan integrity:scan-text-similarity --tenant=<tenant> --pretend
# quét một hoạt động cụ thể
php artisan integrity:scan-text-similarity --tenant=<tenant> --activity=<id>
# quét toàn bộ
php artisan integrity:scan-text-similarity

--activity bắt buộc đi kèm --tenant

Id hoạt động chỉ có nghĩa trong một tenant. Lệnh sẽ từ chối nếu thiếu — nếu không, --activity=42 sẽ nêu cờ thật trên bất cứ hoạt động nào tình cờ mang id 42 ở mọi tenant khác.

Cách nó đọc bài nộp ​

Bộ đối chiếu so cụm 5 từ liên tiếp giữa hai bài, sau khi loại bỏ phần mà phần lớn lớp cùng có — đề bài chép lại, mẫu câu giảng viên đưa, đoạn trích bài giảng. Bài dưới 60 từ bị bỏ qua (quá ngắn để nói lên điều gì).

Điều làm bộ này khác một ngưỡng phần trăm đơn thuần: sau khi bỏ phần chung, nó nhìn vào phần riêng còn lại của mỗi người. Một lớp làm chung khuôn mẫu vẫn để lại phần tự viết của từng người; một nhóm chép nhau thì phần riêng rỗng đúng ở những người đã chép. Đó là dấu hiệu tách được hai trường hợp mà không con số phần trăm nào tách được.

Vì sao không chạy theo lịch

Bật rà soát cho một tenant là một quyết định vận hành, không phải một công tắc kỹ thuật: hàng đợi cờ chỉ có ích khi có người mở ra đọc. Hãy chạy --pretend vài lần trên dữ liệu thật của bạn, đọc kết quả, rồi mới quyết định.

Ngoài ra, mỗi tệp học viên nộp được lưu một vân tay băm, trả lời câu "còn ai nộp đúng tệp này nữa không". Vân tay không khôi phục lại được nội dung tệp.

Thời gian xem video ​

Trả lời câu hỏi: học viên này có thật sự xem video, hay chỉ kéo thanh tua tới cuối?

Đọc trước: hệ thống KHÔNG chặn việc tua

Hoạt động Video đánh dấu hoàn thành khi con trỏ chạm cuối video — kéo thanh tua tới cuối là hoàn thành, và công cụ này không thay đổi điều đó. Nó chỉ làm cho việc đó nhìn thấy được. Muốn chặn, xem Bắt buộc trả lời câu hỏi chốt ở cuối mục này.

Nó đo gì ​

Thời gian học viên thật sự ở trang chia cho độ dài video. Nêu cờ khi dưới 25%.

  • Thời gian ở trang: hệ đếm theo nhịp 15 giây, và không đếm khi tab bị ẩn.
  • Độ dài video: do trình duyệt báo lên lần đầu tiên có người mở video. Ghi một lần, các lượt sau không ghi đè.

Vì sao ngưỡng là 25% mà không phải 80%

Vì hai nhóm nằm rất xa nhau: người kéo thanh tua cho khoảng 0–5%, còn người xem thật ở tốc độ nhanh nhất (2×) vẫn cho khoảng 50%. Ngưỡng 25% nằm gọn giữa hai vùng. Nâng lên sẽ bắt đầu gắn cờ người xem nhanh hợp lệ — và phạt việc xem nhanh thì thứ duy nhất bạn đạt được là dạy học viên tắt tính năng tăng tốc.

⚠ Dương tính giả lớn nhất không phải gian lận ​

Hệ không đếm nhịp khi tab bị ẩn. Nghĩa là:

Học viên mở video, chuyển sang tab khác để ghi chép, nghe hết từ đầu tới cuối — và có thời gian-ở-trang gần 0, y hệt người kéo thanh tua.

Dữ liệu hiện có không tách được hai trường hợp đó. Đây là lý do ngưỡng đặt rất thấp, và là lý do mỗi cờ mang cả hai con số thô để bạn tự đọc. Hãy hỏi học viên trước khi kết luận bất cứ điều gì.

Chạy nó ​

bash
# xem trước, không ghi cờ
php artisan integrity:scan-video-watch-time --tenant=<tenant> --pretend
# chạy thật
php artisan integrity:scan-video-watch-time --tenant=<tenant>

--activity bắt buộc đi kèm --tenant, như lệnh rà soát tương đồng.

Những gì lệnh nói ra thay vì im lặng ​

Thông báoNghĩa
"không có lượt hoàn thành nào để xét"Chưa video nào có độ dài. Đây là trạng thái thường gặp nhất ngay sau khi triển khai — cột chỉ được điền khi có người mở video qua trình phát
"bỏ qua N/M lượt vì không có nhịp đập"Bản ghi cũ hơn tính năng đếm giờ, hoặc trình duyệt chặn nhịp. Không đọc chúng là sạch
"cắt N lượt khỏi danh sách vì trần"Quá 200 cờ; danh sách đang giữ những lượt tỉ lệ thấp nhất

Video nhúng iframe không bao giờ được xét

Chỉ video phát qua trình phát của hệ (YouTube, Vimeo, file trực tiếp) mới báo được độ dài. Google Drive, Loom, Facebook nhúng qua iframe — không có độ dài, nên không có mẫu số, nên không bao giờ có cờ. (Những video đó cũng không tự hoàn thành được.)

Chặn thay vì chỉ phát hiện ​

Nếu điều bạn cần là ngăn, chứ không phải phát hiện, thì cơ chế đã có sẵn và không cần chạy lệnh nào: bật câu hỏi chốt khi hoàn thành cho hoạt động (completion_challenge với phạm vi toàn bộ). Khi bật, video xem xong không tự hoàn thành — học viên phải trả lời đúng câu hỏi mới xong.

Hiệu quả phụ thuộc hoàn toàn vào câu hỏi: hỏi "Video nói về chủ đề gì?" với bốn phương án đoán được thì không chặn ai. Hỏi một chi tiết chỉ xuất hiện ở phút 12 thì chặn được.

Một lựa chọn nữa cho nội dung quan trọng: dùng Video tương tác thay vì Video thường — loại đó chèn câu hỏi theo mốc thời gian và bắt buộc trả lời đúng mọi câu mới hoàn thành.

Hàng đợi cờ liêm chính ​

Nhóm Kiểm tra → Liêm chính học thuật. Sidebar hiện số cờ chưa xem dưới dạng huy hiệu màu vàng.

Mỗi cờ có ba trạng thái: Chờ xem xét → Không có cơ sở hoặc Kết luận vi phạm.

Trang điều tra hiển thị ba khối: tín hiệu (loại cờ là gì), cảnh báo của chính tín hiệu đó (nó không chứng minh được điều gì), và số liệu đã đo được.

Ghi lý do là bắt buộc, cho cả hai kết luận

  • Với cờ kết luận vi phạm: lý do là thứ duy nhất học viên có để khiếu nại.
  • Với cờ không có cơ sở: lý do là dữ liệu để hiệu chỉnh ngưỡng phát hiện. Tỉ lệ cờ bị bác bỏ là thước đo duy nhất cho biết ngưỡng đặt đúng hay sai — nên cờ bị bác bỏ được giữ lại, không xoá.

"Kết luận vi phạm" không làm gì cả trong hệ thống

Nó không trừ điểm, không chặn bài nộp, không gửi thông báo cho học viên. Nó ghi lại một kết luận. Hậu quả do bạn xử lý ngoài hệ thống theo quy chế.

Hệ thống cố ý không có bước "mời học viên giải trình": một trạng thái nói rằng học viên đã được mời trong khi thực tế chưa ai liên hệ sẽ là một bản ghi sai — tệ hơn là không có bản ghi nào.

Nếu hai người cùng kết luận một cờ, người sau nhận thông báo "Cờ này đã có người kết luận" và kết luận của họ không được lưu. Tải lại trang để xem kết luận hiện tại.

Chốt sổ bảng điểm đợt thi ​

Lịch thi → nút Báo cáo đợt thi → khối Chốt sổ bảng điểm ở đầu trang.

Chốt sổ chụp lại bảng điểm hiện tại và ghi một vân tay. Từ đó trở đi, mọi thay đổi điểm đều hiện ra trên chính trang này.

Chốt sổ KHÔNG khoá điểm

Điểm vẫn sửa được sau khi chốt — đó là chủ ý. Thứ chốt sổ mang lại là tính hiển lộ: sửa thì thấy, chứ không phải sửa thì không được. Một cơ chế khoá cứng sẽ bị gỡ bằng cách can thiệp cơ sở dữ liệu, và khi đó không để lại dấu gì.

Khi bảng điểm khác bản đã chốt, trang in ra từng dòng cụ thể: ai đổi từ điểm nào sang điểm nào, ai có thêm sau khi chốt, ai không còn trong bảng, và ngưỡng đạt có bị đổi hay không (đổi ngưỡng làm đổi kết quả Đạt/Không đạt mà không đổi một con số điểm nào).

Khi nào chốt được ​

Hệ thống từ chối chốt và nói rõ lý do trong hai trường hợp:

  • Đợt thi chưa đóng — chốt khi cửa sổ còn mở là đóng băng một bảng điểm còn thiếu người.
  • Còn thí sinh đang làm bài — trang hiện số người và bảo bạn chờ họ nộp hoặc hết giờ.

Gỡ chốt sổ ​

Dùng khi có phúc khảo hoặc phát hiện sai sót cần chấm lại. Bắt buộc ghi lý do gỡ (tối thiểu 10 ký tự) — đây là thứ duy nhất giải thích vì sao một chứng từ đã chốt lại được mở ra.

Bản chốt cũ được giữ lại kèm lý do, không xoá. Trang hiện lịch sử: đợt này đã chốt bao nhiêu lần, lần gỡ gần nhất là ai, lúc nào, vì sao.

"Vân tay không khớp với ảnh chụp đã lưu"

Thông báo này nghĩa là bản chụp đã bị sửa thẳng trong cơ sở dữ liệu — không phải qua giao diện. Đây là dấu hiệu nghiêm trọng, cần điều tra ở tầng hạ tầng chứ không phải tầng nghiệp vụ.

Phân tách trách nhiệm ​

Quyền seal_exam_schedule chỉ cấp cho admin, cố ý không cấp cho course_manager:

Người soạn đề và chấm bài không nên là người chốt sổ chính bảng điểm mình vừa tạo ra. Nếu cùng một người làm cả hai việc, chữ ký trên chứng từ không chứng thực thêm điều gì.

Chuẩn bị trước khi bật cho cả tổ chức ​

  1. Nói trước với người học. Cam kết, nhật ký phiên thi và việc đối chiếu bài nộp đều đã được mô tả trong tài liệu dành cho học viên (Kỳ thi, Bài tập). Hãy dẫn link, đừng để họ phát hiện ra sau.
  2. Chạy --pretend cho rà soát tương đồng trên dữ liệu thật, đọc kết quả, rồi mới bật hàng đợi.
  3. Chỉ định người đọc hàng đợi và đặt nhịp (ví dụ mỗi tuần một lần). Hàng đợi không ai mở thì không bằng không có.
  4. Viết lại văn bản cam kết theo quy chế của trường bạn, và tự lưu một bản ngoài hệ thống trước mỗi lần sửa.
  5. Thống nhất quy trình xử lý khi một cờ bị giữ — hệ thống dừng ở chỗ ghi kết luận, phần còn lại là việc của con người.

Câu hỏi thường gặp ​

Bật hết mọi thứ có tốt hơn không? Không. Mỗi công cụ tạo thêm việc cho người đọc kết quả. Thứ tự nên bật theo chi phí thấp → cao: cam kết liêm chính (gần như miễn phí, không có dương tính giả) → xáo phương án → chính sách hiện đáp án → khai báo AI → nhật ký phiên thi → nhật ký soạn thảo → rà soát thời gian xem video → rà soát tương đồng.

Học viên có thấy mình bị gắn cờ không? Không. Hàng đợi cờ chỉ hiện trong khu vực quản trị và hệ thống không gửi thông báo nào cho học viên.

Có thể xuất báo cáo liêm chính không? Chưa có màn hình xuất riêng. Bảng điểm đã chốt sổ là chứng từ gần nhất với việc đó.

Nhật ký phiên thi có chạy khi học viên không thi không? Không. Nó chỉ ghi trong phạm vi một phiên thi cụ thể, phía máy chủ.

Nhật ký soạn thảo có đọc được bài nháp của học viên không? Không. Nó lưu độ dài và mốc thời gian, không lưu chữ. Không có màn hình nào phát lại được nội dung học viên đã gõ.

Học viên tua video thì có bị chặn không? Không. Hệ chỉ ghi nhận và nêu cờ để bạn xem. Muốn chặn thì bật câu hỏi chốt khi hoàn thành, hoặc dùng Video tương tác.

Vì sao không đơn giản là bắt xem hết mới cho qua? Vì đo "đã xem hết" một cách đáng tin đòi hỏi theo dõi vùng đã xem trong trình phát, và con số đó vẫn do trình duyệt báo lên — chặn dựa trên nó sẽ chặn nhầm người mạng kém, người xem trên điện thoại bị gián đoạn, và người xem lại lần hai. Câu hỏi chốt kiểm được thứ thật sự quan trọng: họ có nắm nội dung không.

LMS Documentation