Kiểm kê bốn họ dạng câu hỏi, đối chiếu thế giới, đề xuất chuẩn hoá; giao diện Green Hill cho tiểu học và demo bấm thử các dạng nhiều chữ trên exam.flyer.us.
FLYER: 54 dạng, 4 danh mục tách rời · Thế giới: 4 nền tảng đối chiếuTài liệu được viết để trả lời yêu cầu đặt ra ngày 22/09/2026, nguyên văn:
Liệt kê cho anh tất cả các dạng question type trên hệ thống vào một link PRD
Do trợ lý AI soạn. Danh mục đọc từ mã nguồn kho exam; số lượng đếm trên read-replica ngày 22/09/2026. Phần nhận định và đề xuất là quan điểm của người soạn, chưa thống nhất với đội Nội dung và đội Kỹ thuật.
Hai tab Giao diện tiểu học và Màn mẫu (thêm 30/09/2026, trước đây ở trang riêng /question-theme; ngày 30/09 gộp ba tab Giao diện tiểu học, Dạng nhiều chữ, 58 mã thành hai tab):
Tài liệu trả lời yêu cầu ngày 30/09/2026, nguyên văn:
Từ documents này, phần Đề xuất chuẩn hoá. Thì lựa chọn vs build cho anh một theme tối ưu nhất cho học sinh tiểu học nhé https://roadmap.flyer.vn/question-types#chuan. 100% chỉ dùng các theme hiện tại của FLYER đã, không dùng theme nào mới
ý anh là các dạng text nhiều trên exam.flyer.us … Các dạng text dài UI/UX đang không tốt cho học sinh tiểu học(30/09/2026, sinh ra tab “Dạng nhiều chữ”)
Do trợ lý AI soạn, là bản đề xuất để thảo luận.
Nguồn: kho webs-exam (commit 4a9b532, 05/09/2026): danh sách giao diện ở practice_v2/components/PracticeChooseTheme, token ở exam-lesson/theme.ts, nút ở tailwind.config.js (.btn-question-type, .btn-solid), màu phản hồi ở FooterLesson. Ảnh nền, linh vật, nút đóng, biểu tượng thanh tiến độ là tệp gốc của giao diện starters. Chữ trên màn mẫu lấy từ tệp dịch common.json của trình làm bài.
Giới hạn:
b1fb1313), [MOVERS] Mock Test 1 (7778495e) và [FLYERS] Mock Test 1 (dfd8c16f), có rút gọn câu cho vừa khung máy; tranh minh hoạ trong màn đề xuất vẽ lại bằng Fluent Emoji (Microsoft, giấy phép MIT), giữ đúng đáp án của đề; ảnh “hiện tại” vẫn là ảnh chụp production. Tranh ba lựa chọn của phần Nghe tích ô là biểu tượng cảm xúc thay cho tranh gốc (tranh gốc quá nhỏ để cắt). Phần Nghe không phát băng thật nên màn mẫu nhận mọi câu trả lời. Các lượt làm bài thử dừng ở hộp xác nhận nộp bài, không nộp. Số đo chữ và thanh cuộn đọc từ trang đang chạy. Để vào phần Đọc–Viết, phần Nghe của lượt làm bài thử được nộp trống trên tài khoản này.FILL_LETTER, INTERACTIVE_VIDEO, OPEN_ENDED của Bingo Study đang báo Unknown part type trên production; ba màn này là bản dựng đề xuất. TRACE_LETTER chưa có bản ghi, FLASHCARDS_FILL chưa nối vào bài học nào.webs-study nhánh main 5da46a1 (28/09/2026), so với webs-exam 4a9b532. So bên exam theo tên khoá và byte ảnh, chưa so từng giá trị token. Chưa chụp trang thật (cần đăng nhập) và chưa xem ứng dụng iOS. Việc lộ trình Candy đang dùng starters lấy theo ghi chép ngày 19/08, chưa truy vấn lại. Màu nền là trung bình vùng giữa ảnh.webs-exam 4a9b532 và chụp trang thật ngày 30/09/2026 bằng tài khoản học sinh thử nghiệm, chỉ mở cửa sổ bài, không làm bài. Số sách, unit, checkpoint lấy từ dữ liệu trang. Đề xuất gắn giao diện theo sách là của người soạn.theme.ts, dùng trắng và bóng đổ trung tính.Không có danh mục dùng chung. Bốn danh mục riêng biệt, khai báo ở bốn tệp trong cùng một kho mã.
| Họ | Khai báo tại | Lưu ở bảng | Dạng | Bản ghi |
|---|---|---|---|---|
| Đề thi | exam.go · ExamPartType | questions.question_type | 10 | 36.813 |
| Luyện tập | practice.go · PracticePartType | practice_parts.type | 14 khai báo, 15 đang dùng | 207.147 |
| Bingo Study | bingo_study.go | bingo_study_parts.type | 15 dạng + 32 biến thể | 22.197 |
| IELTS | ielts.go · IeltsDetailType | ielts_*_questions.details | 3 + 2 dạng tự luận | 3.738 |
54 dạng nếu tính cả biến thể Bingo Study, 42 dạng nếu chỉ tính dạng chính. Tổng 269.895 bản ghi, chưa kể hai kho ở mục 7.
Thư viện bài trên trang học sinh không phải họ thứ năm. Ba tab của exam.flyer.us/en/libraries là ba cách xếp bài chứ không sinh thêm dạng câu hỏi: FLYER mini tests lấy từ họ đề thi, Quiz và Community lấy từ họ luyện tập. Bấm vào một bài ở tab Quiz, đường dẫn chuyển thẳng sang /en/practice/<id>.
Mã là giá trị trong cơ sở dữ liệu, tên hiển thị là nguyên văn từ mã nguồn. Bản ghi đếm ngày 22/09/2026.
còn dùng có bản ghi trong 30 ngày · ít dùng dưới 100 bản ghi · đã dừng không có bản ghi mới trong 12 tháng
Đề thi thử theo khung Cambridge và bài giáo viên giao. Ba nhóm kỹ năng: listening, reading_writing, speaking.
| Mã | Tên hiển thị | Kỹ năng | Câu | Tạo gần nhất | Trạng thái |
|---|---|---|---|---|---|
| gapfill | Gap fill | Nghe, Đọc viết | 18.764 | 24/08/2026 | còn dùng |
| multichoice | Multiple choice | Nghe, Đọc viết | 11.162 | 06/09/2026 | còn dùng |
| dragdrop | Drag & Drop | Nghe, Đọc viết, Nói | 3.623 | 30/07/2026 | còn dùng |
| matching | Matching | Nghe, Đọc viết | 1.352 | 10/08/2026 | còn dùng |
| word_ordering | Word ordering | Nghe, Đọc viết | 964 | 30/07/2026 | còn dùng |
| scrambled_sentence | Scrambled sentence | Nghe, Đọc viết | 831 | 30/07/2026 | còn dùng |
| OPEN_ENDED | Open Ended | Đọc viết | 63 | 27/08/2026 | ít dùng |
| SPEAKING | Speaking | Nói | 28 | 01/07/2026 | ít dùng |
| SCENE_CARD_SPEAKING | Scene Card Speaking | Nói | 25 | 31/07/2025 | đã dừng |
| TRACING | Tracing | Đọc viết | 1 | 21/09/2026 | ít dùng |
Kho lớn nhất, hơn ba phần tư toàn bộ nội dung. Bài luyện tập theo checkpoint; một phần chứa được nhiều câu con.
| Mã | Tên hiển thị | Phần | Tạo gần nhất | Trạng thái |
|---|---|---|---|---|
| MULTICHOICE | Multiple Choice | 128.536 | 22/09/2026 | còn dùng |
| GAPFILL | Gap Fill | 37.984 | 22/09/2026 | còn dùng |
| DROPDOWN | Drop Down | 27.549 | 22/09/2026 | còn dùng |
| AUDIO_RESPONSE | Audio Response | 3.387 | 22/09/2026 | còn dùng |
| FLASHCARD | Flash Card | 2.746 | 19/09/2026 | còn dùng |
| AUDIO_RESPONSE_PAGE | Audio Response | 1.677 | 22/09/2026 | còn dùng |
| WORD_ORDERING | Word Ordering | 1.520 | 21/09/2026 | còn dùng |
| REORDER | Scrambled Sentence | 1.259 | 17/09/2026 | còn dùng |
| PASSAGE | Passage | 770 | 22/09/2026 | còn dùng |
| OPEN_ENDED | Open Ended | 763 | 22/09/2026 | còn dùng |
| MATCH | Matching | 442 | 21/09/2026 | còn dùng |
| DRAG_DROP | Drag & Drop | 406 | 22/09/2026 | còn dùng |
| INTERACTIVE_VIDEO | Interactive Video | 101 | 22/09/2026 | còn dùng |
| TRACING | Tracing | 4 | 22/09/2026 | ít dùng |
| CONTENT | chưa có trong danh mục | 3 | 21/09/2026 | ít dùng |
CONTENT có ba bản ghi trên production nhưng không khai báo ở practice.go, nên tên hiển thị trả về rỗng. Cần xác nhận là dạng mới hay dữ liệu nhầm.REORDER hiển thị là “Scrambled Sentence”, trùng khái niệm với mã scrambled_sentence ở họ đề thi. AUDIO_RESPONSE và AUDIO_RESPONSE_PAGE dùng chung một tên hiển thị.Lộ trình học trên study.flyer.us và ứng dụng Bingo AI. Hai tầng: dạng phần quyết định cách chấm, biến thể quyết định cách trình bày. Bảng đã đổi tên từ duolingo_* ngày 19/08/2026.
| Mã | Tên hiển thị | Phần |
|---|---|---|
| MULTIPLE_CHOICE | Multiple Choice | 6.831 |
| GAP_FILL | Gap Fill | 3.938 |
| SPEAKING | Speaking | 2.598 |
| FLASHCARD | Flashcard | 2.396 |
| FILL_IN_BLANK | Fill in the Blank | 1.139 |
| SCRAMBLED_SENTENCE | Scrambled Sentence | 1.137 |
| STORY | Story | 1.023 |
| WORD_ORDERING | Word Ordering | 960 |
| MATCHING | Matching | 634 |
| DRAG_DROP | Drag & Drop | 542 |
| OPEN_ENDED | Open Ended | 522 |
| SELECT_OBJECT | Select Object | 320 |
| FILL_LETTER | Fill Letter | 94 |
| INTERACTIVE_VIDEO | Interactive Video | 63 |
| TRACE_LETTER | Trace Letter | 0 |
TRACE_LETTER đã khai báo nhưng chưa có bản ghi; hai họ kia dùng TRACING cho cùng việc tô chữ. Cần chốt một mã trước khi số hoá nội dung mầm non.Tầng quyết định giao diện học sinh nhìn thấy. Cùng là Multiple Choice, YES_NO hiện hai nút, IMAGE_SELECT hiện bốn ảnh.
| Biến thể | Thuộc dạng | Phần |
|---|---|---|
| YES_NO | Multiple Choice | 3.798 |
| IMAGE_FILL | Gap Fill | 3.238 |
| IMAGE_SPEAK | Speaking | 2.456 |
| FLASHCARDS | Flashcard | 2.376 |
| IMAGE_SELECT | Multiple Choice | 1.650 |
| WORD_ORDERING | Word Ordering | 960 |
| IMAGE_TAP_COMPLETE | Fill in the Blank | 918 |
| IMAGE_TAP | Scrambled Sentence | 872 |
| SELECT | Multiple Choice | 742 |
| TRANSLATE | Gap Fill | 607 |
| DRAG_DROP | Drag & Drop | 543 |
| OPEN_ENDED | Open Ended | 522 |
| IMAGE_MATCH | Matching | 322 |
| SELECT_OBJECT | Select Object | 320 |
| DIALOGUE | Multiple Choice | 311 |
| MATCH | Matching | 281 |
| TAP_COMPLETE | Fill in the Blank | 204 |
| TRUE_FALSE | Multiple Choice | 160 |
| TRANSLATE_TAP | Scrambled Sentence | 153 |
| SPEAK | Speaking | 142 |
| LISTEN_TAP | Scrambled Sentence | 106 |
| FILL_LETTER | Fill Letter | 94 |
| LISTEN | Gap Fill | 92 |
| ASSIST | Multiple Choice | 89 |
| INTERACTIVE_VIDEO | Interactive Video | 63 |
| SELECT_TRANSCRIPTION | Multiple Choice | 42 |
| LISTEN_ISOLATION | Multiple Choice | 39 |
| LISTEN_MATCH | Matching | 31 |
| FLASHCARDS_FILL | Flashcard | 20 |
| STORY_TAP_COMPLETE | Fill in the Blank | 16 |
| STORY_TAP | Scrambled Sentence | 6 |
| TRACE_LETTER | Trace Letter | 0 |
1.024 phần không mang biến thể, gần như toàn bộ là STORY, màn kể chuyện không chấm điểm.
Họ gọn nhất. Mỗi câu là một khối chứa mảng details, mỗi phần tử mang một trong ba dạng; một bài đọc trộn được cả ba.
| Mã | Cách trả lời | Đọc | Nghe | Viết |
|---|---|---|---|---|
| GAP_FILL | Điền vào chỗ trống | 4.411 | 3.468 | 614 |
| SELECT | Chọn từ danh sách xổ xuống | 775 | 1.370 | 46 |
| OPTION | Chọn một trong các phương án | 1.804 | 192 | 123 |
Ngoài ba dạng chấm tự động ở trên, họ IELTS còn hai dạng tự luận không dùng details:
Số câu: Nói 1.373 · Đọc 1.328 · Nghe 904 · Viết 133.
| Kho | Bảng | Bản ghi | Tình trạng |
|---|---|---|---|
| Ngân hàng câu Nói của Bingo | speaking_questions | 15.074 | Còn dùng. 12.414 câu yêu cầu học sinh ghi âm, 10.465 câu có nhiều lượt hội thoại. Không mang trường type, hình dạng câu hỏi nằm trong body. |
| Kho luyện tập thế hệ cũ | question_practices | 16.544 | Đã dừng. Bản ghi mới nhất tạo ngày 28/03/2025, trước khi practice_parts thay thế. |
Thống kê bỏ qua hai kho này sẽ lệch khoảng ba mươi nghìn bản ghi.
Một khái niệm mang tên khác nhau ở từng họ, nên không truy vấn đếm được toàn bộ câu điền khuyết trên hệ thống.
| Khái niệm | Đề thi | Luyện tập | Bingo Study | IELTS |
|---|---|---|---|---|
| Điền khuyết | gapfill | GAPFILL | GAP_FILL | GAP_FILL |
| Trắc nghiệm | multichoice | MULTICHOICE | MULTIPLE_CHOICE | OPTION |
| Nối cặp | matching | MATCH | MATCHING | không có |
| Sắp xếp câu | scrambled_sentence | REORDER | SCRAMBLED_SENTENCE | không có |
| Sắp xếp từ | word_ordering | WORD_ORDERING | WORD_ORDERING | không có |
| Kéo thả | dragdrop | DRAG_DROP | DRAG_DROP | không có |
| Chọn từ danh sách | không có | DROPDOWN | không có | SELECT |
| Tự luận | OPEN_ENDED | OPEN_ENDED | OPEN_ENDED | dạng Viết riêng |
| Nói | SPEAKING | AUDIO_RESPONSE | SPEAKING | dạng Nói riêng |
| Tô chữ | TRACING | TRACING | TRACE_LETTER | không có |
| Câu hỏi | Vì sao cần quyết | Người quyết |
|---|---|---|
Giá trị CONTENT trong practice_parts là dạng mới hay dữ liệu nhầm? | Ba bản ghi đang chạy mà không có tên hiển thị. Nếu là dạng mới thì phải bổ sung vào danh mục, nếu nhầm thì phải xoá trước khi nhân lên. | Kỹ thuật |
Tô chữ dùng TRACING hay TRACE_LETTER? | Hai mã cho cùng một việc ở ba họ khác nhau, một trong hai chưa có bản ghi nào. Chốt sớm thì đỡ phải chuyển đổi dữ liệu về sau. | Nội dung + Kỹ thuật |
| Có cần một bảng quy đổi dùng chung giữa bốn họ không? | Không có bảng này thì mọi báo cáo về cơ cấu nội dung đều phải viết tay danh sách mã, và sẽ sai mỗi khi có dạng mới. | Sản phẩm + Dữ liệu |
Hai mã AUDIO_RESPONSE và AUDIO_RESPONSE_PAGE khác nhau ở điểm nào? | Chúng dùng chung một tên hiển thị nên người soạn nội dung không phân biệt được khi chọn. | Kỹ thuật |
| Bốn dạng viết hoa trong họ đề thi có nên gộp về quy ước chung không? | Danh mục đang trộn hai quy ước viết thường và viết hoa, là dấu vết của hai đợt phát triển. Đổi được thì đọc dễ hơn, nhưng phải chuyển đổi dữ liệu cũ. | Kỹ thuật |
Có xoá kho question_practices không? | 16.544 bản ghi không còn được ghi thêm từ tháng 3/2025, vẫn nằm trong cơ sở dữ liệu và vẫn lọt vào các phép đếm thiếu cẩn thận. | Kỹ thuật |
Nguồn: kho exam tại ent/schema/property/; read-replica ngày 22/09/2026, không loại dữ liệu mẫu.
Tham chiếu khi cân nhắc bổ sung dạng mới. Mục 6 đối chiếu với FLYER, mục 7 xếp thứ tự ưu tiên.
Đối chiếu để trả lời hai câu hỏi: dạng nào phổ biến khắp nơi mà FLYER chưa có, và dạng nào FLYER đã có nhưng đặt tên khác.
| Nền tảng | Vì sao chọn |
|---|---|
| Moodle | Mã nguồn mở dùng rộng nhất, danh mục sâu nhất về chấm tự động |
| Canvas | Thương mại phổ biến nhất ở trường Hoa Kỳ, vừa làm lại toàn bộ bộ đề |
| H5P | Chuẩn nội dung tương tác cắm vào Moodle và Canvas; thiên luyện tập, gần Bingo Study nhất |
| Blackboard Ultra | Danh mục cố tình giữ gọn, chỉ sáu dạng |
Mười bảy dạng trong bản cài đặt chuẩn, mạnh nhất ở nhóm toán và khoa học.
| Tên | Học sinh trả lời thế nào | FLYER |
|---|---|---|
| Multiple choice | Chọn một hoặc nhiều phương án | đã có |
| True/False | Chọn đúng hoặc sai | đã có |
| Matching | Nối từng câu hỏi con với đáp án đúng | đã có |
| Drag and drop matching | Nối bằng cách kéo thả thay vì chọn | đã có |
| Short answer | Gõ một từ hoặc cụm từ, so với danh sách đáp án chấp nhận | chưa có |
| Numerical | Gõ một con số, có biên sai số chấp nhận được | chưa có |
| Essay | Viết đoạn văn, hoặc nộp tệp, giáo viên chấm tay | đã có |
| Calculated | Như Numerical nhưng số trong đề lấy ngẫu nhiên mỗi lần làm | chưa có |
| Calculated simple | Bản rút gọn của Calculated | chưa có |
| Calculated multichoice | Trắc nghiệm mà các phương án là kết quả công thức ngẫu nhiên | chưa có |
| Embedded answers (Cloze) | Một đoạn văn nhúng nhiều loại câu trả lời khác nhau bên trong | chưa có |
| Select missing words | Điền chỗ trống bằng danh sách xổ xuống | đã có |
| Drag and drop into text | Điền chỗ trống bằng cách kéo thẻ chữ vào | đã có |
| Drag and drop onto image | Kéo ảnh hoặc nhãn chữ vào các vùng thả trên một hình | đã có |
| Drag and drop markers | Kéo điểm đánh dấu lên đúng vị trí trên ảnh nền | chưa có |
| Random short-answer matching | Đề nối sinh ngẫu nhiên từ kho câu trả lời ngắn có sẵn | chưa có |
| Description | Không phải câu hỏi, chỉ là khối nội dung xen giữa đề | đã có |
Kho tiện ích cộng đồng còn có Ordering, Gapfill (kéo thả, hợp điện thoại), STACK (toán) và CodeRunner (chấm mã).
Hai bộ đề chạy song song. Bộ mới thêm bốn dạng tương tác mà bộ cũ không có.
| Tên | Học sinh trả lời thế nào | FLYER |
|---|---|---|
| Multiple Choice | Chọn một phương án đúng | đã có |
| Multiple Answer | Chọn nhiều phương án đúng | đã có |
| True or False | Chọn đúng hoặc sai | đã có |
| Matching | Nối từng vế bằng danh sách xổ xuống, có thể thêm đáp án nhiễu | đã có |
| Ordering | Sắp các đáp án theo đúng thứ tự | đã có |
| Categorization | Kéo từng mục vào đúng nhóm, có mục nhiễu không thuộc nhóm nào | chưa có |
| Fill in the Blank | Điền chỗ trống bằng gõ chữ, danh sách xổ xuống, hoặc kho từ cho sẵn | đã có |
| Hot Spot | Bấm đúng vùng trên một tấm ảnh | chưa có |
| Stimulus | Một ngữ liệu dùng chung cho nhiều câu hỏi kèm theo | đã có |
| Essay | Viết đoạn văn | đã có |
| File Upload | Nộp tệp, giới hạn được số lượng và định dạng | chưa có |
| Numeric | Gõ một con số | chưa có |
| Formula | Gõ đáp số của công thức có biến ngẫu nhiên | chưa có |
| Text Block | Không phải câu hỏi, chỉ là khối nội dung | đã có |
Mười hai dạng, thiếu Categorization, Hot Spot, Ordering và Stimulus. Riêng có Multiple Dropdowns (mỗi chỗ trống một danh sách riêng) và Likert Scale (khảo sát, không chấm điểm).
Chuẩn nội dung tương tác cắm vào Moodle, Canvas, WordPress. Thiên về luyện tập, nên gần Bingo Study nhất.
| Tên | Học sinh trả lời thế nào | FLYER |
|---|---|---|
| Multiple Choice | Chọn phương án | đã có |
| Single Choice Set | Chuỗi câu hỏi, mỗi câu chọn một đáp án, chạy liền mạch | đã có |
| True/False Question | Chọn đúng hoặc sai | đã có |
| Fill in the Blanks | Gõ từ còn thiếu trong đoạn văn | đã có |
| Drag the Words | Kéo thẻ chữ vào chỗ trống | đã có |
| Drag and Drop | Kéo ảnh hoặc chữ vào đúng vùng | đã có |
| Mark the Words | Bấm chọn đúng những từ cần đánh dấu trong một đoạn văn | chưa có |
| Find the Hotspot | Bấm đúng một điểm trên ảnh | chưa có |
| Find Multiple Hotspots | Bấm đúng nhiều điểm trên cùng một ảnh | chưa có |
| Image Sequencing | Sắp các tấm ảnh theo đúng thứ tự | chưa có |
| Sort the Paragraphs | Sắp các đoạn văn theo đúng mạch | chưa có |
| Speak the Words | Trả lời bằng giọng nói, máy nhận dạng và đối chiếu | đã có |
| Speak the Words Set | Chuỗi nhiều câu hỏi trả lời bằng giọng nói | đã có |
| Essay | Viết đoạn văn, có phản hồi tự động theo từ khoá | đã có |
| Summary | Chọn câu đúng trong từng nhóm câu tóm tắt bài | chưa có |
| Guess the Answer | Nhìn ảnh, đoán, rồi lật ra đáp án | đã có |
| Find the Words | Trò tìm từ trong ô chữ | chưa có |
| Arithmetic Quiz | Làm phép tính trong thời gian giới hạn | chưa có |
| Quiz (Question Set) | Gói nhiều dạng câu hỏi thành một bài | đã có |
Chỉ sáu dạng. Cho thấy một nền tảng lớn vẫn vận hành được với ít dạng, miễn mỗi dạng làm tốt.
| Tên | Học sinh trả lời thế nào | FLYER |
|---|---|---|
| Multiple Choice / Multiple Answer | Chọn một hoặc nhiều phương án | đã có |
| True/False | Chọn đúng hoặc sai | đã có |
| Fill in the Blank | Gõ từ vào chỗ trống | đã có |
| Matching | Nối thuật ngữ với định nghĩa | đã có |
| Jumbled Sentence | Ghép lại câu bị xáo trộn | đã có |
| Hotspot | Bấm đúng vùng trên ảnh | chưa có |
Bốn nền tảng gộp lại khoảng bốn mươi dạng. FLYER phủ phần lớn nhóm phổ thông, phủ vượt ở nhóm nói.
| Nhóm | Tình trạng của FLYER |
|---|---|
| Trắc nghiệm, đúng sai, nối cặp, điền khuyết, kéo thả, sắp xếp | Đã có đủ, ở cả bốn họ |
| Tự luận, nói, thẻ ghi nhớ, ngữ liệu dùng chung | Đã có |
| Bấm vùng trên ảnh | Chưa có. Ba trong bốn nền tảng đều có |
| Phân nhóm, đánh dấu từ trong văn bản | Chưa có |
| Nộp tệp | Chưa có trong đề; hiện chỉ có ở phần chấm bài của giáo viên |
| Số học, công thức, biến ngẫu nhiên | Chưa có. Ít liên quan tới dạy tiếng Anh |
| Trả lời ngắn chấm theo danh sách đáp án chấp nhận | Chưa có dạng riêng; điền khuyết đang gánh vai trò này |
Xếp theo mức phù hợp với dạy tiếng Anh, không theo độ khó kỹ thuật. Chưa thống nhất với đội Học thuật.
| # | Dạng | Dùng vào việc gì trong dạy tiếng Anh | Có ở đâu |
|---|---|---|---|
| 1 | Mark the Words | Đánh dấu động từ, tính từ, lỗi sai. Dạy ngữ pháp không cần gõ chữ, hợp điện thoại | H5P |
| 2 | Categorization | Xếp từ vào nhóm: đếm được, bất quy tắc, chủ đề từ vựng | Canvas |
| 3 | Hot Spot | Bấm vào vật trong tranh khi nghe từ. Phù hợp lứa tuổi nhỏ và phần giới từ chỉ vị trí | Canvas, Blackboard, H5P |
| 4 | Short answer có danh sách đáp án | Chấm tự động, chấp nhận nhiều cách viết đúng. Hiện phải mượn dạng điền khuyết | Moodle |
| 5 | Cloze nhiều loại đáp án | Một đoạn trộn điền khuyết, chọn phương án và trả lời ngắn. Giảm số phần phải tạo cho một bài đọc | Moodle |
| 6 | Sort the Paragraphs | Luyện đọc hiểu ở trình độ cao, nơi FLYER đang mỏng nội dung | H5P |
| 7 | File Upload | Nộp ảnh bài viết tay. Hợp phần Viết và bài tập về nhà | Canvas, Moodle |
| 8 | Image Sequencing | Sắp tranh theo trình tự rồi kể lại. Nối được với phần Nói | H5P |
| 9 | Drag and drop markers | Kéo nhãn lên đúng bộ phận trong tranh, dạy từ vựng theo chủ đề | Moodle |
Bốn danh mục hiện đặt tên theo bốn kiểu. Dưới đây là một quy ước chung kèm ví dụ, áp cho dạng mới trước, dạng cũ đổi dần.
| Quy tắc | Nên | Không nên |
|---|---|---|
| Mã máy viết hoa, nối bằng gạch dưới | GAP_FILL | gapfill · GAPFILL |
| Đặt theo việc học sinh làm, không theo cách trình bày | MATCHING | REORDER mà hiển thị là Scrambled Sentence |
| Cách trình bày để ở tầng biến thể, không ở tên dạng | MULTIPLE_CHOICE + biến thể IMAGE_SELECT | AUDIO_RESPONSE và AUDIO_RESPONSE_PAGE là hai dạng riêng |
Bảng quy đổi 73 mã hiện có về danh mục chuẩn, kèm trục biến thể, lộ trình và rủi ro, nằm ở tab Đề xuất chuẩn hoá. Bảng đó thay cho bản nháp trước đây ở mục này.
Nguồn, truy cập 22/09/2026: MoodleDocs · Question types, University of Wollongong · Moodle quiz question types, Moodle Plugins · Question types, Cal Poly Humboldt · Canvas New Quizzes, Cal Poly Humboldt · Canvas Classic Quizzes, H5P · Content types, Sheffield Hallam University · Blackboard question types.
Sáu mươi ảnh chụp trên production ngày 29 và 30/09/2026. Năm mươi sáu ảnh là màn hình học sinh thật, bốn ảnh còn lại là bản xem trước của giáo viên cho phần IELTS Nghe và Nói — đã ghi rõ dưới từng ảnh.
Mỗi ảnh lấy trên một bài chỉ chứa đúng một dạng câu hỏi, hoặc mở đúng phần cần chụp trong bài nhiều dạng. Cách này xử lý lỗi dán nhãn sai ở lần chụp đầu, khi trang xem trước của giáo viên render Bingo Study theo bingo_study_parts.type chứ không theo challenge.type.
| Nhóm | Đường dẫn chụp | Có ảnh |
|---|---|---|
| Họ đề thi | exam.flyer.us/en/check-point/<id> → Start normal exam | 9 / 10 dạng |
| Họ luyện tập | exam.flyer.us/en/practice/<id> → Start | 13 / 15 dạng |
| Bingo Study | exam.flyer.us/en/study/<id> | 30 / 31 biến thể |
| IELTS Đọc và Viết | ieltsguru.ai/ielts/<kỹ năng>/<id> → Start now | 4 / 4 màn hình |
| IELTS Nghe và Nói | teacher.flyer.us/vi/preview/checkpoint/<id> | 4 / 4 màn hình |
Vì sao IELTS Nghe và Nói phải dùng bản xem trước của giáo viên: trình chơi học sinh bắt qua bước kiểm tra âm thanh và micro trước khi vào bài. Đã thử cả chrome-headless-shell lẫn Google Chrome thật với tham số micro giả, và cả đường exam.flyer.us thay cho ieltsguru.ai — đều dừng ở cửa này.
Thư viện Quiz và Community không phải một họ riêng. Mở exam.flyer.us/en/libraries?tabSelect=1 rồi bấm vào một bài, đường dẫn chuyển sang /en/practice/<id> — tab Quiz lấy nội dung từ họ luyện tập, tab FLYER mini tests lấy từ họ đề thi.
Ba mã còn thiếu ảnh:
AUDIO_RESPONSE_PAGE — luyện tập, 1.702 bản ghi, 3.026 lượt làm, lượt gần nhất 28/09/2026. Nó nằm trong bài dài 131 phần; trình chơi ở chế độ này không có nút chuyển phần nào bấm được bằng công cụ tự động.CONTENT — luyện tập, 9 bản ghi, chưa có lượt làm nào. Bốn bài chứa nó đều mở ra Completed: 0/0.FLASHCARDS_FILL — Bingo Study, 20 bản ghi, không nối vào bài học nào. Chưa học sinh nào thấy được nó.SPEAKING họ đề thi (28 bản ghi) chỉ nằm lẫn trong bài xếp lớp 14 câu; ảnh SCENE_CARD_SPEAKING ở trên là cùng một màn ghi âm.Số bản ghi lấy từ bản sao chỉ đọc của cơ sở dữ liệu: questions.question_type, practice_parts.type, bingo_study_parts.challenge->>'type', và details->>'detail_type' của bốn bảng ielts_*_questions.
Bổ sung sau này: đặt ảnh mới vào question-types-img/ theo quy ước <họ>-<MÃ_DẠNG>.jpg rồi thêm một khối .shotblock là trang tự hiện.
multichoice
gapfill
dragdrop
matching
word_ordering
scrambled_sentence
OPEN_ENDED
SCENE_CARD_SPEAKING
TRACING
MULTICHOICE
GAPFILL
DROPDOWN
AUDIO_RESPONSE
FLASHCARD
WORD_ORDERING
REORDER
OPEN_ENDED
PASSAGE
MATCH
DRAG_DROP
INTERACTIVE_VIDEO
TRACING
YES_NO
IMAGE_FILL
IMAGE_SPEAK
FLASHCARDS
IMAGE_SELECT
WORD_ORDERING
IMAGE_TAP_COMPLETE
IMAGE_TAP
SELECT
TRANSLATE
DRAG_DROP
IMAGE_MATCH
SELECT_OBJECT
DIALOGUE
MATCH
TAP_COMPLETE
TRUE_FALSE
TRANSLATE_TAP
SPEAK
LISTEN_TAP
LISTEN
ASSIST
SELECT_TRANSCRIPTION
LISTEN_ISOLATION
LISTEN_MATCH
STORY_TAP_COMPLETE
STORY_TAP
Trình chơi web của học sinh trả về dòng chữ Unknown part type thay vì câu hỏi. Đã thử nhiều bài học khác nhau, kết quả lặp lại.
FILL_LETTER
OPEN_ENDED
INTERACTIVE_VIDEO
Bốn màn Đọc và Viết chụp tại ieltsguru.ai. Về mặt kỹ thuật IELTS chỉ có ba dạng câu hỏi dùng chung cho Nghe, Đọc và Viết; thư viện gọi chúng là Gap fill, Multiple choice và Drop down. Kỹ năng Nói không có dạng câu hỏi, chỉ có phần ghi âm.
GAP_FILL
SELECT
OPTION

