Mirobody
The canonical registry of human health — roughly two thousand standardized indicators, clinical and lifestyle, resolved into one language.
Cảm xúc được lắng nghe, bản thân được thấu hiểu.
Translation pending
HealthTypeScript · JavaScriptGitHub @Due-pyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Cảm xúc được lắng nghe, bản thân được thấu hiểu.
Web hỗ trợ cảm xúc cho học sinh THCS/THPT, dự án của đội The Crusaders (lớp 8A1, Trường TH, THCS và THPT FPT Bắc Giang) tham gia STEMpetition 2026–2027, Challenge 2 – Healthy Living.
Gồm trang học sinh (/) và trang thầy cô (/staff).
| Màn hình | Có gì |
|---|---|
Trang đầu / | Đăng nhập / tạo tài khoản bằng mã lớp + biệt danh + mật khẩu (không cần email) |
Làm quen /onboarding | Gặp linh vật Mây, quy tắc riêng tư, "F-Mood không phải chuyên gia tâm lý" |
Trang chủ /home | Mây chào và nhắc check-in, cảm xúc 7 ngày, thói quen hôm nay, bài học gợi ý |
Check-in /checkin | Chọn 1–5 cảm xúc bằng emoji, check-in nhiều lần mỗi ngày |
Trò chuyện /chat | Trò chuyện với Mây (OpenAI), lưu lại, xóa được |
Thói quen /habits | Thói quen hằng ngày, chuỗi ngày 🔥, động viên bắt đầu lại khi đứt chuỗi |
Thư viện /library | Bài học well-being theo lớp và chủ đề |
Tôi /me | Lịch cảm xúc, biểu đồ 7 ngày, giao diện sáng/tối, đổi mật khẩu, xóa dữ liệu |
alerts, chỉ chứa đoạn bị gắn cờ. Thầy cô không đọc được các cuộc trò chuyện khác.| File | Nội dung |
|---|---|
content/safety/crisis-response.md | Câu trả lời soạn sẵn khi có dấu hiệu nguy hiểm |
lib/ai/prompts.ts | Lời dặn cho Mây (system prompt) và tiêu chí phân loại rủi ro |
lib/safety/keywords.ts | Danh sách cụm từ nguy hiểm (có test: npm test) |
lib/mascot.ts | Lời thoại của Mây |
content/lessons/*.md | Bài học trong thư viện |
Cần Node.js 20+.
npm install
Sao chép .env.example thành .env.local rồi điền các giá trị. Không bao giờ gửi .env.local lên GitHub hay chia sẻ Secret key.
npm run db:migrate
(Hoặc mở SQL Editor trong Supabase, dán lần lượt nội dung các file trong supabase/migrations/ theo thứ tự tên file và bấm Run.)
npm run class:create -- "8A1" 8
Script in ra mã lớp (ví dụ K7QX2M) để đưa cho học sinh tạo tài khoản.
npm run dev
/staff)| Vai trò | Được làm gì |
|---|---|
| Giáo viên chủ nhiệm | Cảnh báo, danh sách học sinh (họ tên + biệt danh) và thống kê cảm xúc ẩn danh của lớp mình chủ nhiệm. Đặt lại mật khẩu học sinh lớp mình. |
| Phòng tham vấn | Như trên nhưng cho tất cả các lớp. |
| Admin | Mọi quyền trên, cộng: tạo/sửa/xóa lớp, gán GVCN, tạo mã lớp mới, khóa/xóa học sinh, tạo/khóa/xóa tài khoản thầy cô, đặt lại mật khẩu thầy cô. |
lib/staff.ts (đọc dữ liệu) và app/actions/staff.ts (thao tác).| Nhóm | Tính năng |
|---|---|
| Bàn làm việc | Tình trạng Mây (model, kho kiến thức, kết nối AI/DB), lối tắt mọi tính năng, hoạt động gần đây |
| An toàn | Cảnh báo · Phát hiện rủi ro (thêm cụm từ nguy hiểm, sửa tiêu chí AI, thử một câu) · Khẩn cấp (câu trả lời soạn sẵn, số hỗ trợ) |
| Nội dung | Thư viện bài học (soạn Markdown có xem trước) · Câu hỏi & gợi ý (câu mở đầu chat, câu hỏi suy ngẫm hằng ngày) · Khu vườn (loại cây, số giọt nước) |
| Mây | Lời dặn · Nhân vật · Kịch bản theo chủ đề · Kho kiến thức (tải PDF, dạy lại, thử tra cứu) · Tình trạng Mây (lượt dùng, lỗi, đổi model) |
| Lớp và người | Thành viên (thầy cô + học sinh, chuyển lớp) · Tình hình lớp |
| Nghiên cứu | Kết quả nghiên cứu (số liệu ẩn danh, tải CSV) · Phiếu khảo sát · Bộ thử của Mây |
Các trang Lời dặn, Nhân vật và Kịch bản có ô Thử nói chuyện để xem Mây trả lời thế nào trước khi lưu.
Mọi nội dung admin sửa được lưu ở bảng app_settings. Giá trị mặc định nằm trong code (lib/settings.ts, lib/ai/prompts.ts), có nút Khôi phục mặc định.
Kho kiến thức cần extension vector (pgvector) và bucket Storage kb. Cả hai đã có sẵn trong 0003_admin.sql. PDF phải là bản có thể chọn chữ, không phải ảnh scan.
npm run admin:create -- <email> "<Tên hiển thị>"
Lệnh hỏi mật khẩu (không hiện khi gõ). Sau đó đăng nhập tại /staff/login và tạo tài khoản thầy cô trong mục Thầy cô. Hệ thống tạo mật khẩu tạm, chỉ hiện một lần.
This is the beginning of the README. Read the rest at the original. Read the full README ↗