PRDsExercise AILinear Tool — Data Entry
DraftDT-4662Exercise AIFigma design ↗SpeakingAIAuthoringDataEntryOutline

PRD học viên: Type 2: Linear Tool · Tài liệu kỹ thuật: Technical Proposal

Bối cảnh & lý do

Người soạn nội dung cần một màn để tạo bài Linear Tool cho học viên làm. Tài liệu này nói về màn soạn nội dung của Dạng 2 — một luồng 3 bước để dựng bài, nhập câu hỏi, rồi xuất bản. Phần học viên làm bài có PRD riêng (cùng nhóm Exercise AI).

Đặc điểm nổi bật so với Dạng 1: người soạn chỉ nhập câu hỏi gốc. Phần còn lại — bối cảnh, gợi ý ý tưởng, câu tiếng Anh cho từng thẻ, đoạn văn tổng hợp, giọng đọc mẫu — hoàn toàn do AI sinh ngay lúc học viên làm bài. Đây là lựa chọn thiết kế có chủ đích: giữ cho phần soạn nội dung thật gọn.

Đã chốt: người soạn chỉ nhập câu hỏi gốc cho mỗi câu — không nhập bối cảnh, không nhập gợi ý, không nhập đáp án mẫu · KHÔNG có trường “Độ khó” ở dạng bài này · luồng soạn 3 bước: Basic info → Create test → Publish · import hàng loạt qua Google Sheet hoặc CSV, cột bắt buộc duy nhất là “Câu hỏi”.


Ai dùng & khi nào

  • Người dùng: người soạn nội dung / admin (đội nội dung) tạo hoặc chỉnh sửa một bài Dạng 2 trên công cụ soạn bài.
  • Khi nào: dựng một loạt câu hỏi gốc (Task Checker gợi ý ~10 câu) cho một bài, rồi xuất bản cho một nhóm người xem.

Trong phạm vi

  • Luồng soạn 3 bước cho một bài Dạng 2: Basic info → Create test → Publish.
  • Nhập câu hỏi gốc — nhập tay hoặc import hàng loạt từ Google Sheet / CSV.
  • Xuất bản bài cho một nhóm người xem.

Ràng buộc — Không được làm / Ngoài phạm vi

Không được:

  • Nhập hoặc lưu “Độ khó” — Linear Tool không có độ khó; trường này không tồn tại ở dạng bài này. (Lưu ý: thiết kế hiện tại có hiển thị một trường “Độ khó / Part 2” — đây là lỗi mang từ Dạng 1 sang, cần loại khỏi thiết kế; xem “Những điểm cần chốt”.)
  • Bắt nhập “bối cảnh”, “gợi ý nhánh”, “đáp án mẫu”, hay bất kỳ nội dung AI nào — những thứ này AI sinh lúc học viên làm bài, không soạn thủ công.
  • Bắt nhập điểm số hay tiêu chí chấm — Linear Tool không có điểm số.
  • Vượt quá số câu hỏi tối đa cho phép trong một bài (số cụ thể chưa chốt — xem “Những điểm cần chốt”).

Ngoài phạm vi:

  • Màn danh sách bài và các màn soạn nội dung khác — không thuộc tài liệu này.
  • Soạn nội dung cho các dạng Speaking còn lại — mỗi dạng PRD riêng.
  • Lựa chọn mô hình AI, dịch vụ nhận diện giọng nói (STT), cách viết prompt, hợp đồng backend — để lúc triển khai quyết.

Các bước soạn bài

Bước 1 — Basic info

  • Test name — bắt buộc, nhập tự do.
  • Dạng bài — bắt buộc; dropdown chọn loại bài. Với Linear Tool, giá trị hiển thị là “Guided practice (Part 1, 2, 3)” và trường này bị khóa — người soạn không chọn tay, hệ thống tự gắn đúng dạng. Toàn bộ danh sách tuỳ chọn và ý nghĩa của từng lựa chọn chưa rõ (xem “Những điểm cần chốt”).
  • Độ khó — KHÔNG có ở dạng bài này. Thiết kế hiện tại đang hiển thị trường này là sai (carryover từ Dạng 1) — xem “Những điểm cần chốt”.
  • Preview UI làm bài — khung xem trước giao diện học viên, tự đổi theo dạng đã chọn.
  • Import danh sách câu hỏi:
    • Toggle chọn nguồn: GOOGLE SHEET hoặc .CSV FILE.
    • Ô nhập link Google Sheets.
    • Link “Xem file mẫu”.
    • Khối “Template mẫu”: cột bắt buộc duy nhất là “Câu hỏi”.
    • Bảng ví dụ mẫu.
    • Khi import sẵn sàng: hiện số lượng đọc được (ví dụ “Câu hỏi: 15”), bảng preview, nút “Import và vào Create test”.
    • Xử lý lỗi khi kiểm tra link (đã chốt theo bản triển khai, DT-4662 — thiết kế gốc không định nghĩa trạng thái lỗi): sheet không đọc được (link sai / chưa share public) → hiện thông báo lỗi inline ngay dưới ô nhập link với nội dung lỗi từ hệ thống (ví dụ “Cannot read the Google Sheet — make sure the sheet is shared/public…”), giữ nguyên trên màn hình cho tới khi người soạn sửa link. Sheet đọc được nhưng sai cấu trúc (thiếu cột “Câu hỏi”) → vẫn hiện preview, nút import bị khóa kèm thông báo.

