Mystic Draw là ứng dụng bói bài Tarot chạy trên web, cho phép xáo bộ bài, rút 1/2/3 lá, xem ý nghĩa xuôi/ngược và lời khuyên cho từng lá.
- Mô phỏng trải bài Tarot trực quan trên giao diện web.
- Hỗ trợ rút bài ngẫu nhiên và xem diễn giải theo từng lá.
- Cung cấp API backend để frontend lấy dữ liệu deck/meaning.
- Có Swagger UI để test API nhanh trong quá trình phát triển.
- Frontend: React 19, TypeScript, Vite
- Styling: CSS thuần
- Backend: Node.js, Express
- API docs: Swagger (swagger-jsdoc + swagger-ui-express)
- Tooling: ESLint, TypeScript, concurrently
npm installnpm run dev:fullSau khi chạy thành công:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3002
- Swagger UI: http://localhost:3002/api-docs
Chạy frontend:
npm run devChạy backend:
npm run server| Script | Mô tả |
|---|---|
npm run dev |
Chạy frontend bằng Vite (HMR). |
npm run server |
Chạy backend Express tại cổng 3002. |
npm run dev:full |
Chạy đồng thời frontend + backend. |
npm run build |
Build production ra thư mục dist/. |
npm run preview |
Preview bản build production. |
npm run lint |
Kiểm tra lint toàn bộ dự án. |
GET /ping: Health checkGET /api/shuffle: Trả về bộ bài đã xáoGET /api/draw?imgSrc=...: Trả về ý nghĩa một lá (hoặc random nếu không truyềnimgSrc)GET /api/draw/two: Rút ngẫu nhiên 2 láGET /api/draw/three: Rút ngẫu nhiên 3 lá
src/: mã nguồn frontend React + TypeScriptsrc/components/: UI components (Deck, Card, Modal, ...)src/api/: hàm gọi API backendsrc/constants/: dữ liệu Tarot và constantsserver/: Express server và dữ liệu Tarot phía backendpublic/: assets tĩnh (ảnh lá bài, favicon, ...)