Skip to content

Bắt đầu nhanh

Yêu cầu

  • Node.js 20 trở lên (bản dựng dùng 22)
  • pnpm 10
  • Tài khoản Cloudflare (chỉ cần khi triển khai)

Cài đặt

bash
cd chuyenchon.com && pnpm install

Dựng cơ sở dữ liệu cục bộ

D1 chạy cục bộ bằng SQLite trong .wrangler/state. Lệnh sau tạo lại từ đầu: xoá state, chạy migration rồi nạp dữ liệu mẫu.

bash
cd apps/api && pnpm db:reset:local

Nếu bạn sửa seed/data.mjs, sinh lại file SQL trước:

bash
cd apps/api && pnpm db:build-seed && pnpm db:reset:local

Chạy API Gateway

bash
cd apps/api && pnpm dev

Worker phục vụ ở http://127.0.0.1:8788. Kiểm tra nhanh:

bash
curl http://127.0.0.1:8788/health

Chạy frontend

bash
cd apps/web && pnpm dev

Vite chạy ở http://localhost:5173 và proxy mọi request /v1/* sang Worker cục bộ, nên khi phát triển không cần đặt VITE_API_BASE.

Dựng bản production (kèm prerender)

Bước prerender gọi API thật để sinh HTML tĩnh, nên API Gateway phải phản hồi được tại VITE_API_BASE trong lúc build:

bash
cd apps/web
VITE_API_BASE=http://127.0.0.1:8788 pnpm build

Kết quả nằm ở apps/web/dist, gồm HTML tĩnh cho từng trường, đề thi, kỳ thi, giáo viên và sitemap.xml.

Kiểm tra bản dựng

vite preview chỉ phục vụ trang tĩnh khi URL có dấu / ở cuối (ví dụ /truong/chuyen-khtn/). Cloudflare Pages tự xử lý cả hai dạng, nên đây chỉ là đặc thù của công cụ xem thử.

Tài liệu này

bash
cd docs.chuyenchon.com && pnpm install && pnpm dev

Tài liệu nội bộ dự án Chuyên Chọn.