FLYER Teacher · PRD · Sprint 110

🗓️ Giao bài tự động

Thay vì mỗi tuần giao bài thủ công, giáo viên đặt lịch một lần: hệ thống tự giao các bài của một chương trình cho cả lớp theo tuần, đúng thứ, đúng giờ, kèm hạn nộp. Đây là "automatic assignment v2" của Sprint 106.

Phiên bản
1.1
Ngày
14/08/2026
Owner
Tùng (Product)
Trạng thái
Đang chạy (production)
📈 Số liệu production (15/08/2026)397 lịch đã tạo345 đang hoạt động14.807 bài đã xếp lịch
🔗 Link mẫu trên productBanner trong lớp (demo) ↗Chương trình (production) ↗tài khoản demo GV: 984855668 (CB Cái Bè) · bản demo tĩnh không cần đăng nhập

1Bối cảnh & mục tiêu

Thay vì mỗi tuần giao bài thủ công, giáo viên đặt lịch một lần: hệ thống tự giao các bài của một chương trình cho cả lớp theo tuần, đúng thứ, đúng giờ, kèm hạn nộp. Đây là "automatic assignment v2" của Sprint 106.

2Người dùng & user stories

Vai tròUser storyƯu tiên
Giáo viênĐặt lịch giao bài hàng tuần cho lớp theo một chương trình.P0
Giáo viênXem lớp chạy tới bài nào, ai đã nộp; dừng/đổi lịch khi cần.P0
Chủ trườngChuẩn hoá tiến độ dạy giữa các lớp cùng giáo trình.P1

3Phạm vi & phase

PhaseNội dungTrạng thái
Phase 1Đặt lịch tuần + bảng theo dõi + dừng/sửa lịchDone
Phase 2Onboarding Giao bài tự động (banner 3 bước) — Sprint 107Done
Phase 3Quản lý giao bài tập trung đa lớp trên 1 màn (backlog 106)Đề xuất

4Luồng sản phẩm

Tab Giao bài tự động trong lớp — banner + bộ chọn chương trình
Tab Giao bài tự động trong lớp — banner + bộ chọn chương trình
  1. Vào lớp → tab Giao bài tự động → chọn chương trình → đặt thứ/giờ/hạn nộp → Tạo lịch
  2. Hệ thống tự giao mỗi tuần → GV theo dõi bảng bài học
  3. Hết học kỳ → Dừng giao bài (confirm 2 bước)

5Spec UI — cho Designer

6Business rules

RuleĐịnh nghĩa
Một lớp một lịch activeLớp có lịch đang chạy không hiện bộ chọn chương trình
Sửa lịchGiữ nguyên scheduleId, không tạo lịch trùng
Nguồn bàiTheo đúng thứ tự bài trong chương trình, bắt đầu từ bài được chọn

7Data & API — cho Developer

8Edge cases đã xử lý

CaseHành vi chuẩn
Dừng lịch giữa tuầnBài đã giao giữ nguyên, tuần kế không giao nữa
Đổi chương trình khi có lịchBắt buộc dừng lịch cũ trước
Lớp chưa có lịchHiện picker 4 nguồn + banner onboarding
Trạng thái rỗngMọi bảng/danh sách có Empty state riêng kèm CTA hành động kế tiếp
Đang tảiSkeleton/Spin cho khối dữ liệu; nút hành động disable khi thiếu điều kiện

9Acceptance criteria

  1. Lịch giao đúng thứ+giờ, đúng thứ tự bài
  2. Sửa lịch không tạo trùng; dừng lịch ngừng ngay tuần kế
  3. Banner onboarding chỉ hiện khi lớp chưa có lịch

10Ngoài phạm vi / tương lai


← Danh mục 20 tính năng · Nguồn: quét trực tiếp codebase branch dev + backlog sprint 104–108 · 14/08/2026.