Laptop Shop là một ứng dụng web mô phỏng hệ thống bán hàng Macbook trực tuyến, xây dựng trên nền tảng Spring Boot với kiến trúc phân tầng rõ ràng (MVC). Ứng dụng hỗ trợ hai vai trò: Admin (quản trị viên) và Client (người dùng cuối), cung cấp đầy đủ các chức năng quản lý sản phẩm, đơn hàng, người dùng, giỏ hàng, xác thực và phân quyền.
- Đăng ký, đăng nhập, đăng xuất, đổi mật khẩu
- Xem danh sách sản phẩm, chi tiết sản phẩm
- Tìm kiếm, lọc sản phẩm
- Thêm sản phẩm vào giỏ hàng, cập nhật/xóa sản phẩm trong giỏ
- Đặt hàng, xem lịch sử đơn hàng, chi tiết đơn hàng
- Quản lý thông tin cá nhân
- Đăng nhập quản trị
- Quản lý sản phẩm: thêm, sửa, xóa, tìm kiếm, phân loại
- Quản lý đơn hàng: xem, xác nhận, cập nhật trạng thái, xóa đơn hàng
- Quản lý người dùng: xem danh sách, phân quyền, khóa/mở tài khoản
- Dashboard thống kê tổng quan (số lượng sản phẩm, đơn hàng, doanh thu, người dùng...)
src/
└── main/
├── java/com/example/demo/
│ ├── controller/
│ │ ├── client/ # Controller cho người dùng cuối
│ │ └── admin/ # Controller cho quản trị viên
│ ├── service/
│ │ ├── ProductService.java
│ │ ├── OrderService.java
│ │ ├── UserService.java
│ │ ├── UploadService.java
│ │ └── ...
│ ├── repository/
│ │ ├── ProductRepository.java
│ │ ├── OrderRepository.java
│ │ └── ...
│ ├── domain/
│ │ ├── Product.java
│ │ ├── User.java
│ │ ├── Order.java
│ │ ├── Cart.java
│ │ └── ...
│ ├── config/
│ │ ├── SecurityConfiguration.java
│ │ ├── WebMvcConfig.java
│ │ └── CustomSuccessHandler.java
│ └── LaptopShopApplication.java
├── resources/
│ └── application.properties
└── webapp/WEB-INF/view/
├── client/ # Giao diện người dùng
└── admin/ # Giao diện quản trị
- Java 17
- Spring Boot 3.x
- Spring Data JPA (ORM)
- Spring Security (Xác thực, phân quyền)
- MySQL (Cơ sở dữ liệu)
- JSP (Giao diện, Tomcat Jasper)
- Maven (Quản lý phụ thuộc)
- Jakarta Servlet/JSTL (Hỗ trợ JSP)
- Spring Session JDBC (Quản lý session)
- Cài đặt Java 17 trở lên
- Cài đặt MySQL (hoặc MariaDB)
- Cài đặt Maven (hoặc sử dụng script
mvnwđi kèm)
Tạo database tên laptopshop trong MySQL:
CREATE DATABASE laptopshop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;Chỉnh sửa file src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/laptopshop
spring.datasource.username=YOUR_USERNAME
spring.datasource.password=YOUR_PASSWORD# Build project
./mvnw clean install
# Chạy ứng dụng
./mvnw spring-boot:runTruy cập ứng dụng tại: http://localhost:8080
Lưu ý: Bạn nên tự tạo tài khoản hoặc seed dữ liệu mẫu cho lần đầu chạy.
- Admin:
- Username:
admin - Password:
admin
- Username:
- User:
- Username:
user - Password:
user
- Username:
controller/client/: Xử lý các request từ phía người dùng cuối (trang chủ, sản phẩm, giỏ hàng, đặt hàng, đăng nhập/đăng ký...)HomePageController.javaItemController.java
controller/admin/: Xử lý các request quản trị (quản lý sản phẩm, đơn hàng, người dùng, dashboard...)ProductController.javaOrderController.javaUserController.javaDashboardController.java
- Xử lý logic nghiệp vụ cho từng chức năng:
ProductService.java: Quản lý sản phẩmOrderService.java: Quản lý đơn hàngUserService.java: Quản lý người dùngUploadService.java: Xử lý upload fileCustomUserDetailsService.java: Tích hợp Spring Security
- Giao tiếp với database thông qua Spring Data JPA:
ProductRepository.javaOrderRepository.javaUserRepository.javaCartRepository.javaRoleRepository.java- ...
- Định nghĩa các bảng dữ liệu:
Product.java: Sản phẩmUser.java: Người dùngOrder.java: Đơn hàngCart.java,CartDetail.java: Giỏ hàngOrderDetail.java: Chi tiết đơn hàngRole.java: Vai trò người dùng
- Cấu hình bảo mật, session, MVC:
SecurityConfiguration.java: Cấu hình Spring Security, phân quyền, login/logoutWebMvcConfig.java: Cấu hình view resolver, static resourceCustomSuccessHandler.java: Xử lý chuyển hướng sau đăng nhập
- Giao diện chia thành hai phần:
client/: Trang chủ, sản phẩm, giỏ hàng, đăng nhập/đăng ký, lịch sử đơn hàng...admin/: Dashboard, quản lý sản phẩm, đơn hàng, người dùng...
- Thêm entity mới: Tạo class trong
domain/, repository, service, controller và view tương ứng. - Thay đổi giao diện: Sửa file JSP trong
webapp/WEB-INF/view/clienthoặcadmin. - Thay đổi cấu hình bảo mật: Sửa trong
config/SecurityConfiguration.java. - Thay đổi cấu hình database: Sửa trong
application.properties.
- Spring Boot Documentation
- Spring Security Documentation
- Spring Data JPA Documentation
- Maven Documentation
README này được sinh tự động dựa trên mã nguồn và cấu trúc project. Bạn nên bổ sung thêm hình ảnh, hướng dẫn chi tiết, hoặc các lưu ý đặc biệt nếu cần thiết!