GAP_FILL
SELECT
OPTION

Gộp bốn danh mục rời của FLYER về một danh mục duy nhất, đặt tên theo cách bốn nền tảng lớn đang gọi. Đây là đề xuất, chưa thống nhất với đội Học thuật và đội Kỹ thuật.
Bảy va chạm dưới đây đều kiểm chứng được: bằng ảnh chụp ở tab Ảnh từng dạng, hoặc bằng truy vấn trên bản sao chỉ đọc.
| Kiểu va chạm | Cụ thể | Kiểm bằng |
|---|---|---|
| Một khái niệm, ba tên | Sắp từ thành câu mang tên scrambled_sentence ở đề thi, REORDER ở luyện tập, SCRAMBLED_SENTENCE ở Bingo Study. | Ảnh trên tab trước |
| Một tên, hai khái niệm | word_ordering ở đề thi là sắp chữ cái thành từ, còn WORD_ORDERING ở luyện tập cũng là sắp chữ cái — nhưng sắp từ thành câu lại tên khác hẳn. Người đọc mã gần như chắc chắn hiểu ngược. | Ảnh trên tab trước |
| Một tên, hai khái niệm | DRAG_DROP ở luyện tập là kéo nhãn lên ảnh; DRAG_DROP ở Bingo Study là kéo thẻ chữ vào chỗ trống trong câu. | Ảnh trên tab trước |
| Tên nói sai việc | YES_NO không phải dạng nhị phân: 1.751 trong 3.977 câu có từ ba phương án trở lên (44%). TRUE_FALSE cũng vậy, 32 trong 160 câu có từ ba phương án. | jsonb_array_length(challenge->'choices') |
| Tên ngược trực giác | Ở IELTS, SELECT là trắc nghiệm còn OPTION là danh sách xổ xuống — ngược với cách hiểu thông thường của hai từ này. | Ảnh trên tab trước |
| Cùng việc, hai tầng khác nhau | FILL_LETTER là một dạng chính của Bingo Study, ASSIST là một biến thể — nhưng trên màn hình cả hai đều là chọn chữ cái còn thiếu. | Ảnh trên tab trước |
| Cách trình bày bị nâng lên thành dạng | AUDIO_RESPONSE và AUDIO_RESPONSE_PAGE là hai dạng riêng, khác nhau ở chỗ hiện một câu hay cả trang. | practice_parts.type |
| # | Nguyên tắc | Vì sao |
|---|---|---|
| 1 | Đặt tên theo việc học sinh làm, không theo cách trình bày | Nhìn ảnh hay nghe băng là ngữ liệu, không phải dạng câu hỏi. Đây là chỗ sinh ra 31 biến thể Bingo Study. |
| 2 | Cách trình bày để ở tầng biến thể | Một dạng, nhiều biến thể, thay vì nhiều dạng gần giống nhau. Xem mục 4. |
| 3 | Lấy tên của thế giới khi đã có sẵn | Giáo viên và đối tác quốc tế đọc hiểu ngay; tài liệu và đào tạo dùng lại được. |
73 mã đang có dữ liệu thật gộp về 12 dạng câu hỏi và 3 khối không chấm. Gồm 10 mã họ đề thi, 15 mã họ luyện tập, 14 dạng và 31 biến thể Bingo Study, 3 mã IELTS. Cột cuối liệt kê những mã đang tồn tại sẽ quy về tên ở cột đầu.
| Mã chuẩn | Tên hiển thị | Tương đương thế giới | Đang có những mã nào |
|---|---|---|---|
| MULTIPLE_CHOICE | Chọn một đáp án | Multiple Choice — cả bốn nền tảng | Đề thi multichoiceLuyện tập MULTICHOICEBingo Study MULTIPLE_CHOICE · SELECT_OBJECT · YES_NO · IMAGE_SELECT · SELECT · DIALOGUE · TRUE_FALSE · ASSIST · SELECT_TRANSCRIPTION · LISTEN_ISOLATIONIELTS SELECT |
| GAP_FILL | Gõ vào chỗ trống | Fill in the Blank — cả bốn | Đề thi gapfillLuyện tập GAPFILLBingo Study GAP_FILL · FILL_IN_BLANK · FILL_LETTER · IMAGE_FILL · TRANSLATE · LISTENIELTS GAP_FILL |
| DROPDOWN | Chọn từ danh sách xổ xuống | Select missing words — Moodle | Luyện tập DROPDOWNIELTS OPTION |
| DRAG_TO_TEXT | Kéo hoặc chạm thẻ chữ vào chỗ trống | Drag the Words — H5P · Drag and drop into text — Moodle | Bingo Study DRAG_DROP · TAP_COMPLETE · IMAGE_TAP_COMPLETE · STORY_TAP_COMPLETE |
| DRAG_TO_IMAGE | Kéo nhãn lên đúng vị trí trên ảnh | Drag and drop onto image — Moodle | Đề thi dragdropLuyện tập DRAG_DROP |
| MATCHING | Nối cặp | Matching — cả bốn | Đề thi matchingLuyện tập MATCHBingo Study MATCHING · MATCH · IMAGE_MATCH · LISTEN_MATCH |
| LETTER_ORDERING | Sắp chữ cái thành từ | không nền tảng nào có | Đề thi word_orderingLuyện tập WORD_ORDERINGBingo Study WORD_ORDERING |
| WORD_ORDERING | Sắp từ thành câu | Jumbled Sentence — Blackboard · Ordering — Canvas | Đề thi scrambled_sentenceLuyện tập REORDERBingo Study SCRAMBLED_SENTENCE · IMAGE_TAP · TRANSLATE_TAP · LISTEN_TAP · STORY_TAP |
| ESSAY | Viết đoạn văn | Essay — cả bốn | Đề thi OPEN_ENDEDLuyện tập OPEN_ENDEDBingo Study OPEN_ENDEDIELTS phần Viết, chưa có mã |
| SPEAKING | Nói và chấm phát âm | Speak the Words — H5P | Đề thi SPEAKING · SCENE_CARD_SPEAKINGLuyện tập AUDIO_RESPONSE · AUDIO_RESPONSE_PAGEBingo Study SPEAKING · IMAGE_SPEAK · SPEAKIELTS phần Nói, chưa có mã |
| FLASHCARD | Lật thẻ ghi nhớ | Guess the Answer — H5P | Luyện tập FLASHCARDBingo Study FLASHCARD · FLASHCARDS · FLASHCARDS_FILL |
| TRACING | Tô chữ theo nét | không nền tảng nào có | Đề thi TRACINGLuyện tập TRACING |
| Mã chuẩn | Tên hiển thị | Tương đương thế giới | Đang có những mã nào |
|---|---|---|---|
| PASSAGE | Ngữ liệu dùng chung cho nhiều câu | Stimulus — Canvas | Luyện tập PASSAGEBingo Study STORY |
| MEDIA_VIDEO | Video có câu hỏi chèn giữa | Interactive Video — H5P | Luyện tập INTERACTIVE_VIDEOBingo Study INTERACTIVE_VIDEO |
| CONTENT | Khối nội dung, không chấm | Description — Moodle · Text Block — Canvas | Luyện tập CONTENT |
Cùng một hàng là cùng một việc học sinh làm, chỉ khác ngữ liệu và nơi đặt bài. Bấm vào ảnh để xem cỡ thật. Sáu mươi ảnh dưới đây chụp trên production, chi tiết nguồn ở tab Ảnh từng dạng.
MULTIPLE_CHOICE Chọn một đáp án












