FLYER Teacher · PRD · Sprint 110

🏅 Khen thưởng (Đá Tri Thức)

Gamification trong lớp: giáo viên thưởng "Đá Tri Thức" 💎 theo tiêu chí hành vi tốt, học sinh tích đá và đổi thưởng. Chạy trên API v4 wisdom-stones thật — nền tảng ví điểm thưởng mà Quà tặng (prototype) sẽ hợp nhất vào.

Phiên bản
1.1
Ngày
14/08/2026
Owner
Tùng (Product)
Trạng thái
Đang chạy (backend v4)
📈 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 productLớp học → tab Khen thưởng ↗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

Gamification trong lớp: giáo viên thưởng "Đá Tri Thức" 💎 theo tiêu chí hành vi tốt, học sinh tích đá và đổi thưởng. Chạy trên API v4 wisdom-stones thật — nền tảng ví điểm thưởng mà Quà tặng (prototype) sẽ hợp nhất vào.

2Người dùng & user stories

Vai tròUser storyƯu tiên
Giáo viênThưởng đá nhanh cho cá nhân/nhóm theo tiêu chí, hiệu ứng vui trước lớp.P0
Giáo viênTrừ đá khi đổi thưởng; xem báo cáo tích luỹ từng học sinh.P0
Chủ trườngBộ tiêu chí thống nhất toàn trường.P1

3Phạm vi & phase

PhaseNội dungTrạng thái
Phase 1Grant/redeem + tiêu chí + nhóm + lịch sử + hiệu ứng (API v4)Done
Phase 2Widget Top HS trên Tổng quan + tour onboardingDone
Phase 3Hợp nhất với Quà tặng (đổi đá lấy quà thật)Đề xuất

4Luồng sản phẩm

Tab Khen thưởng — Đá Tri Thức
Tab Khen thưởng — Đá Tri Thức
  1. GV mở tab Khen thưởng → chọn học sinh/nhóm → chọn tiêu chí → đá bay + toast → HS tích đá → đổi thưởng (trừ đá)

5Spec UI — cho Designer

6Business rules

RuleĐịnh nghĩa
Tiêu chí mặc định6 tiêu chí seed, không xoá được; tiêu chí tự tạo chỉ chủ sở hữu sửa/xoá; trùng tên → 409
Đổi thưởng1–10 đá/lần, không vượt số dư (409 nếu âm)
NhómThưởng nhóm = cộng mọi thành viên

7Data & API — cho Developer

8Edge cases đã xử lý

CaseHành vi chuẩn
Đổi vượt số dưChặn 409 + thông báo thiếu đá
Grant khi đang animationMutation chỉ bắn sau flight complete — không double
Tên tiêu chí trùngBáo "Tên tiêu chí đã tồn tại"
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. Đổi thưởng vượt số dư bị chặn
  2. Thưởng nhóm cộng đúng mọi thành viên
  3. Lịch sử phân trang 100/lần cuộn tải tiếp
  4. Thu hồi hiển thị "Đã thu lại Đá Tri Thức"

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.