Full-stack POS application gồm:
- Backend: ASP.NET Core .NET 8 (REST API + SignalR)
- Frontend: nằm tại
FE/pos_visnam(React/JS)
- .NET SDK 8: https://dotnet.microsoft.com/download/dotnet/8.0
- Node.js (khuyến nghị 18+ hoặc 20+): https://nodejs.org/
- Docker Desktop / Docker Engine
Backend nằm trong thư mục: BE/POS_VISNAM
cd BE/POS_VISNAM
dotnet restore
dotnet run --project POS_VISNAM/POS_VISNAM.csprojKhi chạy ở môi trường Development, backend bật Swagger.
- Swagger:
https://localhost:<port>/swaggerhoặchttp://localhost:<port>/swagger - SignalR Hub:
/orderHub
Ghi chú CORS: backend đang allow origin
http://localhost:3000vàhttp://localhost:5173.
Frontend nằm trong: FE/pos_visnam
cd FE/pos_visnam
npm install
npm run devHoặc nếu project dùng CRA thay vì Vite:
npm startNếu FE gọi API backend, hãy cấu hình base URL ở trong file apiService.js và signalRService.js trỏ tới backend local (ví dụ
http://localhost:<backend-port>).
Mục tiêu: Build frontend -> copy static files vào backend -> backend serve FE.
Tại root repo:
docker build -t pos_visnam:latest .docker run --rm -p 8080:8080 pos_visnam:latest- Truy cập app: http://localhost:8080
- Nếu Swagger bật trong môi trường container (tùy ASPNETCORE_ENVIRONMENT): http://localhost:8080/swagger
Mặc định Dockerfile bên dưới chạy Kestrel HTTP port
8080. Bạn có thể đổi port mapping theo nhu cầu.
BE/POS_VISNAM/(solution)FE/pos_visnam/(frontend app)
- Đảm bảo Node version phù hợp.
- Xóa cache và cài lại:
rm -rf node_modules package-lock.json npm install
- Kiểm tra đang dùng đúng .NET SDK 8:
dotnet --version