---
url: >-
  https://docs.nemo12.com/architecture/sdd-029-public-site-ia/home-and-teachers.md
description: >-
  Gỡ landing /ielts, vai Giáo viên, CELTA, TESOL, TEFL, lastmod, môn sắp mở,
  trang mục tiêu và audit nhiều cỡ màn hình.
---

# SDD-029 · Trang chủ, vai Giáo viên và các họ trang chứng chỉ

Một phần của [SDD-029](./index.md). Gỡ landing /ielts, vai Giáo viên, CELTA, TESOL, TEFL, lastmod, môn sắp mở, trang mục tiêu và audit nhiều cỡ màn hình.

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

### SRC-1002: gỡ landing `/ielts`, trang kế hoạch chia sẻ nền sẫm (23.09.2026)

* Landing `/ielts` (SRC-722) đã **gỡ**. Trang IELTS của `nemo12.com` là trang môn
  `/students/ielts`. `/ielts` nằm trong `ALIASES` và worker trả **301** thật về đó (mọi
  bí danh khác cũng được 301 ở máy chủ từ nay, không chỉ đổi địa chỉ phía trình duyệt). Mọi link
  nội bộ từng trỏ `/ielts` đã đổi sang trang môn. Các trang con `/ielts/*` giữ nguyên.
* Trang kế hoạch chia sẻ `/ielts/learning-plans/<slug>` (SRC-994) dựng trên dải tối
  `n12-band-dark` như trang chẩn đoán. Thanh điều hướng ở trang này **không có mục nào**, và logo
  về `/students/ielts` thay vì `/` - ngoại lệ duy nhất của luật logo SRC-776, vì người
  mở link này được gửi tới để xem một kế hoạch và lối đi đáng mời họ là trang IELTS.

### SRC-1020: vai Giáo viên, họ trang CELTA, và trang chủ về bộ màu IELTS (24.09.2026)

Ba chỉ đạo trong cùng một lượt, và chúng dính vào nhau: thêm một vai là sửa màn quyết định, nên
đổi màu màn ấy làm luôn trong một lần.

#### Trang chủ: bộ màu của trang IELTS

Màn quyết định (§10.10) chuyển từ dải tối `n12-band-dark` sang nền sáng `theme-www`, đúng bộ màu
của trang IELTS bên trong: nền trắng pha xanh biển rất nhạt, tiêu đề mực đậm, thẻ trắng viền mảnh
có bóng rất nhẹ, nhấn bằng coral của DS. Lý do: màn đầu tiên người lạ thấy từng là mặt xanh đen với
chữ xám mờ, trong khi mọi trang sau đó sáng - hai bộ màu cho một hành trình là cảm giác bước sang
một site khác.

Dùng lớp `theme-www` chứ không tự khai màu trong JSX, để đổi nền sáng của site là màn này đổi theo.
Mọi luật cũ của màn quyết định giữ nguyên: không menu, không chân trang, `/` không chuyển hướng,
thẻ là link thật, bố mẹ đứng trước, vừa một khung hình. Đo lại sau khi thêm thẻ thứ ba: 375×812 cả
hai bước đều cao đúng 812px, nút cách thanh cookie 104px.

#### Vai thứ ba: Giáo viên

`Role` thêm `"teacher"`, trang nhà `/teachers`. Giáo viên KHÔNG đi qua ba mục tiêu Vào đại học /
cấp 3 / cấp 2 - đó là mục tiêu của người HỌC. Bước 2 của họ là chọn một trong ba chứng chỉ. Vì thế
`Persona` trong `goals.ts` vẫn chỉ có hai giá trị, và chỗ nào dựng đường dẫn mục tiêu thì thu hẹp
`Role` về `Persona` trước.

Đổi vai giữa chừng thì lựa chọn đã chọn bị xoá nếu nó không còn hợp với vai mới (mục tiêu không
hợp giáo viên, chứng chỉ không hợp học sinh) - giữ lại là để nút "Vào Nemo12" trỏ sai chỗ.

