Static frontend PetPulse được xây dựng bằng React, TypeScript, Vite và Tailwind CSS. Đây hiện là bản demo: dữ liệu và đăng nhập đều là mock, không có API hay secret runtime.
- Node.js 22.x (xem
.nvmrc) - npm, đi kèm Node.js
npm ci
npm run devVite mặc định chạy tại http://localhost:5173. Chạy npm install chỉ khi chủ động cập nhật dependency; dùng npm ci cho môi trường sạch và CI.
| Vai trò | Mật khẩu | |
|---|---|---|
| Admin | admin@petpulse.vn |
paw123 |
| User | an@example.com |
paw123 |
npm run lint
npm run typecheck
npm run test:run
npm run build
npm run cinpm run ci chạy lint, typecheck, test và build theo đúng thứ tự. CI cũng chạy npm audit --omit=dev --audit-level=high; chỉ vulnerability high/critical trong dependency runtime mới chặn merge.
Client chỉ đọc biến có tiền tố VITE_. Những giá trị này được đóng gói vào JavaScript gửi đến trình duyệt, vì vậy không được đặt token, password, API secret hoặc credential trong chúng. Xem .env.example để biết mẫu cấu hình public.
- Kết nối repository
lethanhan01/PetPulsetrong Vercel qua Git Integration. - Chọn
mainlà Production Branch và Node.js 22.x trong Project Settings. - Vercel dùng
npm run buildvà deploy thư mụcdist; commit ngoàimaintạo Preview Deployment, commit vàomaintạo Production Deployment. - Nếu sau này có public API base URL, khai báo biến
VITE_*riêng cho Preview/Production trong Vercel rồi redeploy. Không khai báo secret phía client.
Repository administrator cần bảo vệ main và bắt buộc status check CI / quality trước khi merge. Thiết lập này cùng Git Integration là cấu hình quản trị bên ngoài repository, không thể áp dụng chỉ bằng code.