Hệ thống quản lý cửa hàng bán lẻ thời trang Routine, gồm:
Website bán hàng online cho khách hàng: xem sản phẩm, tìm kiếm, giỏ hàng, yêu thích, đánh giá, đặt hàng, theo dõi đơn.
Hệ thống quản trị nội bộ cho 4 vai trò nhân sự: Quản lý (ADMIN), Nhân viên bán hàng (SALES_STAFF), Thủ kho (WAREHOUSE_STAFF), Kế toán (ACCOUNTANT) — với POS bán tại quầy, quản lý sản phẩm/kho/kiểm kê/khuyến mãi/NCC/nhân viên và báo cáo doanh thu.
Kiến trúc: Spring Boot MVC 3 tầng (Controller → Service → Repository/Entity), RESTful /api/v1/**, JWT (access + refresh), BCrypt, MySQL + Flyway; frontend ReactJS (React Router theo role, Axios + interceptor tự refresh token, Context API). Toàn bộ giao diện tiếng Việt.
1. Công nghệ
Thành phần
Công nghệ
Backend
Java 17, Spring Boot 3.3.4 (Web, Data JPA, Security, Validation), Lombok
Bảo mật
JWT HS256 (jjwt 0.12.6): access token 30 phút + refresh token 7 ngày (httpOnly cookie routine_refresh_token); BCrypt cho mật khẩu; @PreAuthorize phân quyền theo role
CSDL
MySQL 8, Flyway migration (19 bảng đúng đặc tả + dữ liệu mẫu)
API docs
Springdoc OpenAPI (Swagger UI tại /swagger-ui.html)
Hóa đơn
OpenPDF — xuất PDF A5 tiếng Việt (font Roboto nhúng)
Frontend
ReactJS 18 (Vite), React Router v6, Axios, Recharts, Context API
2. Yêu cầu môi trường
JDK 17+
Maven 3.9+ (đã kèm sẵn trong tools/apache-maven-3.9.9/ của repo)
Node.js 18+ & npm
MySQL/MariaDB đang chạy ở 10.216.1.218:3306, user sanrockk / mật khẩu 1 (có thể đổi bằng biến môi trường, xem mục cấu hình)
Mở http://localhost:5173. Vite đã cấu hình proxy /api → http://localhost:8080 nên không cần CORS thủ công khi dev.
Build production: npm run build (kết quả ở frontend/dist/).
5. Triển khai bằng Docker & Docker Compose (Server Production)
Hệ thống đã được đóng gói toàn diện với Docker và tích hợp GitHub Actions CI/CD tự động build và xuất bản Docker Images lên GitHub Packages (GHCR - GitHub Container Registry):
Mở http://localhost:5173. Vite đã cấu hình proxy /api → http://localhost:8080 nên không cần CORS thủ công khi dev.
Build production: npm run build (kết quả ở frontend/dist/).
5. Triển khai bằng Docker & Docker Compose (Server Production)
Hệ thống đã được đóng gói toàn diện với Docker và tích hợp GitHub Actions CI/CD tự động build và xuất bản Docker Images lên GitHub Packages (GHCR - GitHub Container Registry):