TF
T-Fluencers Docs
Quay lại SRS

Lưu ý: Đây là yêu cầu phi chức năng riêng cho Dashboard phân tích. Xem thêm NFR toàn hệ thống.

II. Yêu cầu phi chức năng#

13. Hiệu năng (Performance)#

Tiêu chíYêu cầu
Thời gian tải trang Analytics≤ 2s (với cache) / ≤ 4s (lần đầu)
Thời gian áp dụng bộ lọc≤ 1.5s
Thời gian render biểu đồ≤ 500ms
Cache dữ liệu (client-side)5-10 phút tùy loại dữ liệu
Auto refetch khi filter thay đổi

14. Responsive Design#

Thiết bịĐộ rộngLayout
Mobile< 640px1 cột, filter thu gọn vào drawer
Tablet640-1024px2 cột cho chart
Desktop1024-1280px2-3 cột
Large Desktop≥ 1280px3+ cột, sidebar cố định

15. Accessibility (A11y)#

Tiêu chíYêu cầu
ARIA labelsĐầy đủ trên nút, input, element tương tác
Keyboard navigationTab, Enter, Esc hoạt động đúng trên form và dropdown
Tôn trọng reduced motionKhi OS bật "Reduce motion" → giảm animation
Color contrastĐạt WCAG AA (tỷ lệ ≥ 4.5:1 cho text)
Form validationThông báo lỗi gắn liền với input

16. Bảo mật (Security)#

Yêu cầuChi tiết
Xác thựcToken-based, token hết hạn → tự động đăng xuất
Phiên làm việcGắn với thiết bị (device ID)
XSS preventionEscape dữ liệu hiển thị
HTTPSBắt buộc trên production
Phân quyềnChỉ Admin AT/TCB được cấp tài khoản mới truy cập

17. Xử lý lỗi & Phục hồi#

Hành vi chung#

  • Error Boundary: Lỗi một section không làm crash toàn trang, chỉ section đó hiện alert + nút thử lại.
  • Toast Notification: Mọi hành động (thành công/thất bại) đều có toast thông báo, tự ẩn sau 3-5s.
  • Empty State: API trả rỗng → hiển thị icon + thông báo "Không có dữ liệu".
  • Loading State: Khi fetch → skeleton placeholder thay vì blank.
  • Network Error: Mất mạng → banner cảnh báo, tự retry khi có mạng lại.

Tiêu chí chấp nhận#

#Tiêu chíĐiều kiện đạt
AC-DB.17.1Error boundaryAPI một section lỗi → hiển thị alert + retry, các section khác vẫn hoạt động
AC-DB.17.2Toast notificationAction thành công/thất bại → toast hiện 3-5s rồi tự ẩn
AC-DB.17.3Empty stateAPI trả rỗng → hiển thị icon + "Không có dữ liệu"
AC-DB.17.4Loading skeletonĐang fetch → skeleton placeholder thay vì blank
AC-DB.17.5Network errorOffline → banner cảnh báo, có mạng lại → tự retry