Bobi Learning
Nền tảng học tập AI dành cho học sinh tiểu học lớp 1-5: Toán, Tiếng Việt, Tiếng Anh. Có gia sư AI, độ khó thích ứng, gamification và trò chơi trí tuệ (Sudoku, Cờ vua, Cờ tướng) đấu online.
Công nghệ
Tổng quan
Bobi Learning là nền tảng học tập thông minh tích hợp AI, được thiết kế riêng cho học sinh tiểu học Việt Nam (lớp 1-5). Mục tiêu: biến việc học Toán, Tiếng Việt, Tiếng Anh thành hành trình vui chơi đầy hứng khởi với gia sư AI cá nhân hoá theo trình độ từng em.
Tính năng nổi bật
Học tập thông minh
- Bài tập 3 môn: Toán (thuật toán sinh đề, không tốn AI), Tiếng Việt (đọc hiểu, chính tả, đọc lưu loát qua TTS), Tiếng Anh (từ vựng, ghép cặp, câu chuyện).
- Độ khó thích ứng: kết hợp thuật toán SM-2 spaced repetition + sliding-window 20 câu để tự động điều chỉnh độ khó theo từng học sinh.
- Gia sư AI (Bobi): chat hỏi đáp khi học sinh gặp khó, hỗ trợ giải thích từng bước.
- Đọc bài bằng giọng nói: OpenAI TTS với MD5 cache, không tốn API token cho lần thứ hai.
- Bạn có biết?: AI sinh câu hỏi "Tại sao..." theo lứa tuổi, lưu pool chung cho user không có API key.
Gamification
- Điểm thưởng, streak ngày liên tiếp, huy hiệu đa cấp, thử thách hàng ngày x2 điểm.
- Pet ảo, mua trang phục avatar, cốt truyện theo chương, bảng xếp hạng.
- Lộ trình mạo hiểm (Adventure Map) qua từng chủ đề.
Trò chơi trí tuệ
- Sudoku: thuật toán backtracking sinh puzzle 5 cấp độ + chế độ đua online 2 người.
- Cờ vua: tích hợp Stockfish.js (WASM) với 5 mức skill, board UI tự render, có thể tạo phòng mời bạn bằng mã 6 ký tự.
- Cờ tướng: tự code minimax + alpha-beta với piece-square tables, 5 cấp độ.
- Tất cả game đều có chế độ online matchmaking qua mã mời với đồng bộ real-time qua Socket.IO.
Dành cho phụ huynh
- Dashboard theo dõi tiến độ, weak points (điểm yếu), thời gian học mỗi ngày.
- Tạo bài tập riêng cho con, chia sẻ đề thi qua link.
- Cấu hình AI provider riêng (OpenAI / Gemini / Deepseek) với API key mã hoá.
Kiến trúc
Monorepo pnpm workspaces với 3 package:
packages/shared: types + constants dùng chung.apps/backend: REST API + Socket.IO realtime layer.apps/frontend: SPA Vue 3.
Backend: Express + TypeScript, MongoDB qua Mongoose, JWT auth + Google OAuth, Socket.IO cho game online, dotenv cho config, Passport cho strategy.
Frontend: Vue 3 Composition API + TypeScript, Vite, Pinia store, Vue Router, Axios. SEO meta tags + JSON-LD EducationalApplication schema.
Deployment: Docker multi-stage build (Alpine), pnpm với node-linker=hoisted để hợp với Docker overlay-fs, deploy trên VPS qua rsync + docker-compose.
Thử thách kỹ thuật đã giải quyết
- pnpm 10 + Docker symlinks: chuyển sang
node-linker=hoistedvà invoke binary quanode /app/node_modules/<pkg>/bin/<bin>để bypass per-workspace shim bug. - TypeScript
moduleResolution: "bundler"vs"NodeNext": chuyển backend sang NodeNext để fixCannot find modulekhi tsc chạy từ subdirectory. - Stockfish.js trong Vue worker: load WASM từ CDN qua Blob URL để bypass CORS, không phình bundle.
- Adaptive difficulty SM-2: kết hợp ease factor + interval days + sliding window 20-câu accuracy để vừa thưởng "luyện ngay" vừa nhớ "ôn lại lâu dài".
Định hướng
Ship bản beta cho ~50 phụ huynh test, thu phản hồi điều chỉnh khó-dễ và content. Lộ trình tiếp theo: thêm môn Khoa học, mở rộng lên lớp 6-9, tích hợp Pikafish WASM cho cờ tướng nâng cao.