Bước 2 — Create test

Sidebar trái — “DANH SÁCH CÂU HỎI”:

  • Hai nút: “Add”“Import”.
  • Danh sách câu hỏi dạng ô có số thứ tự; bấm để chọn câu cần chỉnh.

Panel chính (giữa):

  • Chưa có câu: hiện thông báo “Chưa có câu hỏi” cùng link “Add question +” và “Import”.
  • Đã có câu: thẻ “Để bài” với chú thích “User dùng Linear để trả lời câu hỏi” và MỘT trường duy nhất:
    • Question — bắt buộc; câu hỏi gốc hiển thị trên thẻ root của sơ đồ phía học viên.

Đây là trường duy nhất người soạn nhập cho mỗi câu. Không có trường bối cảnh, không có cấu hình loại ý, không có đáp án mẫu, không có dữ liệu AI, không có giới hạn nhánh riêng từng câu.

Sidebar phải — “PREVIEW”: ảnh xem trước giao diện học viên.

TASK CHECKER:

  • Dòng “Question” — theo dõi câu hỏi đã điền.
  • Dòng “10 câu hỏi trong bài” — hiện là hướng dẫn / gợi ý số lượng; chưa rõ đây có phải giới hạn cứng không (xem “Những điểm cần chốt”).

Bước 3 — Publish

  • Chip chọn nhóm xuất bản “Publish for”: No Publish (nháp, chưa xuất bản) · Publish for all (mặc định) · Teacher · For Program Director · CS · TA · Guest.
  • Nút Save (lưu mà không xuất bản — có ở mọi bước) · Back · Publish (xuất bản cho nhóm đã chọn).

Tiêu chí nghiệm thu

  • Bước 1 nhập được test name; dạng bài tự hiển thị đúng kiểu Linear Tool và bị khóa.
  • Trường “Độ khó” không xuất hiện ở bất kỳ bước nào.
  • Import Google Sheet / CSV đọc đúng cột “Câu hỏi”; hiện số lượng và bảng preview trước khi import.
  • Thêm câu được bằng tay (Add) hoặc import; mỗi câu lưu đúng một trường “Question”.
  • Task Checker phản ánh trạng thái điền trường “Question” của từng câu.
  • Không có ô nào để nhập bối cảnh, gợi ý nhánh, đáp án mẫu, hay bất kỳ nội dung AI nào.
  • Không có ô điểm số hay tiêu chí chấm.
  • Save lưu mà không xuất bản; Publish xuất bản cho nhóm đã chọn; mặc định là Publish for all.

Dữ liệu & đầu vào

Người soạn chỉ nhập câu hỏi gốc (trường “Question”) cho mỗi câu. Ở mức bài: test name, dạng bài (tự động), nhóm xuất bản.

Toàn bộ nội dung AI — bối cảnh bài nói, gợi ý ý tưởng, câu tiếng Anh từng thẻ, đoạn văn tổng hợp, giọng đọc mẫu, xếp loại sau khi nói — được sinh ngay lúc học viên làm bài, không soạn trước.


Những điểm cần chốt

⚠️ Các quyết định còn mở, kèm người phụ trách:

  • Trường “Độ khó / Part 2” trong thiết kế — PO xác nhận đây là lỗi carryover từ Dạng 1, không áp dụng cho Linear Tool. Cần designer xóa trường này khỏi Figma và cập nhật thiết kế. (designer — ưu tiên)
  • Giới hạn số câu tối đa — Task Checker gợi ý “10 câu hỏi trong bài”; đây là khuyến nghị hay giới hạn cứng? Nếu là giới hạn cứng thì con số chính xác là bao nhiêu? (Dạng 1 giới hạn 50 câu.) (PM/Eng)
  • Danh sách tuỳ chọn “Dạng bài” — toàn bộ các lựa chọn trong dropdown là gì, mỗi lựa chọn gắn với dạng bài nào? “Guided practice (Part 1, 2, 3)” nghĩa cụ thể là gì — có phân biệt Part 1/2/3 không? (designer)
  • Cột import — template mẫu chỉ hiện cột “Câu hỏi”; có cột tuỳ chọn nào khác không? Quy tắc xử lý dòng sai / vượt giới hạn (từng dòng trong sheet) vẫn cần chốt phía BE. (designer/Eng) — Riêng lỗi không đọc được sheet (link sai / chưa share) đã chốt theo bản triển khai: thông báo inline dưới ô nhập link (xem Bước 1).
  • Sắp xếp / xóa / sửa câu hỏi đã tạo — sidebar có icon kéo thả; xác nhận cho phép kéo đổi thứ tự, sửa, và xóa từng câu. (designer)
  • Xuất bản lại / sửa bài đang chạy — có cho chỉnh sửa bài đã publish không? Học viên đang làm dở thì ứng xử thế nào? (PM)
  • Khả thi phần AI lúc chạy — AI phải sinh nhiều loại nội dung khác nhau (bối cảnh, câu tiếng Anh từng thẻ, đoạn văn tổng hợp, giọng đọc, xếp loại). Cần Eng đánh giá độ trễ, chi phí mỗi lượt và độ an toàn trước khi cam kết phạm vi. (Eng — quan trọng)

Thiết kế tham chiếu