`/teachers`, `/celta`, `/tesol`, `/tefl` đều được `roleFromPath` nhận là vai giáo viên, để người
tới thẳng từ Google thấy menu của giáo viên.

#### Ba họ trang, và vì sao chỉ CELTA là một cụm

| Họ | Số trang | Vì sao |
| --- | --- | --- |
| `/celta` | 31 | Chỉ đạo: cụm trang đủ chi tiết như IELTS. Đi theo thứ tự việc: quyết định, nộp đơn, năm chủ đề, dạy thực hành, bốn bài viết, kết quả, sau khoá |
| `/tesol` | 1 | TESOL là cả một lĩnh vực; trang nói về TESOL Core Certificate Program và cách phân biệt nó với phần còn lại |
| `/tefl` | 1 | TEFL không có đơn vị cấp duy nhất; trang dạy cách ĐÁNH GIÁ một khoá TEFL, không gán con số cho "TEFL" |

Cả ba thuộc thế giới Education, vì người đọc là người DẠY.

#### Giới hạn về sự thật - đọc trước khi sửa nội dung

Mọi con số lấy từ nguồn chính thức, đọc ngày 24.09.2026: syllabus CELTA bản 07.2024 và trang khoá
học của Cambridge; trang TESOL Core Certificate Program của TESOL International Association. Cái
nguồn không nói thì trang không khẳng định: học phí, danh sách trung tâm, quy trình tuyển cụ thể
đều nói rõ là **tuỳ trung tâm**.

Hai chỗ đã cố ý làm mềm vì chưa kiểm được: phần mở rộng dạy trẻ của CELTA (không chắc còn mở ở
2026\), và chuyện trung tâm cấp giấy xác nhận trong lúc chờ chứng chỉ.

**Tên chính thức** là *Certificate in Teaching English to Speakers of Other Languages*. Tên chủ dự
án dùng khi giao việc, *Certificate in English Language Teaching to Adults*, là tên CŨ, đã đổi từ
năm 2011; các trang nhắc tên cũ như một chú thích, không dùng nó làm tên chính.

#### Thanh điều hướng của khu chứng chỉ

Ba khu `/celta`, `/tesol`, `/tefl` dùng cơ chế `switcher` như khu mục tiêu: nhãn cạnh logo là menu
đổi giữa ba chứng chỉ. Thanh của CELTA đi theo đúng thứ tự việc (Nộp đơn · Năm chủ đề · Dạy thực
hành · Bài viết · Kết quả · Hỏi đáp).

Hai thứ của khu KỲ THI bị tắt ở đây: dòng "Marine X Lab" dưới logo và nút "Học thử (Free)". Nemo12
không dạy CELTA; nút học thử ở đây mời người ta vào một lớp không tồn tại. Breadcrumb của ba họ
trang có thêm nấc "Giáo viên", vì đi theo đường dẫn thì không có nấc nào nói chúng thuộc khu ấy.

### SRC-1027: trang chủ một khuôn thẻ, không biểu tượng (25.09.2026)

Chỉ đạo chủ dự án, sáu chỉnh trên màn quyết định:

* **Bỏ mọi biểu tượng** (linh vật bố mẹ, biểu tượng học sinh, bút lông của giáo viên, emoji của ba
  mục tiêu và của Octopus).
* **Một khuôn thẻ cho mọi lựa chọn**, lấy từ thẻ chứng chỉ của vai giáo viên: chữ lớn là TÊN lựa
  chọn, chữ nhỏ là một dòng nói nó là gì. Với ba mục tiêu: tên ngắn (`Vào đại học`) làm chữ lớn, câu
  theo vai (`Giúp con vào được...`) làm dòng nhỏ. Bản trước trộn ba kiểu thẻ ở ba chỗ, và người đọc
  phải học lại cách đọc thẻ mỗi khi sang bước khác.