GAP_FILL Gõ vào chỗ trống






DROPDOWN Chọn từ danh sách xổ xuống


DRAG_TO_TEXT Kéo hoặc chạm thẻ chữ vào chỗ trống



DRAG_TO_IMAGE Kéo nhãn lên đúng vị trí trên ảnh

MATCHING Nối cặp




LETTER_ORDERING Sắp chữ cái thành từ


WORD_ORDERING Sắp từ thành câu





ESSAY Viết đoạn văn


SPEAKING Nói và chấm phát âm




FLASHCARD Lật thẻ ghi nhớ

TRACING Tô chữ theo nét






AUDIO_RESPONSE_PAGE (luyện tập, 1.702 bản ghi) nằm trong bài 131 phần, trình chơi không có nút chuyển phần nào bấm được bằng công cụ tự động. CONTENT (luyện tập, 9 bản ghi) nằm trong bốn bài, cả bốn đều mở ra Completed: 0/0. FLASHCARDS_FILL (Bingo Study, 20 bản ghi) không nối vào bài học nào — không học sinh nào từng thấy nó. Cả ba đều thuộc dạng chuẩn đã có ảnh ở trên.Ba tên cho mỗi dạng: mã máy dùng trong cơ sở dữ liệu và API, tên tiếng Việt hiện cho giáo viên và học sinh, tên tiếng Anh hiện ở bản quốc tế và trong tài liệu gửi đối tác. Tên tiếng Anh lấy nguyên của bốn nền tảng lớn khi đã có sẵn, để đối tác đọc là hiểu.
| Mã máy | Tên tiếng Việt | Tên tiếng Anh | Học sinh làm gì |
|---|---|---|---|
| MULTIPLE_CHOICE | Chọn đáp án | Multiple Choice | Chọn một phương án đúng trong danh sách cho sẵn |
| GAP_FILL | Điền vào chỗ trống | Fill in the Blank | Gõ từ hoặc cụm từ còn thiếu |
| DROPDOWN | Chọn từ danh sách | Dropdown | Mở danh sách xổ xuống rồi chọn một mục |
| DRAG_TO_TEXT | Kéo chữ vào chỗ trống | Drag the Words | Kéo hoặc chạm thẻ chữ cho sẵn vào ô trống trong câu |
| DRAG_TO_IMAGE | Kéo nhãn lên ảnh | Drag onto Image | Kéo nhãn hoặc thẻ vào đúng vùng trên một tấm ảnh |
| MATCHING | Nối cặp | Matching | Nối mỗi mục bên trái với đúng mục bên phải |
| LETTER_ORDERING | Sắp chữ thành từ | Letter Ordering | Sắp lại các chữ cái bị xáo thành một từ đúng |
| WORD_ORDERING | Sắp từ thành câu | Word Ordering | Sắp lại các từ bị xáo thành một câu đúng |
| ESSAY | Viết đoạn văn | Essay | Viết một đoạn theo yêu cầu, chấm bằng AI hoặc giáo viên |
| SPEAKING | Nói | Speaking | Ghi âm câu trả lời, máy chấm phát âm |
| FLASHCARD | Thẻ ghi nhớ | Flashcard | Nhìn một mặt thẻ, đoán, rồi lật ra đáp án |
| TRACING | Tô chữ | Tracing | Tô theo nét chữ mẫu trên màn hình |
| Mã máy | Tên tiếng Việt | Tên tiếng Anh | Học sinh làm gì |
|---|---|---|---|
| PASSAGE | Ngữ liệu | Passage | Đoạn đọc hoặc băng dùng chung cho nhiều câu hỏi |
| MEDIA_VIDEO | Video | Video | Video có câu hỏi chèn vào giữa |
| CONTENT | Nội dung | Content | Khối chữ hoặc ảnh xen giữa bài, không chấm điểm |
| Mã máy | Tên tiếng Việt | Tên tiếng Anh | Học sinh làm gì |
|---|---|---|---|
| SHORT_ANSWER | Trả lời ngắn | Short Answer | Gõ một từ hoặc cụm, chấm theo danh sách đáp án chấp nhận |
| CATEGORIZE | Xếp nhóm | Categorization | Kéo từng mục vào đúng nhóm |
| SELECT_IMAGE_AREA | Chọn vùng ảnh | Hot Spot | Bấm đúng vùng trên một tấm ảnh |
| MARK_WORDS | Đánh dấu từ | Mark the Words | Bấm chọn những từ cần đánh dấu trong một đoạn |
| SENTENCE_ORDERING | Sắp câu thành đoạn | Sentence Ordering | Sắp lại các câu hoặc đoạn theo đúng mạch |
| CONVERSATION | Hội thoại | Conversation | Nói qua lại nhiều lượt, chấm phát âm từng lượt |
Biến thể không có tên riêng. Ba thuộc tính dưới đây đi kèm tên dạng.
| Thuộc tính | Giá trị | Dùng khi nào |
|---|---|---|
| stimulus | TEXT · IMAGE · AUDIO · VIDEO · STORY | Ghép sau tên dạng khi cần nói rõ ngữ liệu: MULTIPLE_CHOICE ngữ liệu IMAGE |
| input | TYPE · TAP · DRAG · DROPDOWN · SPEAK | Chỉ ghi khi một dạng có nhiều cách nhập, ví dụ điền chỗ trống bằng gõ hay bằng chạm |
| binary | true khi chỉ có hai phương án | Thay cho việc đặt riêng một dạng tên TRUE_FALSE |
_ORDERING và khác nhau ở thứ nguyên: chữ cái, từ, câu. Hai nhóm thao tác trên ảnh dùng chung tiền tố: SELECT_ khi bấm, DRAG_ khi kéo.31 biến thể Bingo Study hầu hết là một dạng cơ bản cộng với một ngữ liệu. Tách ra thành ba thuộc tính thì 31 biến thể không cần tên riêng nào nữa.
| Thuộc tính | Giá trị | Nghĩa |
|---|---|---|
Ngữ liệu stimulus | TEXT · IMAGE · AUDIO · VIDEO · STORY | Thứ học sinh nhìn hoặc nghe trước khi trả lời |
Cách nhập input | TYPE · TAP · DRAG · DROPDOWN · SPEAK | Thao tác để đưa ra câu trả lời |
Số phương án binary | đúng khi chỉ có hai phương án | Thay cho việc đẻ ra một dạng riêng tên TRUE_FALSE |
| Mã hiện tại | Dạng chuẩn | Biến thể |
|---|---|---|
| IMAGE_SELECT | MULTIPLE_CHOICE | stimulus=IMAGE |
| LISTEN_MATCH | MATCHING | stimulus=AUDIO |
| STORY_TAP_COMPLETE | DRAG_TO_TEXT | stimulus=STORY, input=TAP |
| IMAGE_TAP | WORD_ORDERING | stimulus=IMAGE, input=TAP |
| TRUE_FALSE | MULTIPLE_CHOICE | binary=true |
| AUDIO_RESPONSE_PAGE | SPEAKING | cách bày trang, không phải dạng |
Năm dạng đầu lấy từ danh mục thế giới ở tab trước. Dạng cuối đã chạy thật trên FLYER nhưng chưa có mã.
| Mã đề xuất | Học sinh làm gì | Có ở đâu | Vì sao cần |
|---|---|---|---|
| SHORT_ANSWER | Trả lời ngắn, chấm theo danh sách đáp án chấp nhận | Short answer — Moodle | Hiện phải mượn GAP_FILL, nên mọi cách viết đúng khác đều bị chấm sai |
| CATEGORIZE | Xếp từng mục vào đúng nhóm | Categorization — Canvas | Đang bị nhét vào YES_NO nhiều phương án |
| SELECT_IMAGE_AREA | Bấm đúng vùng trên ảnh | Hot Spot — Canvas, Blackboard, H5P | Ba trong bốn nền tảng đều có, FLYER chưa có |
| MARK_WORDS | Đánh dấu từ trong đoạn văn | Mark the Words — H5P | Dạy ngữ pháp không cần gõ chữ, hợp điện thoại |
| SENTENCE_ORDERING | Sắp câu thành đoạn | Sort the Paragraphs — H5P | Luyện đọc hiểu trình độ cao, nơi nội dung đang mỏng |
| CONVERSATION | Hội thoại nhiều lượt, chấm phát âm từng lượt | không nền tảng nào có | Đang chạy thật nhưng nằm trong ielts_speaking_questions, không có mã dạng |
Bước 1 và 2 không đụng dữ liệu, làm được ngay. Bước 3 và 4 cần lịch riêng.
| Bước | Việc | Làm gì | Công sức | Được gì |
|---|---|---|---|---|
| 1 | Bảng quy đổi ở tầng đọc | Thêm một bảng ánh xạ 73 mã → 15 tên chuẩn, dùng ở API đọc và ở các trang thống kê. Dữ liệu không đổi, mã cũ vẫn ghi như cũ. | Thấp — không chuyển dữ liệu | Báo cáo và trang phân tích đọc được một danh mục duy nhất |
| 2 | Màn soạn bài hiển thị tên chuẩn | Giáo viên chọn dạng theo tên chuẩn; hệ thống tự ghi xuống mã cũ của đúng họ. | Trung bình — sửa bốn màn soạn | Hết cảnh cùng một dạng có bốn tên trong giao diện |
| 3 | Thêm cột standard_type và variant | Thêm hai cột vào questions, practice_parts, bingo_study_parts, ielts_*_questions rồi backfill theo bảng ở mục 3. | Trung bình — bốn lần chuyển dữ liệu | Truy vấn được theo dạng mà không cần bảng quy đổi |
| 4 | Dạng mới chỉ dùng mã chuẩn | Bốn tệp khai báo cũ chuyển sang chỉ đọc. Dạng mới thêm một lần, dùng được ở cả bốn họ. | Cao — đụng cả ứng dụng di động | Thêm một dạng mới tốn một lần thay vì bốn lần |
| Rủi ro | Cách giảm |
|---|---|
| Ứng dụng di động đang đọc mã cũ; đổi mã ở API làm hỏng bản đã phát hành | Giữ mã cũ trong phản hồi API, thêm trường mới standard_type bên cạnh. Chỉ bỏ mã cũ khi số bản cũ còn hoạt động về gần không. |
| Truy vấn phân tích và bảng điều khiển đang lọc theo mã cũ | Bước 1 đưa bảng quy đổi vào tầng đọc trước, nên các truy vấn mới viết theo tên chuẩn; truy vấn cũ vẫn chạy. |
| Gộp tên làm mất thông tin hiện có | Không xoá mã cũ. Cột variant giữ lại đúng sắc thái mà tên cũ mang. |
| Đội Học thuật không đồng ý cách gộp | Chốt bảng ở mục 3 trước khi viết dòng mã nào. Phần gây tranh cãi nhất là hai nhóm sắp xếp và nhóm YES_NO. |
| Bốn tệp khai báo nằm ở bốn phần khác nhau của kho mã | Bước 3 làm từng họ một, theo thứ tự luyện tập → đề thi → Bingo Study → IELTS, tính theo số bản ghi giảm dần. |
Chọn Green Hill (mã starters) trong 14 giao diện đang có của trình làm bài, dựng đủ 12 dạng chuẩn và 3 khối không chấm, không thêm màu mới. Xem tab Giao diện tiểu học và tab Màn mẫu.
Một khung câu hỏi chung, ba giao diện theo cấp, và phương án UX chọn theo bối cảnh. Toàn bộ dùng giao diện và token đang có, không thêm màu mới. Bấm thử bản đề xuất (chế độ “Đề xuất theo cấp” ở tab Màn mẫu).



