Ra mắt Auto-review cho Kỳ thi + cập nhật quy trình đề xuất

Chào mọi người 👋

Tiếp nối hệ thống Auto-review cho bài tập đã ra mắt trước đây, hôm nay tụi mình giới thiệu phiên bản tương tự dành riêng cho đề xuất kỳ thi (contest): bot tự động kiểm tra cấu hình kỳ thi và toàn bộ bài tập trong đó trước khi admin can thiệp.

⚠️ Lưu ý quan trọng cho người đã có yêu cầu công khai chờ duyệt: tụi mình đã từ chối toàn bộ các yêu cầu đang chờ vì hệ thống mới chạy theo quy trình khác. Bài tập / kỳ thi của bạn không bị xóa — chỉ cần nhấn "Yêu cầu công khai" lại một lần nữa.
Đặc biệt, nếu bài tập của bạn dùng cho một kỳ thi, hãy yêu cầu công khai cả kỳ thi (trang Edit của kỳ thi → "Yêu cầu công khai") thay vì từng bài lẻ — bot sẽ kiểm tra luôn các bài bên trong, gọn và nhanh hơn. Xin lỗi vì sự bất tiện này.

Hệ thống Auto-review cho kỳ thi hoạt động như thế nào?

Khi một bạn nhấn nút Yêu cầu công khai trên trang Edit của một kỳ thi private, hệ thống sẽ tự động chạy các kiểm tra trong vòng 30 giây đến 2 phút (tùy số bài trong kỳ thi):

  1. Problems reviewed — kiểm tra rằng mọi bài tập trong kỳ thi đều đã được auto-review và đã Pass. Nếu có bài chưa được review hoặc còn vấn đề, bot sẽ tự kích hoạt review cho từng bài đó.
  2. Submission leak check — phát hiện rò rỉ đề: kiểm tra xem có người không thuộc đội ngũ chuẩn bị kỳ thi (không phải author/curator/tester của kỳ thi, không phải admin) đã nộp bài hoặc có role tham gia trên các bài của kỳ thi không. Bài bị "burned" trước contest sẽ ảnh hưởng đến tính công bằng của bảng xếp hạng.

Mỗi kiểm tra có verdict riêng (Pass / Fail). Sau khi bot chạy xong, các bạn xem kết quả tại /contest/<key>/review.

Quy trình mới: từ chuẩn bị contest đến tổ chức

  1. Xin quyền tạo bài tập (nếu chưa có) — xem Cách đề xuất và xuất bản bài tập trên LQDOJ.
  2. Tạo bài ở chế độ private — chuẩn bị đầy đủ đề, test, Solution Codes (chi tiết bên dưới).
  3. Tạo kỳ thi private — thêm các bài đã chuẩn bị vào.
  4. Nhấn "Yêu cầu công khai" trên trang Edit của kỳ thi — bot tự động review kỳ thi và mọi bài bên trong trong một lượt.
  5. Trao đổi với admin ở khu vực bình luận trang Review, sửa và yêu cầu lại nếu cần.

Hai thay đổi quan trọng trong quy trình

1. Yêu cầu công khai cho bài trong kỳ thi → dùng "Yêu cầu công khai" trên kỳ thi

Trước đây nếu bạn có một kỳ thi gồm nhiều bài, bạn phải nhấn "Yêu cầu công khai" trên từng bài, mỗi lần đợi bot review riêng. Giờ đây:

  • Bài đứng riêng (không thuộc kỳ thi nào) → vẫn nhấn "Yêu cầu công khai" trên trang Edit của bài, như cũ.
  • Bài thuộc một kỳ thi → nhấn "Yêu cầu công khai" trên trang Edit của kỳ thi đó, bot sẽ tự review luôn các bài bên trong. Không cần nhấn từng bài.

Tại sao thay đổi: đề xuất kỳ thi là "đơn vị công bố" — admin cần thấy cả kỳ thi (tính cân đối, số bài, độ khó, v.v.) chứ không chỉ từng bài lẻ. Gộp lại cũng tránh việc bài đã được duyệt nhưng kỳ thi chưa, hoặc ngược lại.

2. "Bài nộp tham chiếu" → "Solution Codes"

Panel "Bài nộp tham chiếu" cũ (gắn ID submission vào bài) đã được thay bằng tab Solution Codes trên trang Edit của bài. Khác biệt:

  • Cũ: gắn ID của submission đã chấm xong — bot dùng submission đó để check.
  • Mới: upload mã nguồn trực tiếp + chỉ ra expected_result (AC / TLE / ...) — bot tự chấm lại trên hệ thống mỗi lần cần.

Lợi ích: không phụ thuộc vào submission cũ đã chấm bằng config khác (time limit thay đổi, language version thay đổi, v.v.). Mỗi lần auto-review, bot chấm lại tươi mới.

Tụi mình đã tự động chuyển dữ liệu cho các bài đã có bài nộp tham chiếu — nếu bài bạn đã từng được review, các submission tham chiếu cũ đã được copy sang Solution Codes. Bạn không cần làm gì thêm.

Các thay đổi nhỏ khác

  • Trang theo dõi xem xét — vào /problems/review/ (xem các bài đã được review) hoặc /contests/review/ (xem các kỳ thi đã được review). Có sẵn ở sidebar trái của /problems và /contests (tab "Xem xét"). Bạn chỉ thấy các bài / kỳ thi của chính mình; admin thấy toàn bộ.
  • Nút "Hủy yêu cầu" — sau khi nhấn "Yêu cầu công khai", nếu lỡ tay hoặc muốn sửa thêm trước khi admin duyệt, có thể nhấn "Hủy yêu cầu" để rút lại.
  • Đếm ngược chờ giữa hai lần yêu cầu — vẫn 5 phút giữa hai lần yêu cầu liên tiếp của cùng người, có timer trực quan trên nút.

Lợi ích cho mọi người

Cho người tổ chức contest:

  • Một lần nhấn nút → bot review cả kỳ thi và mọi bài bên trong.
  • Phát hiện rò rỉ đề (người ngoài đã nộp bài / có role không hợp lệ) trước khi tổ chức — không bị sự cố ngày contest.
  • Admin chỉ được thông báo SAU KHI bot Pass — giảm spam, tăng tốc duyệt.

Cho admin:

  • Khi nhận thông báo, contest đã qua sơ tuyển bot — chỉ cần xem các điểm bot chưa kiểm tra được (tính sáng tạo, độ phù hợp cộng đồng, v.v.) rồi Approve.

Chi tiết quy trình mới — bao gồm cách chuẩn bị bài, Solution Codes, FAQ — các bạn xem ở các bài đã cập nhật:

Mọi thắc mắc các bạn comment bên dưới hoặc liên hệ admin trực tiếp.

PS: Với lượng contest được đề xuất khá nhiều, admin sẽ ưu tiên contest nào chuẩn bị xong trước (bao gồm tất cả các bài đã Pass auto-review và được admin duyệt lại 1 lần nữa) để tổ chức. Tụi mình không thể đảm bảo contest sẽ được tổ chức vào ngày cố định theo yêu cầu, vì cần đảm bảo chất lượng cũng như thời gian duyệt. Để contest được duyệt và tổ chức sớm, các bạn cố gắng đảm bảo bài tập chất lượng và yêu cầu sớm nhé!

Bình luận (7)

Mới nhất
Tải bình luận...