* **Dòng "Bạn đang xem với vai..." đứng TRÊN câu hỏi**: nó trả lời "tôi đang ở đâu" trước khi
  người đọc gặp câu "tôi muốn gì".
* **"Đổi" thành "Thay đổi"**, **"Vào Nemo12" thành "Tiếp tục"**: người đọc đã ở trong Nemo12, thứ
  nút làm là đưa họ sang bước kế.
* **Nhãn Octopus thành "Học AI và các kỹ năng tương lai"**, đổi ở `OCTOPUS.label` nên mọi nơi dùng
  nhãn lối đi này (thẻ, thanh điều hướng, chân trang) đổi theo. Tên thương hiệu "Octopus · AI &
  Future Skills" của trang trường `/octopus` không đổi: đó là tên riêng, còn đây là nhãn lối đi.

Đo lại 375×812 sau khi bỏ biểu tượng: bước 1 và bước 2 đều cao đúng 812px.

#### SRC-1027 (tiếp): cụm trang TESOL và TEFL

Chỉ đạo: hai cụm trang chi tiết như CELTA. Trang đơn `/tesol` và `/tefl` của SRC-1020 thay bằng hai
họ trang, mỗi họ một thư mục (`content/seo/tesol/`, `content/seo/tefl/`); thư mục `teaching/` cũ đã gỡ.

| Họ | Trang | Trục của cụm |
| --- | --- | --- |
| `/tesol` | 28 | TESOL là một lĩnh vực; đi sâu vào TESOL Core Certificate Program (ba phần, thực hành, lịch, học phí), rồi cách chọn một chương trình TESOL bất kỳ |
| `/tefl` | 23 | TEFL không có đơn vị cấp duy nhất; cả cụm xoay quanh việc ĐÁNH GIÁ một khoá cụ thể (số giờ, thực hành, giảng viên, kiểm định, cấp 5, online, việc làm), kèm bảng kiểm |

**Hai cụm có hình dạng khác CELTA, và đó là chủ ý.** CELTA là một chương trình có syllabus công bố,
nên cụm của nó đi theo syllabus. TESOL Core KHÔNG công bố đề cương theo tuần, nên các trang nói rõ
điều đó thay vì bịa ra một đề cương. TEFL không phải một chương trình, nên cụm của nó là một bộ công
cụ đánh giá chứ không phải một mô tả chương trình.

**Nguồn**, đọc ngày 25.09.2026: trang TESOL Core Certificate Program, trang tiêu chuẩn chương trình
ngắn hạn và trang "Beginning Your Career" của TESOL International Association; trang CertTESOL của
Trinity College London; và việc Ofqual có Sổ đăng ký văn bằng cùng văn bằng TEFL cấp 5. Không nêu
tên nhà cung cấp TEFL nào - chính TESOL International Association nói họ không bảo chứng chương
trình nào, và Nemo12 cũng không.

**Bốn sự thật mới phải có trên mọi trang nhắc tới TESOL Core** (trang chính thức, 25.09.2026): đang
ĐÓNG nhận hồ sơ; CHƯA được kiểm định; người học TỰ TÌM nơi thực hành; hiệp hội KHÔNG hỗ trợ tìm việc.
Trang `/teachers` và trang so sánh trong cụm CELTA đã cập nhật theo. Học phí có ghi, kèm ngày đọc,
vì trạng thái tuyển sinh và học phí là hai thứ đổi theo thời gian.

**Trang dạy ở Việt Nam không khẳng định quy định pháp lý nào** (văn bằng, giấy phép lao động): sai ở
đó là gây hại thật, và quy định đổi. Trang chỉ bảo người đọc kiểm với nhà tuyển dụng và cơ quan có
thẩm quyền.

Thanh điều hướng: khu TESOL có TESOL Core · Thực hành · Chọn chương trình · Hỏi đáp; khu TEFL có
Đánh giá khoá · Bảng kiểm · Cảnh báo · Hỏi đáp.

