Task #1238
mởTask #947: Thi công màn hình thời khóa biểu cho quý
[TKB]: ghép logic các ràng buộc vào xếp thời khoá biểu
100%
Mô tả
- Mục đích
Bổ sung chức năng thiết lập và ghép logic các ràng buộc vào quá trình xếp thời khóa biểu nhằm:
Đảm bảo thời khóa biểu tuân thủ các quy tắc học thuật (theo môn, theo bài)
Giảm thao tác thủ công và hạn chế sai sót khi xếp thời khóa biểu
Cho phép hệ thống tự động hóa xử lý nhiều ràng buộc phức tạp - Yêu cầu nghiệp vụ
2.1. Câu chuyện nghiệp vụ
Thiết lập các ràng buộc liên quan đến môn học và bài học
Kết hợp (ghép logic) nhiều ràng buộc khác nhau để áp dụng khi xếp thời khóa biểu
Đảm bảo thứ tự học các bài trong cùng một môn (ví dụ: Bài 1 phải trước Bài 2)
Áp dụng các quy tắc như: các môn trước sau, song song, tiên quyết
ví dụ bài 5 môn triết phải học trước bài 7 môn tư tưởng hcm,... ngoài ra còn học xen kẽ kẽ, như trong tài liệu mô tả ràng buộc
Khi hệ thống xếp TKB, các ràng buộc này được tự động kiểm tra và áp dụng
Ví dụ nghiệp vụ:
Môn Toán có các bài: Bài 1, Bài 2, Bài 3
Ràng buộc:
Bài 1 → phải học trước Bài 2
Khi xếp TKB, hệ thống phải đảm bảo các điều kiện trên luôn đúng
2.2. Mong muốn
Cho phép cấu hình ràng buộc linh hoạt theo:
Môn học
Bài học
Thời gian (ngày, tiết)
Có khả năng ghép nhiều ràng buộc bằng logic
Hệ thống kiểm tra và cảnh báo khi ràng buộc bị vi phạm
Cho phép bật/tắt từng ràng buộc (Sau này, có thể chưa cần ngay)
Hỗ trợ ưu tiên (priority) giữa các ràng buộc (Sau này, cho việc xếp tkb tự động)
2.3. Khó khăn
Số lượng ràng buộc lớn và có thể xung đột lẫn nhau
Logic ghép ràng buộc phức tạp
Khó đảm bảo hiệu năng khi xếp thời khóa biểu với nhiều điều kiện
Người dùng nghiệp vụ có thể khó hiểu cách thiết lập rule phức tạp
Cần xử lý trường hợp không tồn tại lời giải thỏa mãn tất cả ràng buộc
3. Giải pháp phần mềm, chức năng nghiệp vụ bị ảnh hưởng
3.1. Giải pháp đề xuất
Thiết kế hệ thống gồm:
Danh sách ràng buộc
Các loại ràng buộc:
Thứ tự bài học
Ràng buộc theo môn,bài
Khi xếp lịch → hệ thống kiểm tra toàn bộ ràng buộc
Nếu vi phạm:
Hard → không cho phép
Soft → cảnh báo / tính điểm tối ưu (nên có)
3.2. Chức năng bị ảnh hưởng
Xếp thời khóa biểu (core)
Quản lý môn học và bài học
Phân công giảng dạy
Báo cáo và kiểm tra tính hợp lệ của thời khóa biểu
TP Cập nhật bởi Tiến Lực Phạm cách đây khoảng 1 tháng
- Mô tả cập nhật (Sự khác nhau)
TP Cập nhật bởi Tiến Lực Phạm cách đây khoảng 1 tháng
- Trạng thái thay đổi từ New tới Approved
TP Cập nhật bởi Tiến Lực Phạm cách đây khoảng 1 tháng
- Tiến độ thay đổi từ 0 tới 80
HN Cập nhật bởi Hải Yến Ngô cách đây khoảng 1 tháng
- Phiên bản gán cho B9 (04 - 08/05/2026)
HN Cập nhật bởi Hải Yến Ngô cách đây khoảng 1 tháng
- Tác vụ cha gán cho #947
TP Cập nhật bởi Tiến Lực Phạm cách đây khoảng 1 tháng
- Mô tả cập nhật (Sự khác nhau)
TP Cập nhật bởi Tiến Lực Phạm cách đây 28 ngày
- Tiến độ thay đổi từ 80 tới 100
TP Cập nhật bởi Tiến Lực Phạm cách đây 28 ngày
- Trạng thái thay đổi từ Approved tới Commit
TP Cập nhật bởi Tiến Lực Phạm cách đây 25 ngày
- Trạng thái thay đổi từ Commit tới Approved
- Tiến độ thay đổi từ 100 tới 90
TP Cập nhật bởi Tiến Lực Phạm cách đây 19 ngày
- Tiến độ thay đổi từ 90 tới 100
TP Cập nhật bởi Tiến Lực Phạm cách đây 15 ngày
- Trạng thái thay đổi từ Approved tới Commit