| Bối cảnh | Phương án UX | Lý do |
|---|---|---|
| Luyện tập, bài về nhà (mặc định) | A · Từng bước | Một câu mỗi bước, chấm ngay, đọc ít nhất |
| Thi thử, giáo viên giao đề | B · Cả trang; trên máy tính dùng bố cục E · Bảng điều khiển | Giữ cấu trúc đề Cambridge, chấm cả phần một lần |
| Lớp 1–2, học sinh đọc chậm | C · Bingo đọc cùng (bật được ở mọi bài) | Nghe trước khi làm; 2 lần thử + gợi ý |
| Bài đọc dài lớp 5 | F · Đọc tập trung | Một cột như trang sách, thước đọc, chữ lớn |
| Luyện tập hằng ngày có thưởng | D · Hành trình | Chặng, 💎, trái tim: thử nghiệm trước ở Movers |
| Ôn nhanh câu đúng / sai | G · Lướt thẻ | 1–2 phút, hợp Starters |
| Bước | Việc | Cần thiết kế |
|---|---|---|
| 1 | Sửa lỗi đo được: đề bài Green Hill chữ trắng 1,8:1 → textColor #194C83 4,8:1 (cả study.flyer.us); tooltip “Enable dark mode” đè bài đọc; name/nameEn đảo ở Global Journey; lỗi đề “USE I, 2 OR 3 WORDS” | Không |
| 2 | Gắn giao diện theo cấp: Starters → Green Hill, Movers → Dragon World, Flyers → Frost Land; Global Journey gắn theo sách thay vì luôn ra The Galaxy | Không, dùng token có sẵn |
| 3 | Phương án A cho mọi phần Đọc–Viết và Nghe nhiều chữ (13 phần ở tab Màn mẫu) | Ít: dàn lại bố cục |
| 4 | Phương án B cho thi thử; nút “Bingo đọc cùng” (C) ở mọi bài | Trung bình |
| 5 | Thử nghiệm D, F, G trên một nhóm học sinh, đo tỷ lệ hoàn thành bài | Trung bình |
Chưa dùng cho tiểu học: Futuristic City và Ocean (thiếu token riêng, mục 5), 8 màu Classic (dành cho chế độ tập trung). The Galaxy giữ làm mặc định cho bài ngoài khung Cambridge tiểu học.
| Nền | Giao diện · mã | Gắn với cấp | Đề bài / nền | Chữ trên thẻ | Không khí | Tiểu học |
|---|---|---|---|---|---|---|
Green Hillstarters | Starters | 1,8 → 4,8 | 4,3 · chữ lớn đạt | Ban ngày, đồi xanh | Chọn | |
Dragon Worldmovers | Movers | 10,4 | 7,4 | Dung nham, trời đỏ tối | D · Hành trình | |
Futuristic Citytoefl-primary | TOEFL Primary | 7,1 | 4,3 | Thành phố, xanh rêu tối | E · Bảng điều khiển | |
The Galaxydefault | Mặc định mọi bài | 12,6 | 8,6 | Vũ trụ ban đêm | Giữ làm mặc định chung | |
Frost Landpet | PET (B1) | 8,2 | 10,5 | Băng tuyết, gần như trắng trơn | F · Đọc tập trung | |
Oceanocean | — | 1,6 | 4,3 | Biển xanh ngọc | G · Lướt thẻ | |
| Classic × 8 Black, Teal Blue, Bright Blue, Steel Blue, Yellow Orange, Dusty Pink, Green, Light Orange | Focus mode | — | — | Phẳng, không cảnh, không linh vật | Dành cho tập trung, IELTS |
Chỉ đổi token nào dùng ở đâu. Mọi mã màu đều đã nằm trong theme starters hoặc trong phần dùng chung của trình làm bài.
| Vị trí | Đang dùng | Đổi sang (đã có) | Tương phản |
|---|---|---|---|
| Chữ đề bài trên nền trời | practiceQuestionClassName trắng | textColor #194C83 | 1,8 → 4,8 |
| Chữ trên dải phản hồi Nice work! | chưa quy định | matching.textColor #014D07 | 7,3 |
Chữ trên thẻ đáp án #198355 | cỡ chữ tuỳ dạng | giữ màu, cố định Baloo 2 đậm ≥ 19px (ngưỡng chữ lớn WCAG) | 4,3 · đạt chữ lớn |
| Vai trò | Giá trị | Trường trong mã |
|---|---|---|
| Chữ đề bài | #194C83 · Baloo 2 700 | textColor |
| Thẻ đáp án | #FAFFF9→#CDFFDD · viền #61C858 · bóng 0 4px 0 #198355 · bo 16 | .btn-question-type[starter-default] |
| Thẻ đã chọn | #01712D→#1FAD74 · viền trắng · chữ trắng | boxContent.selectedStyle |
| Ô gõ chữ, ô nói, danh sách xổ | #004F04→#003F00 · viền #61C858 · bóng #043C07 | gapFill, speaking |
| Ô thả | #008E4F→#004D02 · viền #14A563 | boxTarget |
| Nối cặp | thường · đang chọn · đã nối | matching |
| Gạch chỗ trống | #0A8242 | fillInBlankData, scrambledSentenceData |
| Thẻ ghi nhớ | mặt trước #F0FFF5 · chữ #0A8242 | flashCard |
| Viết đoạn văn | #008E4F→#003F00 · viền #61C858 | openEnded |
| Thanh tiến độ | #FEBE18→#FF8B22 | progressBarClassName |
| Dải dưới | #008645 86% | footerThemeClassName.default |
| Nút Kiểm tra | #16BF45→#1AC249 · tắt: xám | .btn-solid[green], .btn-question-type[gray] |
| Đúng / sai | xanh lá · đỏ | FooterLesson |
| Phông | Baloo 2 (tiêu đề, thẻ, nút) · Open Sans (chữ thường) | .font-baloo, phông thương hiệu |
Green Hill là mặc định. Bốn giao diện dưới đây dùng đúng token và ảnh đang có trong theme.ts; mỗi giao diện kèm một phương án UX hợp với cấp độ nó được gắn, bấm thử được, nối tiếp ba phương án A, B, C ở tab Màn mẫu.
| Giao diện | Gắn với | Token riêng | Phương án UX | Hợp với |
|---|---|---|---|---|
| Dragon World | Movers | Đủ | D · Hành trình | Luyện tập hằng ngày, lớp 3–5 |
| Futuristic City | TOEFL Primary | Một phần | E · Bảng điều khiển bài thi | Thi thử có giờ |
| Frost Land | PET | Đủ | F · Đọc tập trung | Bài đọc dài, lớp 5 |
| Ocean | Chưa gắn cấp | Chỉ ảnh nền | G · Lướt thẻ | Ôn nhanh câu đúng/sai, Starters |
Bingo Study có hai lớp giao diện, cả hai tự chọn theo bài, học sinh không đổi được: giao diện bài học theo cấp của checkpoint (testLevel.slug, không khớp thì về default) và giao diện bản đồ theo vị trí trên lộ trình.
| Nền | Mã · tên bên exam | Dùng chung với exam | Khác biệt | Đề bài / nền | Thẻ đáp án |
|---|---|---|---|---|---|
default · The Galaxy | Có | Cùng nền, nút đóng, Bingo | 10,6 | 8,6 | |
starters · Green Hill | Một phần | Ảnh nền khác bản exam (trời sáng hơn); tệp là JPEG nhưng đặt tên .png | 1,7 | 4,3 | |
movers · Dragon World | Có | Ảnh giống hệt từng byte | 7,7 | 7,4 | |
pet · Frost Land | Một phần | Ảnh nền là cảnh tuyết ban đêm, khác nền sáng của exam | 7,1 | 10,5 | |
toefl-primary · Futuristic City | Có | Thẻ đáp án chép token của starters, như bên exam | 5,0 | 4,3 |
Riêng study có nút “?” hướng dẫn (buttonGuide) ở mọi giao diện, token cho video tương tác và màn kết quả (chỉ starters). Ocean và 8 màu Classic chỉ có bên exam.


