Skip to content

SDD-038 · Hub /ielts: thứ tự vào cửa và các thẻ ​

Một phần của SDD-038 Cổng IELTS, phần tiếp của Hub và dashboard /ielts. Phần đầu là đặc tả đang áp dụng, mỗi mục giữ số § cũ; diễn biến và lý do nằm ở mục Lịch sử quyết định cuối trang.

56. Thứ tự vào cửa: số 1..N, và một vòng dẫn đường lần đầu (SRC-944, 2026-09-21) ​

Thứ tự đã có, nhưng chưa ai viết nó ra. Bốn kỹ năng ở /ielts xếp đúng thứ tự Reading → Listening → Writing → Speaking từ SRC-808, và bảng năng lực nhỏ xếp theo seq của server từ SRC-862. Cả hai lần thứ tự ấy chỉ nằm trong thứ tự các dòng — mà một danh sách bốn dòng ngang nhau không nói được rằng nó LÀ một thứ tự. Learner mở trang lần đầu đọc ra bốn lối đi song song và phải tự đoán nên vào đâu trước. Con số nói thẳng điều ấy.

Số 1 tô đặc, các số sau chìm xuống, và dòng số 1 ở /ielts mang thêm nhãn "Start here". Mắt cần MỘT chỗ đậu khi mở một trang lạ; mười một điểm nhấn thì không điểm nào là nhấn. Cùng một hình dạng con số ở cả hai màn (apps/learn/src/ielts/StepNumber.tsx dùng chung): hai màn ấy là hai bước liên tiếp của cùng một câu hỏi — vào đâu trước, rồi luyện gì trước — nên một vòng tròn kiểu này ở màn đầu và một con số trần kiểu kia ở màn sau là bắt learner học lại cách đọc.

Số là GỢI Ý, không phải khoá. Cả bốn dòng vẫn bấm được như nhau, không dòng nào bị xám hay chặn lại: learner cần luyện Speaking cho buổi phỏng vấn tuần sau thì vào thẳng Speaking. Ở bảng năng lực, số chạy liên tục qua các cụm của Writing, vì nó đánh số một thứ tự luyện chứ không đánh số vị trí trong cụm — bốn dòng cùng mang số 1 thì con số hết nói được "bắt đầu từ đây".

Vòng dẫn đường dùng lại Tour.tsx (SRC-114), không dựng cơ chế thứ hai. Đèn rọi làm sáng đúng thứ đang nói và làm mờ phần còn lại — đúng thứ chỉ đạo mô tả. Ba bước ở /ielts, hai bước ở trang kỹ năng, mỗi vòng một khoá localStorage nên chỉ tự mở MỘT lần; Esc / bấm ra ngoài / "Skip the tour" luôn thoát được. Bảng năng lực dùng CHUNG một khoá cho cả bốn kỹ năng: bốn trang có cùng cách đọc, nên rọi đèn lại ở trang thứ hai là kể lại một chuyện learner vừa nghe.

