Trang sửa bài tập và cuộc thi, bản mới

Hai trang sửa bài tập và cuộc thi giờ cho thấy tình trạng chính ngay dưới tiêu đề, có biểu tượng cho từng phần, dòng thời gian cho lịch thi và danh sách đề gọn hơn. Mọi trường và thao tác cũ vẫn giữ nguyên.

SP-781 · 3/10/2026

Tình trạng ngày 3/10/2026

Giai đoạn
Đang review. PR đang mở. Chưa merge vào main, chưa lên beta, chưa có trong bản production.
PR
#529 Toàn bộ thay đổi giao diện của hai trang: cột rộng hơn, dải tóm tắt, biểu tượng phần, tab gạch chân, thẻ chọn cách chấm, dòng thời gian, danh sách đề một dòng. Chỉ có frontend.
Ticket
SP-781
Ảnh chụp
Mọi ảnh chụp đều lấy từ môi trường local với dữ liệu giả. Tên và số liệu không có thật. Ảnh "Trước" là nhánh main, ảnh "Sau" là PR #529, cùng một cơ sở dữ liệu, giao diện tiếng Việt.

Vì sao có thay đổi này

SP-781 đã chuyển hai trang này sang bố cục phẳng giống trang cài đặt AI. Bố cục đó gọn nhưng hơi đơn điệu. Muốn biết bài đã đủ tệp chưa hay chấm theo cách nào thì phải cuộn xuống. Lịch thi chỉ là bốn ô ngày giờ nên khó hình dung. Mỗi bài trong danh sách đề chiếm ba dòng. Lần này giữ nguyên bố cục phẳng nhưng thêm cấu trúc để đọc nhanh hơn.

Thay đổi trong một hình

1

Dải tóm tắt

Trạng thái, hiển thị và các thông tin chính nằm ngay dưới tiêu đề.

2

Biểu tượng và tab

Mỗi phần có biểu tượng riêng, tab chuyển sang kiểu gạch chân.

3

Chọn bằng thẻ

Ba cách chấm điểm là ba thẻ có mô tả ngắn.

4

Dòng thời gian

Lịch thi hiện thành một trục với các mốc và giờ hiện tại.

Trước và sau

Mỗi cặp ảnh là cùng một trang, cùng dữ liệu. Bấm vào ảnh để xem cỡ đầy đủ.

1. Đầu trang bài tập

Trước: tiêu đề, hai chấm trạng thái, tab dạng hộp
Trước. Chỉ có hai chấm "Đang hoạt động" và "Riêng tư". Tab dạng hộp. Cột rộng 1024px. Nút Lưu luôn bấm được.
Sau: dải tóm tắt sáu mục, tab gạch chân, biểu tượng phần
Sau. Dải tóm tắt: Đang hoạt động, Riêng tư, Dễ, So sánh CSV cơ bản, Đã tải lên 2/2, 4 giờ trước. Có nút Hủy. Nút Lưu mờ khi chưa có gì thay đổi. Tab gạch chân, phần có biểu tượng, cột rộng 1280px.

2. Tệp và chấm điểm

Trước: dòng tệp không biểu tượng, cách chấm là một thanh ba lựa chọn
Trước. Cách chấm điểm là một thanh ba chữ, không có giải thích cho từng lựa chọn.
Sau: dòng tệp có biểu tượng, ba thẻ cách chấm có mô tả
Sau. Mỗi tệp có biểu tượng. Ba cách chấm là ba thẻ, mỗi thẻ có một câu mô tả. Thẻ đang chọn có viền xanh. Dùng được bằng phím mũi tên.

3. Đầu trang cuộc thi

Trước: hai chấm Riêng tư và Đã liên kết bài học
Trước. Hai chấm "Riêng tư" và "Đã liên kết bài học". Muốn biết lịch và số bài phải cuộn xuống.
Sau: dải tóm tắt cuộc thi sáu mục
Sau. Đang hoạt động, Riêng tư · đã liên kết bài học, Linh hoạt 120 phút, bắt đầu 01/10/2026 08:00, 5 bài, 4 người đã đăng ký.

4. Lịch trình

Trước: bốn ô ngày giờ
Trước. Bốn ô ngày giờ. Phải tự hình dung khoảng cách giữa các mốc.
Sau: dòng thời gian với ba mốc và vạch Bây giờ
Sau. Dòng thời gian dưới các ô: Mở đăng ký 28/09 09:00, Bắt đầu 01/10 08:00, Kết thúc 12/10 23:00. Vạch cam là "Bây giờ". Trục cập nhật ngay khi sửa ngày giờ, chưa cần lưu.

5. Danh sách đề bài

Trước: mỗi bài là một khối ba dòng
Trước. Mỗi bài là một khối ba dòng, nhãn Điểm sàn, Điểm đích, Điểm tối đa lặp lại năm lần.
Sau: mỗi bài một dòng, nhãn ở hàng tiêu đề
Sau. Mỗi bài một dòng, nhãn chỉ nằm ở hàng tiêu đề. Năm bài vừa trong một màn hình. Trên điện thoại vẫn hiện dạng khối như cũ.

