Social - Profile (Logic)
DomainsDOL AcademyUX389 words2 min read
Purpose
Phần tiêu đề “Purpose”- Hồ sơ xã hội thể hiện tiến trình, thành tích và đóng góp; mặc định private để giảm rủi ro lộ dữ liệu và giữ trải nghiệm an toàn.
- Định hướng UX chi tiết cho feature này nằm tại:
Social/SOC_Profile_Sharing_UX.md.
Scope
Phần tiêu đề “Scope”- Nội dung: tổng quan tiến trình (aggregate), streak, huy hiệu/achievements, danh hiệu Hall of Fame; đóng góp kiến thức (knowledge set/note chia sẻ).
- Thông tin hiển thị: tránh dữ liệu nhạy cảm (lớp/khóa chi tiết, PII, lịch cụ thể); điểm mock/official có thể hiển thị dạng tổng hợp.
- Public fields (khi user bật chia sẻ): display name, avatar, achievements/badges, tổng số bài đã hoàn thành, best score/official verified, streak tổng quan.
- Privacy controls:
- mặc định
private(không công khai), - user có thể bật/tắt
public sharing, - user có thể bật/tắt theo nhóm dữ liệu: tiến trình, thành tích, kiến thức chia sẻ.
- mặc định
- Follow: cho phép theo dõi; accept bạn bè → auto‑follow 2 chiều.
Entities
Phần tiêu đề “Entities”- UserProfile: { id, displayName, avatar, privacySettings, badges }.
- Follow: { followerId, followeeId, createdAt, status }.
Logic
Phần tiêu đề “Logic”- Private default: profile không public cho người lạ cho đến khi user tự bật chia sẻ.
- Public mode: khi bật public sharing, mọi người (kể cả chưa đăng nhập) đều có thể xem trang profile công khai.
- Follow gate: khi profile private, follow cần approve.
- Visibility toggles: user có thể bật/tắt theo nhóm dữ liệu (tiến trình/thành tích/kiến thức chia sẻ).
- Stats: tổng hợp từ LM; tôn trọng cài đặt nếu bật privacy.
Flows
Phần tiêu đề “Flows”- Bật/Tắt public sharing trực tiếp từ profile settings.
- Follow/Unfollow; Follow request (private) → approve/deny.
- Update privacy toggles → áp dụng ngay trên feed/leaderboards/profile.
Edge cases
Phần tiêu đề “Edge cases”- Xoá tài khoản: ẩn danh hoá nội dung còn lại; giữ đếm tổng hợp hệ thống.
- Tắt public sharing sau khi đã từng chia sẻ: profile công khai dừng hiển thị ngay.
- User chưa có nhiều lịch sử học: vẫn cho bật public, hiển thị empty-state tích cực thay vì trang trống.
- Học sinh vị thành niên: mặc định private; phụ huynh quyết định cài đặt hiển thị.
Technical Notes
Phần tiêu đề “Technical Notes”- Cross‑area:
Account/ACC_Logic.md(privacy),Learning Management/LM_*(số liệu học tập).