### SRC-1033: `lastmod` theo ngày commit cuối (25.09.2026)

Trước đây `gen-sitemap.mjs` ghi CÙNG MỘT ngày (ngày build) cho mọi URL: mỗi lần build là nói với công
cụ tìm kiếm rằng cả 406 trang vừa đổi, kể cả 140 trang IELTS không ai đụng tới nhiều tuần. Google bỏ
qua tín hiệu `lastmod` khi nó sai có hệ thống, nên sai như vậy là tự vứt một tín hiệu có ích.

Nay mỗi URL mang **ngày commit cuối của file nguồn định nghĩa trang ấy**:

* Trang nội dung: tìm trong thư mục của họ trang file khớp mẫu định nghĩa (`P("slug")`, `slug:
  "slug"`, `path: "/đường/dẫn"`, hằng số `= "/đường/dẫn"`), KHÔNG khớp mọi chỗ nhắc tới đường dẫn -
  một file chỉ link tới trang thì không làm trang đổi. Trang hub tính thêm `index.ts` của họ.
* Trang ứng dụng: cùng cách dò trong `src/site` và file dữ liệu; không khớp thì lấy `routes.ts`.
* Trang cũ ngoài bảng route: khai tay file dựng ra chúng.
* Nhiều file khớp thì lấy ngày muộn nhất. File chưa commit mang ngày hôm nay.
* `lastmod` của từng file con trong index = ngày muộn nhất trong các URL của nó.

Đo sau khi đổi: 102 trang IELTS mang ngày 08.09.2026, thay vì cùng ngày build với mọi trang khác.

**Giới hạn:** độ mịn là FILE, không phải trang - sửa một trang trong một file hai mươi trang là hai
mươi trang cùng lên ngày. **Cần lịch sử git đầy đủ:** job deploy checkout `fetch-depth: 0`; gặp kho
nông, script quay về một ngày chung và in cảnh báo thay vì lặng lẽ sinh ra số sai.

### SRC-1035: sáu môn chưa có giáo viên giữ "Sắp mở" (chốt 25.09.2026)

Câu hỏi để ngỏ từ §10.8 đã được chủ dự án trả lời: **giữ "Sắp mở"**, KHÔNG dựng trang định hướng
kiểu "chưa mở lớp" cho sáu môn Du học & Admissions, Ngữ văn, Vật lý, Hoá học, Tiếng Việt, Khoa học.

Nghĩa là sáu môn ấy tiếp tục như hiện nay: hiện trên trang mục tiêu dưới dạng mini-card có nhãn
"Sắp mở", không phải link, không có route, không vào `sitemap.xml`. Bật `built: true` cho một môn
chỉ khi Nemo12 có lớp thật đứng sau nó (luật ở `subjectCopy.ts`).

Đừng mở lại câu hỏi này bằng cách dựng một trang "định hướng" cho môn chưa có lớp: đó chính là
phương án đã được cân nhắc và KHÔNG chọn. AP có quyết định riêng (hiện trên thanh, không bấm được,
§10.11); môn "Essay" do một phiên khác thêm, không thuộc quyết định này.

### Trang mục tiêu tối giản ($SRC-1093, 27.09.2026)

Chủ dự án (ảnh `/students/university`): giảm 50% element và chữ, trình bày minimal, kéo các link lên
đầu màn hình để learner tập trung bấm IELTS hoặc SAT. `GoalPage` (dùng chung cho mọi mục tiêu, cả hai
vai) nay chỉ còn: tiêu đề một dòng, rồi ngay các thẻ môn ĐÃ MỞ to (tên + mũi tên) trong màn đầu, rồi
một dòng link nhỏ "Mục tiêu khác · Học AI...". Bỏ nhãn "Mục tiêu", câu dẫn, dải tối "Bạn cần thi gì?"
cùng câu mô tả, thẻ "Sắp mở" (làm loãng hai lối cần bấm), và khối "Chưa chắc nên bắt đầu từ đâu?".
Đã xem bằng bản build local ở `/students/university`, `/parents/university`, `/students/high-school`,
`/parents/middle-school`.