gate.png · 5 checkpoint mỗi đoạn · ảnh tĩnh| # | Vấn đề | Đề xuất |
|---|---|---|
| 1 | Đề bài chữ trắng trên nền starters sáng: 1,7:1, trên lộ trình Candy đang chạy | Dùng textColor #194C83 như cách sửa Green Hill ở mục 3 |
| 2 | Chữ trên thẻ đã chọn chưa đạt ở cả năm bộ (1,1–4,1:1 tuỳ màu chữ đang vẽ) | Chữ trắng trên nền đậm của thẻ đã chọn, cỡ từ 18px; kiểm lại trên trang thật |
| 3 | Ảnh nền starters, pet đã lệch khỏi bản exam | Gộp về một bộ ảnh dùng chung cho hai trang |
| 4 | Không bộ nào khai màu dải đúng / sai; component tự dùng màu mặc định | Khai trong token để đổi theo giao diện |
| 5 | Bản đồ Pirate mở ở Level 100 trên production nhưng Level 10 ở dev | Kiểm thử bằng cùng mốc với học sinh, hoặc ghi rõ trong tài liệu kiểm thử |
| 6 | Thư mục list-lesson-theme/default chỉ còn trong mã đã chú thích | Xoá |
Bản đồ luyện tập theo bộ sách Global Success (Tiếng Anh lớp 1–9) tại exam.flyer.us/en/global-journey; trong mã vẫn tên global-success. Một bản đồ chó mèo cho cả 9 cuốn.