6. Tạo cuộc thi, khi chưa chọn ngày

Trước: lịch trình trang tạo cuộc thi
Trước. Ba ô trống.
Sau: trục trống với dòng Chọn ngày giờ để xem dòng thời gian
Sau. Trục để trống với dòng "Chọn ngày giờ để xem dòng thời gian". Các mốc hiện ra khi đã có ngày.

Chỉ có ở bản mới

Tooltip trên mốc Bắt đầu giải thích cách tính 120 phút
Giải thích từng mốc. Rê chuột hoặc dùng phím Tab lên một mốc để xem giải thích. Mốc Bắt đầu: "Từ thời điểm này học viên đã đăng ký có thể bấm Bắt đầu. 120 phút của mỗi người tính từ lúc họ bấm." Cuộc thi Cố định có câu khác.
Chấm cam Có thay đổi chưa lưu sau khi sửa tiêu đề
Báo thay đổi chưa lưu. Sau khi sửa tiêu đề, chấm cam "Có thay đổi chưa lưu" hiện cạnh nút Hủy và nút Lưu sáng lên. Ảnh này không lưu thay đổi.

Toàn trang

Trước: toàn trang sửa bài tập
Bài tập, trước. Bấm để xem cỡ đầy đủ.
Sau: toàn trang sửa bài tập, trình soạn markdown chia đôi
Bài tập, sau. Trình soạn đề bài và dữ liệu cao hơn, vẫn chia đôi: bên trái soạn, bên phải xem trước. Bấm để xem cỡ đầy đủ.
Trước: toàn trang sửa cuộc thi
Cuộc thi, trước. Bấm để xem cỡ đầy đủ.
Sau: toàn trang sửa cuộc thi
Cuộc thi, sau. Trang ngắn hơn nhờ danh sách đề một dòng. Bấm để xem cỡ đầy đủ.

Đọc dải tóm tắt

Dải tóm tắt lấy từ dữ liệu đã lưu, không phải từ nội dung đang sửa. Chỉ "Trạng thái" có chấm màu: xanh là đang hoạt động, đỏ là đã lưu trữ.

MụcÝ nghĩaVí dụ trong ảnh
Bài tập
Trạng tháiĐang hoạt động hay đã lưu trữ.Đang hoạt động
Hiển thịỔ khoá là riêng tư, quả địa cầu là công khai.Riêng tư
Độ khóĐộ khó đã lưu.Dễ
Chấm điểmCách chấm. Với catalog dùng chung thì kèm tên bộ chấm.So sánh CSV cơ bản
TệpSố tệp đã có trên tổng số tệp cần. Liên kết ngoài cũng được tính.Đã tải lên 2/2
Cập nhậtLần lưu gần nhất.4 giờ trước
Cuộc thi
Trạng tháiĐang hoạt động hay đã lưu trữ.Đang hoạt động
Hiển thịRiêng tư hoặc công khai, kèm "đã liên kết bài học" khi có.Riêng tư · đã liên kết bài học
Cách tính giờCố định hoặc Linh hoạt, kèm thời lượng.Linh hoạt, 120 phút
Bắt đầuMốc bắt đầu đã lưu.01/10/2026 08:00
Số bàiSố bài trong danh sách đề.5
Đã đăng kýSố học viên đã đăng ký.4

Đã kiểm tra những gì

Giới hạn đã biết

Quyết định đã chọn

Câu hỏiLựa chọn
Hướng thiết kế nào?Bản kết hợp từ ba hướng mock: dải tóm tắt và dòng thời gian của hướng 2, biểu tượng phần của hướng 1. Không dùng dạng khung thẻ của hướng 3.
Kiểu tab?Kiểu gạch chân của shadcn. Các trang khác vẫn dùng kiểu hộp.
Trình soạn markdown mặc định?Giữ chia đôi như trên main: soạn bên trái, xem trước bên phải. Khung soạn cao hơn.
Dữ liệu API chưa có?Bỏ mục đó thay vì hiện số giả.
Nút Lưu?Mờ khi chưa có thay đổi. Chấm cam báo khi có thay đổi chưa lưu.
Dòng thời gian lấy số từ đâu?Từ các ô đang nhập, nên thấy ngay khi sửa. Với Cố định, Kết thúc là Bắt đầu cộng thời lượng.

Các bước tiếp theo

  1. Review và merge PR #529 vào main. Beta tự deploy sau khi merge.
  2. Không có migration, không đổi API, không đổi cấu hình.
  3. Trên beta: mở một bài tập và một cuộc thi. Xem dải tóm tắt, sửa tiêu đề để thấy chấm cam, rê chuột lên các mốc của dòng thời gian.
  4. Chuyển SP-781 sang Testing sau khi thử trên beta, và sang Done khi có trong bản production.