Giao diện
Tech Stack
TL;DR — Cloudflare Pages for hosting both sites, GitHub for source, Tailwind CSS v4 for styling, Vite for the learner app, VitePress for docs, Wrangler for deployment. Workers, D1 and R2 are planned for phase 2.
| Lớp | Lựa chọn | Dùng ở | Ghi chú |
|---|---|---|---|
| Hosting | Cloudflare Pages | Cả hai site | Hai project riêng, triển khai bằng wrangler pages deploy |
| Mã nguồn | GitHub | Toàn bộ monorepo | Một repo, ba thư mục: shared, learning-experience, docs-aiteen-learning-experience |
| CSS | Tailwind CSS v4 (@tailwindcss/vite) | Learning Experience | Token thương hiệu khai báo trong @theme |
| Build app | Vite 7 | Learning Experience | JS thuần ES module, không framework |
| Site tài liệu | VitePress 1.x | Docs | Tìm kiếm cục bộ; trang chương trình sinh tự động |
| CLI triển khai | Wrangler 4 | Cả hai | npm run deploy trong từng site |
| Công cụ học viên | Claude Code | WebAI Builder | Học viên dùng để tạo, sửa và xuất bản website |
| Lưu evidence (GĐ1) | localStorage | Learning Experience | Có dự phòng bộ nhớ khi trình duyệt chặn |
| Backend (GĐ2) | Workers + D1 + R2 | Chưa bật | Cấu hình mẫu đã có (dạng chú thích) trong wrangler.toml |
| Font | Be Vietnam Pro, Lexend | Cả hai | Google Fonts, giống sutucon.com |
Phiên bản & yêu cầu
- Node.js 20 trở lên (đã thử với Node 22/24).
- Tài khoản Cloudflare và
npx wrangler loginkhi deploy. - Phiên bản gói được khóa lỏng bằng
^;package-lock.jsonđược tạo khi chạynpm installlần đầu và nên được commit.
Cấu trúc kho mã
aiteen/
├─ package.json # npm workspaces + script tiện ích
├─ shared/curriculum/ # dữ liệu chương trình (ESM)
├─ learning-experience/ # site học viên (Vite + Tailwind)
└─ docs-aiteen-learning-experience/ # site tài liệu (VitePress)