### Mục tiêu "Vào đại học" của học sinh đổi dòng phụ (SRC-1069, 26.09.2026)

Chủ dự án đổi dòng phụ của thẻ "Vào đại học" ở màn chọn mục tiêu (vai học sinh) từ "Vào được
trường đại học mình muốn" thành **"Luyện IELTS, SAT"**: nói thẳng hai thứ Nemo12 đang có cho
học sinh ở mục tiêu này, thay cho một câu đúng với mọi trung tâm. Bản phụ huynh ("Giúp con vào được trường đại học con muốn") đổi thành "Luyện IELTS, SAT cho con", chủ dự án chốt cùng ngày. Thêm "cho con" vì `goals.test.ts` giữ luật hai vai không dùng chung một câu: phụ huynh đọc về con, không đọc về chính mình.

### Ba chứng chỉ giáo viên dưới /teachers (SRC-1063, 25.09.2026)

Chủ dự án: CELTA, TESOL, TEFL phải ở `/teachers/celta`, `/teachers/tesol`, `/teachers/tefl`, không ở gốc tên miền. Lý do: ba họ trang ấy thuộc khu Giáo viên, và địa chỉ phải nói điều đó như breadcrumb đã nói.

* Cả ba họ trang (hơn 80 trang) chuyển tiền tố; `CONTENT_PREFIXES` nay cho phép tiền tố nhiều nấc, và cổng `check-seo-content` nhận tiền tố nhiều nấc.
* Địa chỉ cũ đã nằm trong sitemap và link đã lưu: cả CÂY cũ `/celta/*`, `/tesol/*`, `/tefl/*` trả 301 về địa chỉ mới (`teacherCertAlias` trong `routes.ts`, dùng ở worker và SPA).
* `id` của họ trang giữ `celta`, `tesol`, `tefl`, nên tên file sitemap con không đổi.

### Audit hiển thị nhiều cỡ màn hình (SRC-1059, 25.09.2026)

Chủ dự án: *"Có nhiều trang hiển thị bị lỗi trên màn hình MacBook 13 inches (như trang www.nemo12.com/ielts).
Nó thiếu button. Hãy rà soát và kiểm tra việc hiển thị trên nhiều kích thước màn hình khác nhau. Cả trên
mobile nữa."*

Quét 15 trang công khai (IELTS, SAT, CELTA, TESOL, TEFL, Teachers, Partners, trang chủ, hai trang vai, What's
new) ở 375x812, 768x1024, 1024x700, 1280x720, 1280x800, 1536x960, 1920x1080, đo: tràn ngang, nút nằm ngoài màn,
nút trong màn hình đầu, đích bấm dưới 24px.

| Lỗi | Ở đâu | Sửa |
| --- | --- | --- |
| Khu đầu trang IELTS (vai học sinh) không có nút hành động nào, ở MỌI cỡ màn; đặt cạnh SAT (có nút) nó đọc ra là trang hỏng | `/students/ielts` (`/ielts`) | Thêm lại "Đo điểm xuất phát" -> learn.nemo12.com/ielts, giống SAT. Đảo SRC-920 theo chỉ đạo này |
| Trang tràn ngang 18px ở 375px | Trang chủ `/` (thẻ "Học AI và các kỹ năng tương lai") | Tiêu đề thẻ tối đa 45% bề ngang và xuống dòng ở khổ điện thoại; dòng giải thích `min-w-0 flex-1` |
| Nút "i" giải thích 20x20px, quá nhỏ để bấm | `/…/ielts/diagnosis` | Nới vùng bấm ~40px bằng lớp `after` vô hình, giữ nguyên hình |

Các cỡ 768, 1024, 1280, 1536, 1920 không có lỗi đo được khác. Sân luyện learn.nemo12.com được gác bằng bộ e2e
(có các ca 375px).
