4. Tham gia thử thách#
Mục tiêu#
Cho phép người dùng gửi bài dự thi (video/nội dung) cho một thử thách cụ thể.
Điều kiện tiên quyết#
- Đã đăng nhập
- Có ít nhất một hồ sơ social đã duyệt (APPROVED)
- Thử thách còn trong thời gian đăng ký
Luồng nghiệp vụ#
- Người dùng truy cập trang chi tiết thử thách → xem mô tả, thể lệ, hashtag bắt buộc.
- Nhấn "Tham gia thử thách" → chọn hồ sơ social đã duyệt.
- Nhập link video tương ứng với hồ sơ đã chọn.
- Hệ thống kiểm tra:
- Link hợp lệ, truy cập được
- Nền tảng video khớp với hồ sơ
- Có chứa hashtag bắt buộc
- Hợp lệ → lưu trạng thái PENDING → chờ kiểm duyệt.
- Sau duyệt: APPROVED (bắt đầu tính thống kê) hoặc REJECTED (kèm lý do).
Hỗ trợ tham gia bằng mã code#
- Ngoài cách tham gia thông thường, người dùng có thể nhập mã code để tham gia thử thách đặc biệt (invite-only).
Tiêu chí chấp nhận (Acceptance Criteria)#
| # | Tiêu chí | Điều kiện đạt |
|---|---|---|
| AC-4.1 | Tham gia thành công | Chọn hồ sơ social đã duyệt + nhập link video hợp lệ + có hashtag bắt buộc → trạng thái PENDING |
| AC-4.2 | Chặn khi chưa có hồ sơ social | User không có hồ sơ APPROVED → nút "Tham gia" bị disable hoặc hiển thị yêu cầu đăng ký kênh |
| AC-4.3 | Chặn khi hết hạn thử thách | Thử thách đã kết thúc → không cho submit content mới |
| AC-4.4 | Validate link video | Link không truy cập được / nền tảng không khớp hồ sơ / thiếu hashtag → hiển thị lỗi cụ thể |
| AC-4.5 | Tham gia bằng mã code | Nhập mã hợp lệ → cho phép tham gia thử thách invite-only. Mã sai → hiển thị lỗi |
| AC-4.6 | Không submit trùng | User đã submit cùng link video cho cùng thử thách → từ chối, thông báo trùng |
5. Theo dõi thử thách đã tham gia#
Mục tiêu#
Cho phép người dùng xem lại toàn bộ thử thách đã tham gia, video đã gửi, trạng thái và mốc hoa hồng.
Luồng nghiệp vụ#
- Người dùng truy cập "Thử thách của tôi".
- Hệ thống hiển thị:
- Danh sách thử thách đã tham gia
- Video đã gửi + trạng thái (PENDING / APPROVED / REJECTED)
- Thông số: lượt xem, lượt tương tác
- Mốc hoa hồng đã đạt được
Bảo mật#
- Chỉ người dùng đăng nhập mới xem được thông tin của chính họ.
Tiêu chí chấp nhận (Acceptance Criteria)#
| # | Tiêu chí | Điều kiện đạt |
|---|---|---|
| AC-5.1 | Hiển thị danh sách thử thách | Trang "Thử thách của tôi" hiển thị tất cả thử thách đã tham gia, sắp xếp theo thời gian mới nhất |
| AC-5.2 | Hiển thị trạng thái video | Mỗi video hiển thị rõ trạng thái: PENDING / APPROVED / REJECTED |
| AC-5.3 | Hiển thị thông số | Video APPROVED hiển thị lượt xem, lượt tương tác, cập nhật theo kỳ crawl |
| AC-5.4 | Hiển thị mốc hoa hồng | Các mốc thưởng đã đạt hiển thị kèm số tiền |
| AC-5.5 | Phân quyền xem | User A không xem được thông tin thử thách của User B |