Khung tour nay nhận nhãn chữ qua prop (TOUR_VI mặc định, TOUR_EN cho /ielts/**): sân luyện nói tiếng Anh (SRC-834), và một hộp thoại "BƯỚC 1/3 · Tiếp · Bỏ qua hướng dẫn" bật lên giữa một màn hình tiếng Anh là đúng lớp dịch thừa mà chỉ đạo ấy đã gỡ. Tour.tsx là bản canonical được chép y hệt sang apps/marlins/src/Tour.tsx, nên nhãn đi bằng prop chứ không bằng context của một app.

Gác: apps/learn/e2e/smoke.spec.ts — ca "thứ tự luyện…" đòi mọi dòng có số chạy 1..N và đọc được thành lời ("Step 1 of 10"); ca "dẫn đường lần đầu…" đòi tour tự mở, đóng được bằng Esc, không mở lại sau khi tải lại trang, nói tiếng Anh, và đếm số bước ("Step 1 of 2"). Đếm bước là cái gác một lỗi im lặng thật: Shell.Link khai từng prop một chứ không gom ...rest, nên quên chuyền data-tour xuống là Tour lọc bỏ bước ấy không báo gì — tour vẫn mở bình thường, chỉ ngắn đi một bước. Toàn bộ 278 ca của bộ e2e chạy xanh trên bản build thật.

74. Hub: bỏ hai thẻ, thêm thẻ "This month" (SRC-971, 22.09.2026) ​

74a. Khối Learning Setup ​

  • Hai dòng đi thẳng tới trang của chúng (/ielts/learner-profile, /ielts/learning-plan), không ghé /ielts/setup nữa: màn ấy giờ cũng chỉ có đúng hai dòng đó.
  • Rộng khoảng một phần ba màn: hai dòng, mỗi dòng một cái tên và một cái nhãn; kéo hết chiều ngang thì giữa chúng là một quãng trống dài bằng cả màn.
  • Bỏ dòng đếm "1 of 2 done" — hai dòng ngay dưới đã mang nhãn riêng.
  • Nút gập nhận aria-label riêng: bỏ dòng đếm đi thì tên đọc được của nó trùng đúng với mục "Learning Setup" trong menu tài khoản, và không ai (kể cả e2e) chỉ đúng được một trong hai.
  • Ô "Plan Board" ở hàng lối đi đã bỏ: nó thêm vào ở SRC-952 khi khối Setup chưa dẫn tới Learning Plan, và hai đường tới cùng một chỗ trên cùng một màn là một đường thừa.

74b. "Where you are now" → "This month" ​

Câu hỏi nó trả lời
Where you are now (đã bỏ)"điểm gần nhất của con là bao nhiêu" — một sự thật đã cũ
This month"tháng này con phải làm gì, và đã làm được bao nhiêu"

Thẻ cũ bày bốn con số đo từ nhiều tháng trước cộng một phép cộng 0.5 cho mọi kỹ năng — một dự đoán mà chính nó tự nhận là "không phải dự đoán". Learner đọc xong không có việc gì để làm khác đi.

Thẻ mới đọc từ chính kế hoạch learner đã lập (ielts-learning-plan), và bày ba thứ:

  1. Điểm đầu tháng → cuối tháng cho từng kỹ năng có tăng ở mốc này. Điểm đầu tháng tính bằng điểm đã đo cộng mọi mức tăng ở các mốc ĐÃ QUA — không đọc lại từ nguồn khác, vì hai nguồn cho cùng một con số là hai nguồn sẽ lệch.
  2. Giờ cần cho từng kỹ năng (0.1 band ≈ 3 giờ, cùng hằng số với Learning Plan).
  3. Giờ đã học so với giờ cần, kèm một vạch tiến độ. Đây là con số duy nhất trong thẻ đổi theo từng buổi học.

Hằng số HOURS_PER_HALF_BAND = 100 và dayReaching bỏ theo: con số 100 là một mặc định chung cho mọi learner, còn thẻ mới đọc nhịp riêng của từng người.

Chưa có kế hoạch thì thẻ biến mất, cùng luật im lặng với các thẻ khác ở dashboard.

94. Bốn trang kỹ năng cũng chia hai cụm (SRC-998, 23.09.2026) ​

Trước bản này bốn trang xếp liền một mạch: ba thẻ số, bảng năng lực nhỏ, rồi bốn ô lối đi, rồi dải luyện đề. Learner phải đọc lướt cả màn mới biết chỗ nào để XEM và chỗ nào để bắt tay vào việc - đúng cái mà SRC-988 vừa chữa ở trang chủ, chỉ là chưa chữa ở đây.

Bảng "Where am I strong?" ở LẠI phía trên vạch dù mỗi dòng của nó bấm được. Nó là một bảng số trả lời câu hỏi "mình đang ở đâu"; việc bấm được chỉ là lối tắt. Thứ nằm dưới vạch là những ô nói ra một VIỆC để làm ngay bây giờ.

Vạch ngăn là MỘT component dùng chung (WhatToDoNow trong Hub.tsx), không phải bốn lần chép: bốn bản sao của cùng một vạch là bốn chỗ sẽ trôi khỏi nhau ở lần sửa chữ đầu tiên. Production.tsx phục vụ cả Viết lẫn Nói nên ba file là đủ cho bốn trang.

Ca e2e chạy qua cả bốn trang và đo toạ độ y hai bên vạch. Một chi tiết đáng ghi: phép đo đầu tiên dùng chuỗi Practise, và nó khớp trúng cái chip "Practise by task type" nằm TRONG bảng năng lực phía trên - một phép đo tưởng đúng mà lại đo nhầm chỗ, và nó "xanh" theo hướng sai. Nay mỗi trang được gác bằng nhãn chính xác của ô đầu tiên.

100. Hub bớt màu cam: chỉ "Start here" giữ màu nhấn (SRC-1012, 23.09.2026) ​

Chủ dự án: "Giảm bớt màu da cam xuống. Chỉ để lại mỗi 'Start here' thôi." Trên hub, cam đang tô cùng lúc số bước dẫn đầu, viền card Learning Setup, chấm "Done", icon các kỹ năng, thanh tiến độ tháng và ô tuần. Màu nhấn xuất hiện sáu chỗ thì không còn nhấn chỗ nào.

  • Chỉ nhãn Start here giữ accent. Mọi chỗ khác chuyển sang họ ocean: tiến độ và "Done" dùng ocean-500, số bước dẫn đầu nổi bằng độ sáng (ocean-900), icon kỹ năng xám muted-foreground và chỉ đậm lên khi hover.
  • Viền cam của card Learning Setup bỏ hẳn: card đã đứng đầu và rộng hết hàng, vị trí đủ nói nó quan trọng.
  • Emoji 🔴/🏆 ở card Live class và Leaderboard thay bằng icon nét, cùng màu chữ, để không mang màu riêng vào.

107. Dashboard ở /ielts luôn hiện (SRC-1023, 24.09.2026) ​

Chủ dự án: "learner ko nhìn thấy các dashboard. Hãy cho hiển thị lên." Đảo lại luật cũ "chưa học thì giấu dashboard". Ba thẻ luôn đứng đó; thẻ nào chưa có số thì nói việc cần làm: This month ("No plan yet" + link Make my plan), Small wins ("Finish one exercise and your first win shows up here"). Chỉ ẩn khi chưa tải xong hoặc bản trả lời thiếu hình (last_7 vắng).

125. Popover của dashboard nói tiếng Việt, thêm ba icon (SRC-1070, 26.09.2026) ​

Chủ dự án: "Thêm một vài icon và Popover nữa. Và đổi nội dung các Popover này từ tiếng Anh sang tiếng Việt." Đúng với SRC-953: tên thẻ vẫn tiếng Anh, còn chữ Nemo GIẢI THÍCH thẻ là tiếng Việt.

  • Mười hai nội dung popover ở trang /ielts và trang kỹ năng (IeltsPathway.tsx, Hub.tsx) dịch sang tiếng Việt; tiêu đề popover giữ tên thẻ tiếng Anh.
  • Thêm dấu "?" cho ba thẻ hành động: Practise a skill, Build your base, Learn with others.

Lịch sử quyết định ​

Từ mục 56. Thứ tự vào cửa: số 1..N, và một vòng dẫn đường lần đầu (SRC-944, 2026-09-21) ​

Chỉ đạo chủ dự án 21.09.2026: "Cần hiển thị thứ tự READING đầu tiên, LISTENING thứ nhì… để cho Learner mới vào họ biết là nên vào đâu đầu tiên. Trong những lần đầu tiên vào hệ thống, learner sẽ nhìn thấy tính năng hướng dẫn (một vài item sáng lên, còn các item khác mờ mờ đi). Trong ảnh 2, cũng cần có số thứ tự, và cũng cần hiển thị số 1 sáng lên, rõ lên."

Từ mục 74. Hub: bỏ hai thẻ, thêm thẻ "This month" (SRC-971, 22.09.2026) ​

"Bỏ card 'Plan Board'. Click vào Learning Plan thì cần tới trang /ielts/learning-plan. Card LEARNING SETUP cần ngắn lại (…) Bỏ 1 of 2 done. Bấm vào link Learner Profile thì cần vào thẳng trang ielts/learner-profile.""Bỏ card 'WHERE YOU ARE NOW'. Bổ sung card nào đó mà learner biết được thông tin về riêng tháng này."

Từ mục 94. Bốn trang kỹ năng cũng chia hai cụm (SRC-998, 23.09.2026) ​

Chỉ đạo: trang chủ /ielts đã tách rõ phần thông tin ở trên và phần hành động ở dưới, ngăn nhau bằng một đường kẻ (SRC-988); bốn trang kỹ năng cần làm tương tự.