| Mục | Giá trị |
|---|---|
| Nội dung | 9 sách · 185 unit · 613 bài (nút) · 2.018 checkpoint |
| Bản đồ | 1 ảnh tĩnh 1920×2160 lặp lại theo chiều dọc, 6 nút mỗi bản; sách 1 lặp 13 lần (~20.000px cuộn) |
| Token | nền #131F24 · chữ #791041 · cửa sổ #FFE3D7 · vòng tiến độ #55FD73 · Open Sans |
| Giao diện khi vào bài | Bản đồ không truyền giao diện. Bài Study mở study.flyer.us; đề mini, đề thi mở trình làm bài cổ điển; luyện tập theo backend, mặc định The Galaxy. Cấp set, set-junior, practice không có giao diện riêng nên luôn ra The Galaxy. |
| # | Vấn đề | Đề xuất |
|---|---|---|
| 1 | Học sinh lớp 1–5 vào bài luôn gặp The Galaxy (nền đêm), không phải Green Hill | Gắn giao diện theo sách: lớp 1–3 Green Hill, lớp 4–5 Dragon World, lớp 6–9 Frost Land |
| 2 | Giao diện tiếng Anh hiện “Global Success Lớp 1…”: name và nameEn bị đảo trong dữ liệu | Sửa dữ liệu |
| 3 | Trên điện thoại 390px chữ tiêu đề 4–7px, nhãn Program ~4px | Cỡ chữ tối thiểu 14px |
| 4 | Không khoá bài, không có dấu “bài đang học” (level_current.png có sẵn nhưng không dùng) | Đánh dấu bài kế tiếp, cuộn tới đó khi mở trang |
| 5 | Ảnh bản đồ lặp y hệt mỗi 6 bài; hộp đã làm cao hơn hộp chưa làm nên nút nhảy cỡ | Đổi ảnh xen kẽ; cùng tỉ lệ ảnh nút |
| 6 | Nút quay lại sau chủ đề Bingo trỏ về /global-success (404); tệp bản đồ động 934KB không dùng | Trỏ về /global-journey; bỏ tệp |
Áp cho mọi dạng câu hỏi trên giao diện Green Hill. Cột cuối là số vấn đề ở mục 1 của tab Màn mẫu.
| Quy tắc | Cách làm | Lý do | Vấn đề |
|---|---|---|---|
| Một câu mỗi bước | Chấm dẫn tiến độ; không cuộn trong khung câu hỏi; chấm ngay từng câu | Tránh sót câu, giảm tải đọc | 2, 7 |
| Một thanh cuộn | Bài đọc một khung; hộp từ cố định bên dưới hoặc bên phải | Không phải dò hai cột | 1 |
| Đoạn đang làm sáng lên | Tự cuộn tới chỗ trống; đoạn khác mờ; chỉ hiện đoạn chứa đáp án, có nút “Read the whole story” | Bài đọc dài với lứa tuổi | 3 |
| Chạm thay vì gõ khi đã có từ | Hộp từ, bảng lựa chọn thành thẻ chạm ngay cạnh chỗ trống | Trẻ gõ chậm, dễ sai chính tả | 6 |
| Chỗ trống là ô đánh số | Không dùng đường gạch, không bao giờ tách dòng | Biết đang điền chỗ nào | 5 |
| Hướng dẫn một dòng + nút nghe | Chữ thường; nút nghe cạnh mọi đề bài và ảnh có băng | Học sinh lớp 1–2 chưa đọc trôi chảy | 4, 9 |
| Vùng chạm tối thiểu | Cao 50px, cách nhau 10px | Ngón tay trẻ nhỏ, sai chạm cao | — |
| Số phương án | Tối đa 4 (thẻ chữ tối đa 6) | Giảm tải đọc | — |
| Nút Check | Tắt đến khi có câu trả lời | Tránh nộp trống vô tình | — |
| Phản hồi | Dải màu + Bingo + đáp án đúng | Học ngay tại chỗ sai | — |
Mọi dạng câu hỏi đang chạy trên exam.flyer.us, dựng lại trên giao diện Green Hill và bấm thử được. Phần nhiều chữ nhất (Đọc–Viết và một số phần Nghe của đề Starters, Movers, Flyers) có ảnh production đặt cạnh để so sánh và ba phương án UX A/B/C. Quy tắc bố cục ở tab Giao diện tiểu học.
| # | Vấn đề | Gặp ở | Đo được |
|---|---|---|---|
| 1 | Hai cột, hai thanh cuộn riêng; cả hai tràn khung | Part 1, 3, 5 | 732px và 867px nội dung trong khung 614px |
| 2 | 5–10 câu hỏi trên một màn, không có câu “đang làm” | Mọi phần | Flyers Part 1: 10 câu một màn |
| 3 | Bài đọc dài, chữ nhỏ so với tuổi | Part 3, 4, 5 | ~300 từ (Movers P5), ~430 từ (Flyers P5); chữ 16px, dòng 24px |
| 4 | Hướng dẫn viết hoa toàn bộ, 2–3 dòng | Mọi phần | “READ THE STORY. CHOOSE A WORD FROM THE BOX. WRITE THE CORRECT WORD NEXT TO NUMBERS 1–6.” |
| 5 | Chỗ trống là đường gạch, rớt xuống dòng dưới số thứ tự | Part 3, 4, 5, 6 | Số (1) cuối dòng, đường gạch đầu dòng sau |
| 6 | Có sẵn hộp từ nhưng vẫn phải gõ lại; bảng lựa chọn tách xa chỗ trống | Part 1, 3, 4 | Part 4: dò hàng 1–5 ở cột trái |
| 7 | Hội thoại: 18 dòng lựa chọn một màn, ô chọn ở mép phải | Part 2 | 6 lượt × 3 phương án |
| 8 | Chú thích “Enable dark mode…” đè lên chữ bài đọc, không tự tắt | Mọi phần | Góc trên phải, cả màn 1366 và 1024 |
| 9 | Không nghe được hướng dẫn và bài đọc | Mọi phần | — |
| 10 | Lỗi nội dung | Part 1, 5 | “USE I, 2 OR 3 WORDS” (chữ I thay số 1); “things that worth” |
| Phần | Cách làm trên production | Màn mẫu |
|---|---|---|
| Starters Đọc–Viết 1 | Tranh + câu, chọn Right / Wrong | Starters Part 1 |
| Starters Đọc–Viết 2 | Một tranh, 5 câu, gõ yes / no | Starters Part 2 |
| Starters Đọc–Viết 3 | Tranh + chữ cái xáo, gõ từ | Starters Part 3 |
| Starters Đọc–Viết 4 | Truyện ngắn + hộp ảnh-từ | Dùng chung Movers Part 3 |
| Starters Đọc–Viết 5 | Mỗi câu một tranh, trả lời một từ | Dùng chung Movers Part 6 |
| Movers Đọc–Viết 1–6 | Định nghĩa, hội thoại, truyện + hộp từ (kèm câu chọn tên truyện), bài + bảng 3 lựa chọn, truyện dài, tranh + viết | Movers Part 1–6 |
| Flyers Đọc–Viết 1 | 10 định nghĩa, hộp 15 từ không ảnh | Dùng chung Movers Part 1 |
| Flyers Đọc–Viết 2 | Hội thoại, chọn câu đáp từ danh sách A–H | Flyers Part 2 |
| Flyers Đọc–Viết 3, 4, 5 | Truyện + hộp từ; 10 chỗ trống × 3 lựa chọn; truyện ~430 từ | Dùng chung Movers Part 3, 4, 5 |
| Flyers Đọc–Viết 6 | Nhật ký, tự viết một từ, không có hộp từ | Flyers Part 6 |
| Flyers Đọc–Viết 7 | Viết truyện theo 3 tranh, từ 20 từ | Không có trong Mock Test 1; mẫu ESSAY ở bộ lọc Đề thi |
| Nghe Part 2 (cả 3 cấp) | Nghe, viết tên / số / từ vào phiếu | Nghe Part 2 |
| Nghe Part 3 Starters · Part 4 Movers, Flyers | Nghe, tích 1 trong 3 tranh, 5 câu một màn | Nghe tích ô |
| Nghe Part 3 Movers, Flyers | Nghe, nối đồ vật với nơi tìm thấy; hướng dẫn 4–5 dòng viết hoa | Nguyên tắc “hướng dẫn một dòng” + mẫu MATCHING ở bộ lọc Đề thi |
| Nghe Part 1, 5 · Nói | Kéo tên lên tranh, tô màu, nói | Ít chữ, ngoài phạm vi tab này |
| A · Từng bước | B · Cả trang, có tiêu điểm | C · Bingo đọc cùng | |
|---|---|---|---|
| Ý chính | Một câu mỗi bước, chấm ngay | Giữ nguyên trang đề, chỉ mở rộng câu đang làm | Bingo đọc to từng câu, học sinh làm sau khi nghe |
| Chấm điểm | Từng câu, có giải thích | Cả phần một lần, như thi thật | Từng câu, 2 lần thử + gợi ý |
| Bài đọc dài | Chỉ hiện đoạn chứa đáp án | Cả bài, chọn đáp án ngay tại chỗ trống | Từng câu như sách tranh, câu đã đọc thu nhỏ |
| Hợp với | Luyện tập hằng ngày, bài tập về nhà | Thi thử Cambridge, học sinh lớp 4–5 | Starters, học sinh đọc chậm, lớp 1–3 |
| Đánh đổi | Không thấy toàn cảnh đề | Vẫn nhiều chữ hơn A và C trên một màn | Chậm nhất; không dùng cho bài tính giờ |
Có thể trộn: A mặc định, B khi giáo viên giao “thi thử”, C khi học sinh bật “Bingo đọc cùng”.
Câu hỏi dài: 13 phần của đề Mock Test 1, ảnh production bên trái, màn đề xuất bên phải, chọn phương án A/B/C. Đề thi, Luyện tập, Bingo Study: mỗi mã một màn, dựng theo dạng chuẩn và biến thể của tab Đề xuất chuẩn hoá; số góc phải là số bản ghi.