Menu hiện có 28 mục cùng trọng số; một nửa số mục có dưới 15% giáo viên sử dụng. Đề xuất cho phép mỗi giáo viên chọn mục cần hiện.
Bản đề xuất — để thảo luận, chưa phải quyết địnhTài liệu được viết để trả lời yêu cầu đặt ra ngày 22/09/2026, nguyên văn:
đề xuất cho anh một PRD feature để users có thể custom menu/ setup menu feature teacher sẽ sử dụng nhé — tham khảo phần edit sidebar này — https://teacher.flyer.us
Trợ lý AI soạn trong một phiên làm việc. Hiện trạng giao diện đọc trực tiếp từ mã nguồn partner-web; số liệu sử dụng lấy lại từ bản phân tích 15/09/2026, khoảng đo 01/06–31/08/2026. Mọi ngưỡng và lộ trình là đề xuất.
28 mục hiển thị như nhau cho mọi giáo viên. Bản đánh giá trải nghiệm 09/09/2026 chấm Điều hướng 5 trên 10. Nền so sánh: 1.131 giáo viên hoạt động, ba tháng.
| Mục menu | Giáo viên đã dùng | Ghi chú |
|---|---|---|
| Bài đã giao | 85% | 965 giáo viên. Trục chính của sản phẩm. |
| Lớp và học sinh | 45% | 510 giáo viên tạo 1.604 lớp. |
| Thư viện của tôi | 29% | 325 giáo viên. Nhóm duy nhất đang tăng trưởng. |
| Giáo viên của trường | 23% | 259 giáo viên, 291 lượt: việc làm một lần lúc thiết lập. |
| FLYER AI chấm | 18% | 205 giáo viên chấm Nói, 159 chấm Viết. |
| Lịch học | 13% | 151 giáo viên, so với 1.604 lớp cùng kỳ. |
| Thi tập trung | 3,2% | 36 giáo viên, cạnh tranh menu với chế độ kiểm tra có 209 giáo viên. |
| Khoá học | 0,7% | 8 giáo viên, 8 lượt. |
| Điểm danh | 0,6% | Toàn hệ thống 12 giáo viên, 221 lượt, 32 buổi. |
| Học phí | 0,2% | 2 giáo viên, 5 lượt. |
| AI Assistant | 0% | Không lượt nào trong ba tháng. |
| Nguyên tắc | Nội dung |
|---|---|
| Ẩn chứ không xoá | Ẩn chỉ gỡ mục khỏi thanh bên. Đường dẫn và liên kết cũ vẫn chạy. Đây là ranh giới tách khỏi phân quyền. |
| Có lối về | Mục Thiết lập và ô tìm kiếm không ẩn được, nên ẩn nhầm vẫn có đường quay lại. |
| Mặc định giữ nguyên | Người chưa mở hộp thoại thấy menu y hệt hôm nay. |
| Gợi ý chứ không ép | Có thể đề xuất ẩn mục chưa dùng sau 60 ngày, nhưng phải do giáo viên xác nhận. |
| Một nguồn sự thật | Menu phải trở thành dữ liệu trước khi tuỳ chỉnh được. |
Một hộp thoại, ba lối vào: nút ở chân thanh bên, trang Thiết lập, và một lời nhắc cho tài khoản đã dùng trên 30 ngày.
| Bước | Màn hình | Hành vi |
|---|---|---|
| 1 | Mở hộp thoại | Liệt kê mọi mục giáo viên có quyền thấy, giữ thứ tự nhóm hiện tại. |
| 2 | Chọn bộ khởi tạo | Năm bộ dựng sẵn. Chọn một bộ là đánh dấu sẵn, vẫn sửa tiếp được. |
| 3 | Xem trước | Thanh bên đổi ngay theo từng lần đánh dấu. |
| 4 | Lưu | Ghi xuống hồ sơ giáo viên, áp dụng cho mọi thiết bị. Có nút khôi phục mặc định. |
| 5 | Mục đã ẩn | Gom vào một dòng Xem thêm ở cuối thanh bên. |
Dựng lại giao diện thật và thao tác được. Chọn một mục để chuyển màn hình; mở Thiết lập menu ở chân thanh bên để bật tắt và đổi thứ tự. Màu, cỡ chữ và biểu tượng lấy từ mã nguồn partner-web.
Mục bỏ chọn vẫn truy cập được qua tìm kiếm và qua đường dẫn.
Cột phần trăm là tỉ lệ giáo viên đã dùng mục đó trong ba tháng, đặt cạnh ô đánh dấu để việc bỏ chọn có căn cứ. Huỷ trả về trạng thái trước khi mở; Lưu mới áp dụng.
Bộ mặc định là FLYER đề xuất, lấy đúng menu mặc định của teacher.teado.ai. Bốn bộ còn lại dùng lại bốn mục tiêu giáo viên đã khai lúc đăng ký, hiện khai trong goalConfig.ts, nên không phải xây mới.
| Bộ | Số mục | Gồm |
|---|---|---|
| FLYER đề xuất mặc định | 11 | Báo cáo, Kho đề, Cửa hàng, Giáo án, Đề đầu vào, FLYER AI chấm, Thư viện, Lớp, Học sinh, Bài đã giao, Thiết lập |
| Dạy lớp manage_classes | 8 | Lớp, Học sinh, Bài đã giao, Kho đề, Thư viện, Báo cáo, Bắt đầu nhanh, Thiết lập |
| Dùng AI use_ai | 8 | FLYER AI chấm, Thư viện, Kho đề, Lớp, Học sinh, Bài đã giao, Báo cáo, Thiết lập |
| Tự số hoá đề digitize | 8 | Thư viện, Nhập từ AI, Kho đề, Giáo án, Bài đã giao, Lớp, Học sinh, Thiết lập |
| Quản lý trung tâm admin | 25 | Toàn bộ, trừ AI Assistant, Thử thách và Trò chơi |
Trung tâm và giáo viên tự do cần hai lớp xếp chồng.
| Lớp | Ai đặt | Tác dụng |
|---|---|---|
| Mặc định của trường | Chủ trường | Đặt menu khởi tạo cho giáo viên mới của trường; giáo viên vẫn sửa được cho riêng họ. Đây là giá trị lớn nhất với trung tâm. |
| Tuỳ chỉnh cá nhân | Từng giáo viên | Đè lên lớp trên, có nút trả về mặc định của trường. |
| Phân quyền | Không đổi | Lớp ngoài cùng, không liên quan tới tính năng này. Mục không có quyền không xuất hiện trong hộp thoại. |
Phần nặng nhất của tính năng.
src/layouts/main/Sidebar.tsx dài 1.104 dòng JSX lồng nhau, nhánh theo isAdmin, isLite, isAuthenticated, phiên bản onboarding và cấu hình từ xa. Không có danh sách mục menu ở dạng dữ liệu.
Việc đầu tiên: rút cây menu ra một khai báo, mỗi mục gồm mã, nhãn, đường dẫn, biểu tượng, nhóm, điều kiện quyền và cờ ẩn được. Tái cấu trúc thuần, kiểm chứng bằng cách so ảnh chụp trước sau.
| Phương án | Đánh giá |
|---|---|
| Trường mới trên hồ sơ giáo viên | Đề xuất. Một trường JSON riêng, không tranh chấp, đọc cùng hồ sơ nên không nhấp nháy khi tải trang. |
Dùng lại onboardingInfo | Rẻ hơn nhưng có bẫy: máy chủ không có cập nhật từng phần, mỗi lần ghi là ghi đè cả mảng. useTeacherOnboardingInfo.ts đã phải dựng hàng đợi ghi tuần tự để tránh mất dữ liệu. |
| Chỉ lưu trên trình duyệt | Loại. Thiết lập phải theo người, không theo thiết bị. |
Mục mới mặc định hiện với mọi người, kể cả người đã tuỳ chỉnh. Vì vậy lưu danh sách mục đã ẩn; lưu ngược lại thì tính năng mới sẽ vô hình với nhóm người dùng tích cực nhất.
| Giai đoạn | Nội dung | Kiểm chứng |
|---|---|---|
| P0 | Rút cây menu thành khai báo dữ liệu, không đổi giao diện. | Ảnh chụp trước và sau trùng khớp ở ba vai trò: giáo viên, chủ trường, bản Teado. |
| P1 | Hộp thoại bật tắt, lưu theo hồ sơ giáo viên. Chưa đổi thứ tự. | Ẩn hết mục vẫn vào được Thiết lập và ô tìm kiếm. |
| P2 | Năm bộ khởi tạo, dòng Xem thêm, nút khôi phục mặc định. | Tài khoản mới nhận đúng bộ theo mục tiêu đã khai. |
| P3 | Đổi thứ tự và ghim mục lên đầu. | Thứ tự giữ nguyên trên thiết bị khác. |
| P4 | Mặc định của trường do chủ trường đặt. | Giáo viên mới nhận menu mặc định; giáo viên cũ không bị đổi. |
| P5 | Gợi ý ẩn mục chưa dùng sau 60 ngày. | Chỉ chạy khi đã đo được lượt xem trang. |
| # | Tình huống | Xử lý |
|---|---|---|
| 1 | Giáo viên ẩn một mục, sau đó chủ trường gỡ quyền của họ với mục đó | Mục biến mất khỏi hộp thoại. Trạng thái đã ẩn vẫn giữ, để khi cấp quyền lại thì trở về lựa chọn cũ. |
| 2 | Giáo viên được cấp thêm quyền mới | Mục mới hiện ngay, vì hệ thống lưu danh sách đã ẩn. |
| 3 | Giáo viên dạy ở hai trường, mỗi trường một mặc định | Thiết lập theo hồ sơ giáo viên của từng trường, không theo tài khoản. Đổi trường là đổi menu. |
| 4 | Chủ trường tự hạ vai trò của chính họ xuống giáo viên thường | Mất quyền đặt mặc định. Mặc định đã đặt vẫn còn hiệu lực. |
| # | Tình huống | Xử lý |
|---|---|---|
| 5 | Giáo viên bỏ chọn toàn bộ | Hộp thoại cảnh báo khi còn dưới bốn mục; Thiết lập không bỏ chọn được. |
| 6 | Giáo viên ẩn mục đang xem | Trang hiện tại không đóng. Thanh bên bỏ đánh dấu mục đó, kèm dòng nhắc mục nằm trong Xem thêm. |
| 7 | Tài khoản chưa đăng nhập | Không có hộp thoại. Menu khách giữ nguyên như hiện nay. |
| 8 | Giáo viên mới hoàn toàn, chưa có mục tiêu | Nhận bộ FLYER đề xuất. Không hiện lời nhắc trong 30 ngày đầu. |
| # | Tình huống | Xử lý |
|---|---|---|
| 9 | Sửa menu trên hai thẻ trình duyệt cùng lúc | Ghi sau thắng, nhưng phải ghi cả đối tượng trong một lần gọi. Dùng lại onboardingInfo thì bắt buộc qua hàng đợi ghi tuần tự. |
| 10 | Máy chủ chưa trả thiết lập khi trang vừa tải | Dựng mặc định rồi mới áp thiết lập sẽ gây nhấp nháy. Thiết lập phải đi cùng lời gọi lấy hồ sơ, một vòng. |
| 11 | Trên điện thoại | Dùng chung một thiết lập. Không làm riêng theo thiết bị: 86% phiên là máy tính, 11% điện thoại. |
| 12 | Sản phẩm bỏ hẳn một mục menu | Mã mục còn sót lại được bỏ qua khi dựng hình và dọn định kỳ. Không báo lỗi. |
| # | Tình huống | Xử lý |
|---|---|---|
| 13 | Bản Teado rút gọn | Hộp thoại chỉ liệt kê tập mục của bản rút gọn, không cho vượt ra ngoài. |
| 14 | Trường tắt một cờ tính năng, ví dụ học phí | Mục không xuất hiện trong hộp thoại. Cờ tính năng của trường đứng trên thiết lập cá nhân. |
| 15 | Mục đang mang nhãn Gợi ý trong 14 ngày đầu | Chốt một trong hai: không cho ẩn, hoặc ẩn được nhưng gỡ luôn nhãn. Tránh nhãn trỏ vào mục không có trên thanh bên. |
| # | Tiêu chí |
|---|---|
| 1 | Người chưa mở hộp thoại thấy menu không khác một pixel so với trước khi phát hành. |
| 2 | Bỏ chọn một mục thì thanh bên đổi ngay, không cần tải lại trang. |
| 3 | Thiết lập giữ nguyên sau khi đăng xuất, đăng nhập lại trên thiết bị khác. |
| 4 | Ẩn mọi mục có thể ẩn thì vẫn vào được Thiết lập và ô tìm kiếm. |
| 5 | Mục bị ẩn vẫn mở được bằng đường dẫn trực tiếp và bằng liên kết trong sản phẩm. |
| 6 | Mục menu mới hiện với mọi người, kể cả người đã tuỳ chỉnh. |
| 7 | Nút khôi phục mặc định đưa về đúng trạng thái ban đầu của vai trò đó. |
| 8 | Đổi trường thì menu đổi theo hồ sơ của trường đó. |
| 9 | Hộp thoại đi hết bằng bàn phím, mỗi dòng có nhãn đọc được cho trình đọc màn hình. |
| 10 | Trên màn hình 390px hộp thoại không tràn ngang và không cần cuộn ngang. |
Bốn sự kiện, theo quy ước của bộ sự kiện đo lường.
| Sự kiện | Tham số riêng | Trả lời câu hỏi |
|---|---|---|
menu_setup_opened | source | Lối vào nào dẫn người dùng tới hộp thoại. |
menu_preset_applied | preset | Bộ khởi tạo nào được chọn. |
menu_setup_saved | hidden_count, hidden_keys, changed | Giáo viên ẩn bao nhiêu mục và ẩn mục nào. Dữ liệu quý nhất: cho biết nên cắt gì cho tất cả. |
menu_setup_reset | không | Tỉ lệ hối hận. Cao bất thường là hộp thoại gây nhầm lẫn. |
| Chỉ số | Ngưỡng đề xuất | Ghi chú |
|---|---|---|
| Tỉ lệ mở hộp thoại | 20% trong quý đầu | Thấp hơn là lối vào bị chôn, không phải nhu cầu thấp. |
| Tỉ lệ lưu sau khi mở | 60% | Mở rồi đóng mà không đổi gì là hộp thoại khó hiểu. |
| Số mục ẩn trung vị | từ 5 trở lên | Thấp hơn là giáo viên không dám ẩn, cần xem lại cách trình bày. |
| Tỉ lệ khôi phục mặc định | dưới 10% | Chỉ số bảo vệ. |
| Thời gian tới thao tác đầu | giảm 15% | Chỉ số chính. So nhóm đã tuỳ chỉnh với nhóm chưa, cùng khoảng thời gian. |
| Rủi ro | Cách giảm |
|---|---|
| Tính năng mới bị chôn | Lưu danh sách đã ẩn. Quy tắc này phải nằm trong bài kiểm tra nghiệm thu, vì hỏng sẽ hỏng âm thầm. |
| Nhầm với phân quyền | Không dùng thiết lập menu để chặn truy cập. Tiêu chí nghiệm thu số 5 tồn tại vì điều này. |
| Hỗ trợ khó hơn | Đội hỗ trợ xem được thiết lập trong trang quản trị, và hướng dẫn bằng đường dẫn thay vì vị trí trên menu. |
| Tái cấu trúc P0 làm hỏng menu hiện tại | Rủi ro kỹ thuật lớn nhất: 1.104 dòng điều kiện lồng nhau dễ sót một nhánh. Phát hành P0 riêng và so ảnh chụp đủ ba vai trò cộng bản Teado. |
| Không ai mở hộp thoại | Phần A ở mục 8 vẫn có giá trị độc lập. Tỉ lệ mở dưới 10% sau một quý thì cắt menu cho tất cả thay vì đầu tư tiếp. |