src/
├── components/ # Các component tái sử dụng
│ ├── ui/ # Component UI cơ bản
│ ├── layout/ # Component bố cục
│ ├── forms/ # Component form
│ └── common/ # Component dùng chung
├── pages/ # Các trang
├── hooks/ # Custom hooks
├── services/ # API services
├── utils/ # Các hàm tiện ích
├── constants/ # Các hằng số của ứng dụng
├── types/ # Kiểu dữ liệu TypeScript
├── stores/ # Quản lý trạng thái
├── assets/ # Tài nguyên tĩnh
└── styles/ # Styles toàn cục
- Prettier & ESLint: Quy tắc code được định nghĩa trong
.prettierrc,.eslintrc.js,.editorconfig - Path Aliases: Được cấu hình trong
tsconfig.jsonvàvite.config.ts - TailwindCSS: Hỗ trợ viết CSS nhanh với utility-first. Cấu hình trong
tailwind.config.js - SCSS Support: Sử dụng file
.scsscho styles tùy chỉnh và biến - Redux Toolkit: Quản lý state trong
src/stores/ - React Router: Hệ thống định tuyến và lazy-loading cho các trang
- Biến môi trường: Tất cả biến môi trường phải bắt đầu bằng tiền tố
VITE_
npm installnpm run devnpm run buildThêm biến vào file .env, .env.development, .env.production, v.v.
Ví dụ:
VITE_API_URL=https://api.example.com
VITE_FEATURE_FLAG_EXPERIMENTAL=true
Tất cả biến môi trường sử dụng trong code phải bắt đầu với
VITE_.
Dự án sử dụng zod để xác thực các biến môi trường cần thiết khi khởi động.
Schema được định nghĩa trong src/constants/env.ts.
Nếu thiếu biến hoặc sai định dạng, ứng dụng sẽ báo lỗi và dừng chạy.
- UI Components: Button, Input, Modal, Toast, Spinner, Table, v.v.
- Layout: Header, Sidebar, Container, Grid, ...
- Hooks:
useApi,useLocalStorage,useDebounce,useForm, ... - API Service Layer: Axios instance với interceptors, xử lý lỗi, hủy request, v.v.
- Auth: Quản lý JWT, route bảo vệ, session, logout
- Testing: Đã cấu hình sẵn Jest + React Testing Library (sẽ có tài liệu sắp tới)
- Tài liệu component: Sắp có cùng với Storybook
- API docs: Sắp có
- Đóng góp: PRs được hoan nghênh! Vui lòng tuân theo quy tắc code và cấu trúc dự án.
- Sử dụng import tuyệt đối với alias:
import Button from '@components/ui/Button'; - Styles toàn cục:
src/styles/global.scss - Hàm tiện ích:
src/utils/ - Hằng số ứng dụng:
src/constants/
MIT