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

DOL English Navigate Audit Map

Plans2.232 words11 min read
workingbyDOL Product Design

Execution note: đây là audit map để chuẩn bị vòng cập nhật navigate tổng thể. Source of truth vẫn nằm ở các doc canon được dẫn chiếu bên dưới.

  • Gom backbone navigate hiện tại của DOL English thành một execution map ngắn để audit và cập nhật không bị lệch giữa Home, Auth, Self-study, Course, Commerce, Search, và AI Tutor.
  • Canon domain-first đang nằm ở docs/Domains/**; shared routing/orchestration canon nằm ở docs/Shared/**.
  • Home là platform router của DOL English, không phải analytics hub hay reward hub.
  • Auth là browse-first + intent-first: chỉ chặn tại protected action hoặc checkout.
  • Practice Flow đang là owner rõ nhất cho route contract chi tiết (source_context, program, exercise_id, returnTo).
  • Smart SearchAI Tutor là lớp orchestration xuyên module, không phải owner của page role.
  • Scope của audit này là DOL English Web V2, không bao gồm DOL Kid, Academy delivery, Zoom Course, hay Video Course.
  • Mục tiêu hiện tại là đồng bộ documentation canon trước; chưa thay đổi runtime implementation.
  • Ưu tiên vá canon drift nhỏ và có thể đảo ngược.
  • Không dùng Concepts, Auto, Archive, hay tmp làm source of truth cho navigate tổng thể.
  • Không rewrite decision history cũ nếu state canon mới đã supersede ở tầng state/UX contracts.
  • Navigate logic hiện đang trải trên nhiều owner docs; rất dễ sửa một area rồi lệch area khác.
  • Một số decision docs giai đoạn đầu còn giữ rule fallback đơn giản hơn rule active hiện tại.
  • Vocabulary lane hiện có owner question rõ, nhưng route continuity contract chưa explicit bằng PRA/CM.
  • Correctness (hard gate): mọi phát biểu về navigate phải khớp active canon hiện tại.
  • Requirement coverage: phải chạm đủ entry, auth continuity, lane handoff, commerce return, search/AI.
  • Risk and safety (hard gate): không tạo thêm rule mâu thuẫn giữa Home/Auth/Practice/Checkout.
  • Verification evidence: phải có grep/sanity pass sau khi vá doc.
  • Maintainability: người đọc mới phải thấy rõ doc owner nào giữ rule nào.
  • Delivery efficiency: ưu tiên dọn drift lớn trước khi viết doc mới phạm vi rộng.
  • Source: ChatGPT share conversation Navigation cho website giáo dục.
  • Status: proposed model, chưa được promote thành canon.
  • Reason to keep: idea này không chỉ nói về menu; nó đưa ra một model mới để tổ chức navigate + content classification + user behavior.
  • Bài toán navigate trước hết là bài toán information architecture, không phải bài toán “vẽ menu”.
  • Hệ thống giáo dục nhiều chương trình và nhiều tính năng nên được nhìn như ma trận Program x User Task.
  • Sai lầm phổ biến là flatten cả hai trục lên cùng một primary nav.
  • Quy tắc đề xuất:
    • mỗi bề mặt chỉ chọn 1 trục làm primary navigation,
    • trục còn lại đi xuống local nav, tabs, hub page, hoặc switcher.
  • Program axis:
    • IELTS,
    • TOEIC,
    • SAT,
    • Kids,
    • các program/track tương tự.
  • Task axis:
    • khám phá khóa học/chương trình,
    • học hằng ngày,
    • luyện tập,
    • xem tiến độ/kết quả,
    • quản lý tài khoản/đăng ký lớp.
  • Public site / marketing:
    • primary nav theo program hoặc buying intent,
    • user ở pha này chủ yếu muốn trả lời học gì hoặc mua gì.
  • Logged-in app:
    • primary nav theo task,
    • user ở pha này chủ yếu muốn trả lời làm gì tiếp ngay bây giờ.
  • Program trong app:
    • nên là context,
    • không phải lúc nào cũng là top nav.
  • Nội dung để chọn program, hình thức học, học phí/lịch, resource.
  • Owner surfaces:
    • public Home,
    • program landing pre-login,
    • course/program discovery,
    • consultation/enrollment entry.
  • Nội dung người dùng quay lại thường xuyên để làm việc:
    • Home,
    • dashboard,
    • progress,
    • calendar,
    • vocabulary notebook,
    • AI coach,
    • account-level learning utilities.
  • Đây là lớp phù hợp với task-based global navigation.
  • Nội dung gắn chặt với từng program:
    • IELTS Reading,
    • TOEIC Mock,
    • SAT Verbal,
    • các bank/module/track đặc thù.
  • Đây là lớp phù hợp với program hub + local nav.
  • Search,
  • Login,
  • Help,
  • Account,
  • Support,
  • Billing,
  • Settings,
  • certificates hoặc các mục low-frequency tương tự.
  • Không nên chen vào primary nav nếu không phải top task.
  • User pre-login vào để quyết định:
    • học chương trình nào,
    • mua khóa nào,
    • dùng hình thức học nào.
  • Navigational implication:
    • nav cần giúp compare and choose,
    • không nên buộc user scan một menu đầy feature-level item.
  • User post-login quay lại để làm một việc cụ thể:
    • học tiếp,
    • làm bài,
    • vào lớp,
    • xem kết quả,
    • ôn từ,
    • xử lý việc đến hạn.
  • Navigational implication:
    • app nav nên task-first,
    • Home/router phải trả lời nhanh làm gì tiếp.
  • Sau khi user đã ở trong program, họ cần đổi skill, module, bank, test type, hoặc sub-area.
  • Navigational implication:
    • dùng local nav, tabs, hub page, switcher,
    • không kéo toàn bộ cấu trúc program lên global nav.

Behavior cluster 4: Handle rare admin/support actions

Phần tiêu đề “Behavior cluster 4: Handle rare admin/support actions”
  • Billing, settings, support, certificate retrieval, account maintenance là low-frequency.
  • Navigational implication:
    • để ở utility/overflow,
    • tránh cạnh tranh với primary learning routes.
  • Khớp với rule Home = platform router.
  • Khớp với page role contract: mỗi page chỉ nên trả lời 1 câu hỏi chính.
  • Khớp với hướng post-login = task/action-first.
  • Khớp với intent-first ecosystem rule và browse-first discovery.
  • Làm rõ hơn sự tách biệt giữa:
    • public discovery IA,
    • logged-in app IA,
    • program hub IA,
    • utility IA.
  • Biến Program x Task thành một model rõ để phân loại content, không chỉ để đặt menu.
  • Giúp lý giải vì sao nhiều item hiện nên ở:
    • task/global layer,
    • hay program/local layer,
    • thay vì tranh nhau ở top nav.
  • Chưa có một taxonomy canon ngắn phân loại content theo public vs task-global vs program-local vs utility.
  • Vocabulary, AI coach, calendar, progress đã được hiểu như cross-program task surfaces trong nhiều chỗ, nhưng chưa được gom thành một lớp IA rõ ràng.
  • Một số doc hiện vẫn nói theo owner page/module, chưa nói rõ chúng đang nằm ở trục program hay trục task.
  • Intent-first routing là rule ở tầng ecosystem: từ entry point phải phân loại được nhu cầu course, self-study, hoặc exploration.
  • No dead-end là invariant toàn hệ: mọi route chính phải có next action hoặc safe fallback.
  • Home pre-login giữ role discovery và conversion:
    • course CTA -> consultation/assessment/enrollment,
    • self-study CTA -> auth-first -> program landing/bank/module,
    • feature CTA -> auth-first -> module route.
  • Home post-login giữ role router chung:
    • Today plan,
    • Continue / Due queue,
    • Weekly goal / Target countdown,
    • entry points,
    • compact snapshots.
  • Protected action dùng auth-first + returnTo.
  • returnTo active contract:
    • valid window 24h,
    • valid target -> quay lại exact protected context,
    • invalid target -> fallback ladder:
      • nearest valid same skill/program route,
      • program-level valid route,
      • Home only as final fallback.
  • Signup hoàn tất:
    • mặc định vào Home post-login,
    • nhưng nếu auth/signup phát sinh từ protected in-progress context thì return đúng context trước, không chèn goal popup tại chính thời điểm return.
  • Owner chain:
    • Home / Program landing / Exercise bank sở hữu entry và browse escape hatch,
    • PRA sở hữu Entry -> Attempt -> Result -> Return,
    • LM sở hữu diagnosis/history/weekly debt,
    • Vocabulary sở hữu daily review queue và memory health.
  • PRA là route-contract owner chi tiết nhất:
    • required params,
    • invalid-contract fallback,
    • result return,
    • LM/Vocabulary impact sync.
  • Course Management là hub owner:
    • tabs/hub navigation,
    • search/notif deeplink + highlight,
    • invalid tab/course fallback,
    • handoff sang PRA result hoặc course detail context khi cần.
  • Course không tự sở hữu auth policy riêng; vẫn dùng shared auth-first + returnTo.
  • Checkout là protected flow:
    • guest phải login trước step đầu tiên,
    • required data là email verified + phone contact cho Pro/course flows,
    • không hard-gate goal/profile.
  • Post-payment return:
    • từ landing/exploration -> quay về context trước + success popup,
    • từ attempt/result -> reload current context và unlock ngay.
  • Smart Search là navigation/orchestration layer:
    • dùng mô hình Intent x Context x Depth,
    • có thể mở PAGE, STEP, AI, hoặc EXEC,
    • mọi handoff protected phải giữ returnTo.
  • AI Inline -> AI Tutor phải export packet có returnTo; packet lỗi vẫn phải mở chat bằng fallback seed tối thiểu, không block hội thoại.
  • Home: quyết định đi đâu tiếp ngay bây giờ.
  • Program landing: quyết định nên ưu tiên lane/module nào trong program này.
  • Exercise bank: quyết định tự chọn bài nào.
  • PRA: quyết định vào bài / nộp bài / xem kết quả / quay lại đâu.
  • LM: quyết định yếu ở đâu, tuần này thiếu gì.
  • Course Management: quyết định task/course tab nào cần xử lý.
  • Vocabulary Dashboard: quyết định hôm nay ôn từ nào và đã nhớ tới đâu.
  • Payment: quyết định mua gì / bằng cơ chế nào / quay lại context nào sau success.
  • Smart SearchAI Tutor: không sở hữu page role; chỉ orchestration giữa các owner route.
  • Drift 1: một số Home/Auth docs cũ vẫn nói invalid returnTo fallback thẳng về Home, không theo ladder context-aware hiện tại.
  • Drift 2: decision history giai đoạn đầu (DEC-0011, DEC-0043, DEC-0063) vẫn giữ rule fallback đơn giản hơn; active execution phải theo STATE_Entry_Access_FoundationDEC-0064.
  • Drift 3: Vocabulary có owner question rõ nhưng thiếu một route continuity contract ngắn tương đương PRA/CM cho deep link, auth return, session exit, và invalid context fallback.
  • Drift 4: trước audit này chưa có một execution map ngắn gom toàn bộ backbone navigate; rule nằm rải ở Home, Register, PRA, CM, PAY, SSP, AIT.
  • Drift 5: docs hiện đã có owner map theo page question, nhưng chưa có lớp content classification rõ theo Program x Task như idea mới đề xuất.
  1. Dọn hết canon drift ở Home, Register, Onboarding, Payment, Account quanh returnTo và fallback ladder.
  2. Chốt taxonomy IA mới ở mức working draft:
    • public discovery,
    • task-global,
    • program-local,
    • utility.
  3. Viết một short route contract cho Vocabulary ở mức dashboard/session continuity.
  4. Kiểm tra Smart Search area bundles/context-pack contracts để chắc rằng mỗi handoff lớn đều mang đủ returnTo.
  5. Chỉ sau khi owner docs đã sạch drift mới cân nhắc thêm supersession note cho decision history cũ.
  • Grep lại các active docs để bảo đảm không còn câu fallback thẳng về Home ở owner docs hiện hành.
  • Kiểm tra Home, Register, PRA, Payment, Account đều cùng nói một ladder fallback.
  • Chạy project_knowledge.py session-audit sau batch cập nhật.