Lịch dạy online hợp nhất: buổi học có link phòng họp (Meet/Zoom — tự nhận diện nền tảng) và bài tập trên cùng một lịch, xem toàn trường hoặc theo lớp, hỗ trợ lịch lặp hàng tuần. (Sprint 107 đổi tên từ "Thời khoá biểu" thành "Dạy trực tuyến".)
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)Chưa có bảng dữ liệu trên read-replica cho tính năng này — cần thêm khi có backend/quyền đọc.
🔗 Link mẫu trên productDạy Trực Tuyến (lịch) ↗Demo ↗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
Lịch dạy online hợp nhất: buổi học có link phòng họp (Meet/Zoom — tự nhận diện nền tảng) và bài tập trên cùng một lịch, xem toàn trường hoặc theo lớp, hỗ trợ lịch lặp hàng tuần. (Sprint 107 đổi tên từ "Thời khoá biểu" thành "Dạy trực tuyến".)
Một lịch duy nhất cho dạy online + bài tập
Vào phòng họp 1 chạm
Quản lý nhìn lịch toàn trường theo GV
2Người dùng & user stories
Vai trò
User story
Ưu tiên
Giáo viên
Xem lịch tuần, nhấn mở phòng họp.
P0
Quản lý
Nhìn lịch toàn trường, tạo/sửa buổi lặp lại.
P0
3Phạm vi & phase
Phase
Nội dung
Trạng thái
Phase 1
Lịch trường + tab lớp + sự kiện lặp
Done
Phase 2
Đổi tên menu thành Dạy trực tuyến + nút (+) ở bảng Classes (Sprint 107)
Done
Phase 3
Nhắc lịch qua Zalo/app cho HS & phụ huynh
Đề xuất
4Luồng sản phẩm
Lịch Dạy Trực Tuyến toàn trường
Tạo lớp bật online + lịch tuần → sự kiện tự sinh → tới giờ nhấn mở phòng
Modal sự kiện: phạm vi sửa/xoá (chỉ buổi này/cả chuỗi); filter GV + loại sự kiện
Icon nền tảng meeting tự nhận diện (Meet/Zoom/khác)
Toàn bộ theo design system FLYER Teacher: antd 6 + Tailwind, màu chủ đạo tím #955DCB (primary), chữ #212B36, phụ #637381, viền #EEF0F2, bo góc 8–16px, font Public Sans.
Song ngữ VI/EN qua next-translate; mọi trạng thái lọc/tab persist trên URL để share được link.
6Business rules
Rule
Định nghĩa
Slot lịch tuần
Mỗi slot ≥30 phút khi tạo từ drawer lớp
Flag
online_class theo trường; ẩn ở Lite
Nguồn dữ liệu
Lịch lớp và lịch trường cùng 1 nguồn
7Data & API — cho Developer
GraphQL v2 class events; meetingLink lưu ở lớp; detectMeetingPlatform cho icon
Route: /school-calendar, /[classId]?currentTab=8
8Edge cases đã xử lý
Case
Hành vi chuẩn
Sửa "cả chuỗi" giữa kỳ
Áp dụng từ buổi chọn trở đi
Link phòng chết
Vẫn mở tab mới, GV tự xử lý — có thể cải thiện
Trùng giờ 2 lớp 1 GV
Hiện chồng lấn trên lịch để quản lý thấy
Trạng thái rỗng
Mọi bảng/danh sách có Empty state riêng kèm CTA hành động kế tiếp
Đang tải
Skeleton/Spin cho khối dữ liệu; nút hành động disable khi thiếu điều kiện
9Acceptance criteria
Sự kiện lặp sửa cả chuỗi đúng từ buổi chọn
Link mở đúng nền tảng
Lịch lớp ↔ trường đồng bộ 1 nguồn
10Ngoài phạm vi / tương lai
Nhắc lịch tự động cho HS/phụ huynh
Điểm danh nhanh ngay từ sự kiện buổi học (nối với tính năng Điểm danh)
← 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.