Cổng thông tin tư vấn học sinh · v2.0

Sơ đồ triển khai

Hệ thống chạy được theo hai cách: bản demo tĩnh trên GitHub Pages, hoặc qua trạm trung gian trên máy Mac khi cần trợ lý AI và dữ liệu dùng chung. Bên trong, học sinh đi qua 7 bước, mỗi bước tạo ra một sản phẩm (H1–H7).

1. Kiến trúc triển khai

Cả hai cách dùng chung một bộ file web. Khác biệt duy nhất là có hay không trạm trung gian nằm giữa trình duyệt và trợ lý AI.

A · GITHUB PAGES — BẢN DEMO ĐANG CHẠY Trình duyệt của người dùng app.js — 7 bước, chấm điểm, gợi ý chat.js — trợ lý theo bộ câu hỏi có sẵn localStorage: hồ sơ · trường · kho hồ sơ GitHub Pages hanhdnguyen.github.io/tu-van-… chỉ trả về file tĩnh, không chạy mã tải HTML · CSS · JS không gọi /chat, /api (đã tắt trên github.io) B · QUA MÁY CHỦ TRÊN MAC — KHI BẬT TRẠM TRUNG GIAN Trình duyệt app.js · chat.js localStorage (bản nháp) Giáo viên đăng nhập → token 12 giờ Tailscale Funnel https://…ts.net cổng 443 → 8787 tuvan_proxy.py trạm trung gian · :8787 • phục vụ file web • POST /chat • /api: trường, hồ sơ, đăng nhập • tối đa 30 lượt hỏi/10 phút/IP Hermes Agent profile tuvan · :8642 chỉ được tìm kiếm web ~/web-demo-data schools.json profiles/<mã HS>.json HTTPS /chat đọc/ghi
Ở cách A, mọi thứ nằm trong trình duyệt: hồ sơ chỉ lưu trên máy đang dùng, còn trợ lý trả lời theo bộ câu hỏi có sẵn. Cách B thêm trạm trung gian trên Mac. Trạm giữ khoá API, chuyển câu hỏi tới profile Hermes riêng cho tư vấn (tách khỏi bot Telegram và email cá nhân), và lưu trường, hồ sơ dùng chung cho giáo viên.

2. Luồng dữ liệu qua 7 bước

Dữ liệu học sinh nhập vào (ô vàng) đi qua từng bước. Hai chỗ chấm điểm là Bước 3 và Bước 4. Kết quả theo dõi ở Bước 7 có thể đưa học sinh quay lại cân nhắc tổ hợp.

Điểm lớp 9 Môn thích/không Nguyện vọng Holland 54 câu Eysenck 59 câu MBTI 70 câu Tổ hợp của trường nhập tay, dán thông báo, link Google Form .csv / .xlsx khớp Mã HS BƯỚC 1Dữ liệu nền→ H1 Hồ sơ BƯỚC 2Trắc nghiệmtâm lý – năng lực→ H2 Báo cáo BƯỚC 3Nghề nghiệpnhóm ngành hợp→ H3 Ngành BƯỚC 4Tổ hợptại trường→ H4 Phương án BƯỚC 5Tư vấnGV – cha mẹ – HS→ H5 Phiếu BƯỚC 6Chốtnguyện vọng→ H6 Xác nhận BƯỚC 7Theo dõiđiều chỉnh→ H7 Cảnh báo cảnh báo sớm → cân nhắc đổi môn cuối năm (CV 68) Điểm phù hợp ngành (0–100) Holland 40 · Eysenck 10 · Điểm lớp 9 25 + môn thích 10 · nguyện vọng 10 + gia đình 5 · năng khiếu 5 − môn không muốn học 5 hoặc 15 Nhóm hợp = nhóm của 6 ngành cao nhất Điểm phương án tổ hợp (0–100) Phù hợp ngành 40 · Năng lực 30 Sở thích 20 · Linh hoạt 10 Chỉ dùng tổ hợp trường công bố Loại tổ hợp có môn không muốn học Kiểm tra: 4 môn · 3 cụm chuyên đề
Mỗi bước đọc dữ liệu của các bước trước, nên khi học sinh quay lại sửa thì kết quả được tính lại ngay. Mọi gợi ý đều có bảng "Vì sao gợi ý" ghi điểm từng yếu tố, để giáo viên và cha mẹ tự kiểm tra.

3. Thành phần mã nguồn

Web không cần cài đặt hay build. Trình duyệt nạp lần lượt bốn file script; file sau dùng dữ liệu của file trước.

js/config.js

Địa chỉ trợ lý AI (/chat), thời gian chờ, bot Telegram.

js/data.js

9 môn lựa chọn, tổ hợp xét tuyển, 3 bộ trắc nghiệm, 36 ngành, trường minh hoạ.

js/app.js

Giao diện 7 bước, chấm điểm, kiểm tra hợp lệ theo TT 13/2022, lưu hồ sơ, khu vực giáo viên.

js/chat.js

Trợ lý tư vấn: gọi máy chủ AI nếu có, không thì trả lời theo bộ câu hỏi có sẵn; phản hồi an toàn khi có dấu hiệu khủng hoảng.

server/tuvan_proxy.py

Trạm trung gian viết bằng Python, không cần thư viện ngoài. Chỉ dùng ở cách B.

server/SOUL.md

Vai trò và giới hạn của profile Hermes "tuvan".

Nếu trạm trung gian hoặc Hermes không trả lời, web tự chuyển về cách A: trợ lý trả lời theo bộ câu hỏi có sẵn, dữ liệu lưu trên trình duyệt. Buổi trình diễn vẫn chạy được khi mất kết nối.