Bỏ qua để đến nội dung

Practice Flow - Information Architecture

DomainsDOL EnglishUX717 words4 min read
activebyDOL Product Design

Practice Flow - Information Architecture (Entry, Attempt, Result)

Phần tiêu đề “Practice Flow - Information Architecture (Entry, Attempt, Result)”
  • Nếu câu hỏi là shell rule, program context, hoặc boundary giữa Hôm nay / Khóa học / Luyện tập / Từ vựng / Tiến độ, đọc ../ENG_Navigation_00_Overview.md trước rồi mới xuống file này.
  • File này chỉ giữ IA nội bộ của PRA; shell rule và destination boundary vẫn đọc từ navigation docs trước.
  • Vấn đề: Nếu không có IA chung, mỗi điểm vào sẽ tự định nghĩa flow làm bài khác nhau.
  • Đối tượng chính: Team thiết kế kiến trúc flow học tập và team triển khai route.
  • Tín hiệu thành công: Tất cả entry contexts map về cùng IA của PRA mà không mất ngữ cảnh chương trình.
  • File này mô tả IA nội bộ của destination Luyện tập sau khi program context đã được resolve.
  • Entry Context, Attempt Session, Result Summary, và Impact Sync là các lớp nội bộ của PRA; chúng không tạo thêm primary destination mới trong shell.
  • Nếu attempt/result được surfacing ở Hôm nay, Khóa học, hoặc Tiến độ, deeplink xem sâu vẫn phải quay về PRA canonical flow.
  • IA lõi của PRA:
    1. Entry Context (Home Exercise Bank / Course Detail).
    2. Attempt Session (làm bài).
    3. Result Summary (xem kết quả).
    4. Impact Sync (LM + Vocabulary conditionally).
  • Input metadata bắt buộc ở tầng Entry:
    • source_context
    • program
    • exercise_id
    • returnTo
  • Output metadata bắt buộc ở tầng Result:
    • attempt_id
    • completion_status
    • score_summary
    • sync_status
  • Mọi entry phải được chuẩn hoá qua PRA_Entry_Routing_Contracts trước khi vào attempt.
  • Attempt chỉ xử lý quá trình làm bài; không xử lý thống kê dài hạn.
  • Attempt execution baseline:
    • modes: untimed (default) và timed (simulation/full-test),
    • draft safety + resume cho attempt chưa nộp,
    • untimed draft TTL = 7 ngày; timed draft chỉ sống trong timer window,
    • timed mode không manual pause và timer tiếp tục khi background,
    • submit review non-blocking (answered/unanswered summary),
    • submit idempotent để tránh double-finalization,
    • submit transient failure auto-retry tối đa 3 lần trước support CTA,
    • timed expiry đi vào timeout-submit path rồi chuyển Result.
  • Result là điểm duy nhất phát tín hiệu sync sang module khác.
  • Sync vocabulary chỉ xảy ra khi result có vocab_suggestion_payload hợp lệ.
  • Entry luôn hiển thị rõ user đang vào flow nào (self_study hoặc course).
  • Attempt ưu tiên tập trung hoàn thành bài, tránh nhiễu thông tin bên ngoài.
  • Result hiển thị tóm tắt kết quả và CTA đi tiếp:
    • quay lại bank,
    • làm bài tiếp,
    • xem thống kê chi tiết tại LM.
  • Entry metadata thiếu field bắt buộc:
    • chặn start attempt và fallback về nguồn entry gần nhất.
  • Nộp bài không thành công:
    • giữ state attempt để user retry submit.
    • không mất state câu trả lời.
  • Sync LM thất bại tạm thời:
    • đánh dấu pending sync và retry nền.
  • Vocab payload không hợp lệ:
    • bỏ qua sync vocabulary nhưng vẫn giữ kết quả bài.
  • 2026-03-19: Repoint Smart Search references sang canonical shared capability path.
  • 2026-03-06: Liên kết IA với Practice Types để lớp loại bài luyện tập sống trong Practice thay vì rơi vào docs Home.
  • 2026-02-21: Deepening IA với policy cụ thể cho draft TTL, timed no-pause/background timer continuity, và submit auto-retry threshold.
  • 2026-02-21: Bổ sung attempt execution baseline vào IA: timed/untimed, draft resume, submit non-blocking + idempotent, timeout-submit path.
  • 2026-02-11: Bổ sung tham chiếu Smart Search Platform để đồng bộ metadata vào/ra giữa Search và PRA IA.
  • 2026-02-07: Khởi tạo IA cho Practice Flow với 4 tầng Entry, Attempt, Result, Impact Sync.