[Mã code 99167]

Website Bán Giày Có Tích Hợp Thanh Toán và AI Tư Vấn

  (1 Đánh giá)
  0       2    

Website Bán Giày Có Tích Hợp Thanh Toán và AI Tư Vấn Hỗ trợ COD, VNPAY, PAYOS AI Tư Vấn hỗ trợ openai, gemini, deepseek Có xuất báo cáo docx để nộp đồ án, bài tập lớn Có thiết kế, sơ đồ uml đầy đủ

Danh mục
Thể loại
Ngày đăng
10-7-2026
Loại file
Full code
File download
 .rar [ MB]
CAM KẾT TỪ NGƯỜI BÁN
Hỗ trợ chức năng như mô tả
Hỗ trợ Cài Đặt
Hỗ trợ chuyển sang ngôn ngữ lập trình khác hoặc phát triển theo yêu cầu(có phí thương lượng)


Source code
4

Đánh giá (4)
5/5

Ngày tham gia
6/7/2026

================================================================================
           DANH SÁCH CHỨC NĂNG HỆ THỐNG - NIKESHOP
           Hệ thống bán giày Nike trực tuyến
================================================================================
 
CÔNG NGHỆ SỬ DỤNG:
  - Backend  : Java 17, Spring Boot 3.2.5, Spring Security 6, JWT
  - Frontend : Thymeleaf, Bootstrap 5.3.2, Bootstrap Icons
  - Database : MySQL 8.0 (Hibernate JPA)
  - AI       : OpenAI GPT / Google Gemini / DeepSeek (tuỳ chọn)
  - Deploy   : Docker + Docker Compose
  - Other    : Apache POI (Excel), BCrypt, JJWT
 
================================================================================
PHẦN 1 – CHỨC NĂNG NGƯỜI DÙNG (PUBLIC)
================================================================================
 
1.1 TRANG CHỦ
  [x] Hiển thị banner hero với CTA mua ngay
  [x] Hiển thị mã khuyến mãi công khai đang hoạt động (copy 1 click)
  [x] Hiển thị danh mục sản phẩm (dạng card lưới)
  [x] Hiển thị 8 sản phẩm mới nhất
  [x] Hiển thị 8 sản phẩm bán chạy nhất
  [x] Hiển thị 8 sản phẩm xem nhiều nhất
  [x] Hiển thị 3 bài viết blog mới nhất
  [x] Section "Tại sao chọn NikeShop" (chính hãng, giao nhanh, đổi trả, hỗ trợ)
 
1.2 SẢN PHẨM
  [x] Xem danh sách tất cả sản phẩm (phân trang 12/trang)
  [x] Lọc sản phẩm theo danh mục (radio button sidebar)
  [x] Lọc sản phẩm theo thương hiệu
  [x] Lọc sản phẩm theo khoảng giá (min/max)
  [x] Tìm kiếm theo tên sản phẩm (full-text)
  [x] Sắp xếp: Mới nhất / Giá tăng / Giá giảm / Bán chạy / Xem nhiều
  [x] Hiển thị bộ lọc đang áp dụng dạng badge (có thể xóa từng filter)
  [x] Xem chi tiết sản phẩm:
        - Ảnh gallery với thumbnail (click đổi ảnh chính)
        - Thông tin: tên, thương hiệu, danh mục, giá, lượt xem, lượt bán
        - Hiển thị đánh giá sao trung bình
        - Chọn size (button, disabled + gạch chân nếu hết hàng)
        - Điều chỉnh số lượng (+/-)
        - Thêm vào giỏ hàng (AJAX, không reload trang)
        - Nút "Mua ngay" (thêm vào giỏ + redirect checkout)
        - Mô tả sản phẩm (hỗ trợ HTML content)
        - Ảnh feedback từ khách hàng (section riêng)
        - Đếm tự động lượt xem khi vào trang
 
1.3 GIỎ HÀNG
  [x] Thêm sản phẩm vào giỏ (theo productId + size + quantity)
  [x] Kiểm tra tồn kho trước khi thêm
  [x] Gộp sản phẩm trùng size vào 1 dòng
  [x] Xem giỏ hàng (ảnh, tên, size, giá, tổng phụ)
  [x] Cập nhật số lượng từng sản phẩm
  [x] Xóa từng sản phẩm khỏi giỏ
  [x] Xóa toàn bộ giỏ hàng
  [x] Hiển thị số lượng sản phẩm trên icon giỏ (tự cập nhật qua AJAX)
  [x] Giỏ hàng lưu trong HTTP Session (không cần đăng nhập)
 
1.4 ĐẶT HÀNG & THANH TOÁN
  [x] Trang checkout với thông tin khách hàng
  [x] Tự điền thông tin nếu đã đăng nhập
  [x] Cho phép khách vãng lai đặt hàng (không cần tài khoản)
  [x] Nhập mã khuyến mãi (AJAX validate & tính giảm giá real-time)
  [x] Hiển thị tóm tắt đơn hàng (sản phẩm, tổng, giảm giá, thành tiền)
  [x] Phương thức thanh toán: COD (Cash on Delivery)
  [x] Xác nhận đặt hàng thành công (trang success với orderId)
  [x] Xóa giỏ hàng sau khi đặt thành công
 
1.5 KHUYẾN MÃI
  [x] Nhập mã khuyến mãi khi checkout
  [x] Validate mã: hợp lệ, còn hạn, chưa hết lượt, đủ giá trị đơn tối thiểu
  [x] Tính giảm giá theo % hoặc tiền trực tiếp
  [x] Áp dụng giới hạn giảm tối đa (maxDiscount)
  [x] Tự động tăng usedCount sau khi áp dụng
  [x] Hiển thị các mã công khai trên trang chủ
 
1.6 BLOG / BÀI VIẾT
  [x] Danh sách blog (phân trang 9/trang)
  [x] Layout 2 cột: bài viết chính + sidebar bài mới
  [x] Xem chi tiết bài viết (HTML content)
  [x] Đếm lượt xem tự động
  [x] Bình luận bài viết (cần đăng nhập)
  [x] Hiển thị danh sách bình luận
 
1.7 TÌM KIẾM
  [x] Thanh tìm kiếm trên navbar (desktop + mobile)
  [x] Redirect sang /san-pham?q=keyword
  [x] Tìm theo nhiều tiêu chí kết hợp
 
1.8 CHAT TƯ VẤN AI (tính năng mới)
  [x] Trang tư vấn tại /tu-van
  [x] Giao diện chat với lịch sử hội thoại
  [x] Gợi ý câu hỏi nhanh (8 chips)
  [x] RAG context: sản phẩm từ DB + knowledge tĩnh về giày
  [x] Hỗ trợ 3 AI provider: OpenAI, Google Gemini, DeepSeek
  [x] Hiển thị tên provider đang dùng
  [x] Xóa và bắt đầu hội thoại mới
  [x] Lịch sử hội thoại giữ tối đa 20 lượt (tiết kiệm token)
  [x] Animation typing khi AI đang trả lời
  [x] Nút chat nổi (floating) trên mọi trang
 
================================================================================
PHẦN 2 – CHỨC NĂNG THÀNH VIÊN (ĐĂNG NHẬP)
================================================================================
 
2.1 ĐĂNG KÝ / ĐĂNG NHẬP
  [x] Đăng ký tài khoản (username, password, email, họ tên, SĐT)
  [x] Validate username/email trùng
  [x] Mã hóa mật khẩu BCrypt
  [x] Đăng nhập bằng username + password (Spring Security Form Login)
  [x] Xác thực JWT (cho API endpoints)
  [x] Redirect đúng trang sau đăng nhập
  [x] Đăng xuất (xóa session + cookie)
  [x] Khóa tài khoản: từ chối đăng nhập nếu active = false
 
2.2 QUẢN LÝ TÀI KHOẢN
  [x] Xem thông tin cá nhân (username, email, họ tên, SĐT, địa chỉ, avatar)
  [x] Cập nhật hồ sơ (họ tên, SĐT, địa chỉ, email)
  [x] Upload ảnh đại diện
  [x] Đổi mật khẩu (cần nhập mật khẩu cũ, validate khớp)
 
2.3 ĐÁNH GIÁ & BÌNH LUẬN
  [x] Bình luận sản phẩm (cần đăng nhập)
  [x] Đánh giá sao (1-5) kèm bình luận
  [x] Hiển thị điểm sao trung bình trên trang sản phẩm
  [x] Bình luận bài viết blog (cần đăng nhập)
 
2.4 QUẢN LÝ ĐƠN HÀNG CÁ NHÂN
  [x] Xem danh sách đơn hàng của tôi
  [x] Xem trạng thái từng đơn hàng
  [x] Xem chi tiết sản phẩm trong đơn
  [x] Hủy đơn hàng khi đang ở trạng thái "Chờ lấy hàng" (PENDING)
 
================================================================================
PHẦN 3 – CHỨC NĂNG QUẢN TRỊ (ADMIN)
================================================================================
 
3.1 DASHBOARD
  [x] Thống kê tổng quan:
        - Số sản phẩm, danh mục, thương hiệu
        - Số đơn hàng, người dùng, bài viết
  [x] Thống kê đơn hàng theo trạng thái (5 trạng thái)
  [x] Doanh thu 30 ngày gần đây
  [x] Doanh thu tháng hiện tại
  [x] Biểu đồ doanh số 7 ngày (Chart.js bar chart)
  [x] Top 5 sản phẩm bán chạy nhất
  [x] 5 đơn hàng mới nhất
 
3.2 QUẢN LÝ SẢN PHẨM
  [x] Danh sách sản phẩm (phân trang 15/trang, sort theo ngày tạo)
  [x] Thêm sản phẩm mới (tên, mô tả, giá, danh mục, thương hiệu, ảnh, active)
  [x] Sửa thông tin sản phẩm
  [x] Xóa sản phẩm
  [x] Upload ảnh chính (file upload hoặc URL)
  [x] Quản lý size & số lượng tồn kho (thêm/xóa size động)
  [x] Upload ảnh gallery và feedback riêng biệt
  [x] Xóa từng ảnh sản phẩm
  [x] Ẩn/hiện sản phẩm (active toggle)
  [x] Xuất danh sách sản phẩm ra file Excel (.xlsx)
 
3.3 QUẢN LÝ DANH MỤC
  [x] Danh sách danh mục (phân trang)
  [x] Thêm / sửa / xóa danh mục
  [x] Upload ảnh danh mục (file hoặc URL)
 
3.4 QUẢN LÝ THƯƠNG HIỆU
  [x] Danh sách thương hiệu (phân trang)
  [x] Thêm / sửa / xóa thương hiệu
  [x] Upload logo thương hiệu (file hoặc URL)
 
3.5 QUẢN LÝ KHUYẾN MÃI
  [x] Danh sách mã khuyến mãi (phân trang)
  [x] Thêm mã khuyến mãi với đầy đủ thông tin:
        - Code, tên, loại (% hoặc tiền trực tiếp)
        - Giá trị giảm, đơn hàng tối thiểu, giảm tối đa
        - Số lượt dùng tối đa, ngày bắt đầu, ngày kết thúc
        - Kích hoạt / ẩn / hiện công khai
  [x] Sửa khuyến mãi
  [x] Xóa khuyến mãi
  [x] Hiển thị lượt đã dùng / tổng lượt
 
3.6 QUẢN LÝ ĐƠN HÀNG
  [x] Danh sách tất cả đơn hàng (phân trang, sort mới nhất)
  [x] Lọc đơn hàng theo trạng thái (tab/button filter)
  [x] Xem chi tiết đơn hàng:
        - Thông tin khách hàng (tên, SĐT, email, địa chỉ)
        - Danh sách sản phẩm trong đơn (tên, size, số lượng, giá)
        - Tổng tiền, giảm giá, thành tiền
        - Mã khuyến mãi đã dùng
  [x] Cập nhật trạng thái đơn hàng:
        PENDING → CONFIRMED → SHIPPING → DELIVERED / CANCELLED
  [x] Hiển thị badge màu theo trạng thái
 
3.7 QUẢN LÝ BÀI VIẾT BLOG
  [x] Danh sách blog (phân trang)
  [x] Thêm / sửa bài viết (tiêu đề, tóm tắt, nội dung HTML, tác giả, ảnh)
  [x] Xóa bài viết
  [x] Đặt trạng thái Đăng / Nháp (published toggle)
  [x] Upload ảnh bài viết
 
3.8 QUẢN LÝ HÌNH ẢNH
  [x] Upload nhiều ảnh cùng lúc (multi-file)
  [x] Phân loại ảnh: GALLERY hoặc FEEDBACK
  [x] Xem toàn bộ ảnh đã upload
  [x] Xóa từng ảnh
 
3.9 QUẢN LÝ NGƯỜI DÙNG
  [x] Danh sách người dùng (phân trang)
  [x] Kích hoạt / vô hiệu hóa tài khoản
  [x] Xóa tài khoản
  [x] Reset mật khẩu người dùng (admin đặt lại)
  [x] Phân biệt role USER / ADMIN
 
3.10 CÀI ĐẶT AI CHAT (tính năng mới)
  [x] Chọn AI provider: OpenAI / Google Gemini / DeepSeek
  [x] Nhập API Key cho từng provider
  [x] Chọn model (có gợi ý datalist)
  [x] Cập nhật cài đặt ngay không cần restart server
  [x] Hiển thị trạng thái đã cấu hình / chưa cấu hình
  [x] Link test chat trực tiếp
 
================================================================================
PHẦN 4 – CHỨC NĂNG KỸ THUẬT
================================================================================
 
4.1 BẢO MẬT
  [x] Spring Security 6 với Form Login
  [x] JWT Authentication Filter cho API
  [x] BCrypt password hashing
  [x] CSRF protection (bỏ qua /api/**)
  [x] Role-based access control (USER / ADMIN)
  [x] Session management (tối đa 1 session/user)
  [x] Tự động redirect đăng nhập khi truy cập trang cần auth
 
4.2 FILE & MEDIA
  [x] Upload file ảnh (multipart, tối đa 10MB)
  [x] Lưu file vào thư mục uploads/ (cấu hình qua application.properties)
  [x] Serve file tĩnh qua /uploads/** URL
  [x] Preview ảnh trước khi upload (FileReader JS)
  [x] Xóa file khỏi server khi xóa entity
 
4.3 EXCEL EXPORT
  [x] Xuất danh sách sản phẩm ra file .xlsx (Apache POI)
  [x] Download trực tiếp từ trình duyệt
 
4.4 RAG & AI KNOWLEDGE BASE
  [x] Tự động lấy sản phẩm, danh mục, thương hiệu từ DB làm context
  [x] Knowledge tĩnh về giày: sizing guide, dòng sản phẩm, công nghệ,
      hướng dẫn chăm sóc, chính sách cửa hàng
  [x] Hỗ trợ lịch sử hội thoại (gửi cả history lên API)
  [x] Trim history tối đa 20 tin nhắn để tiết kiệm token
  [x] Hỗ trợ cả 3 format API: OpenAI, DeepSeek (OpenAI-compat), Gemini
 
4.5 INFRASTRUCTURE
  [x] Docker multi-stage build (Maven build + JRE run)
  [x] Docker Compose với MySQL service + health check
  [x] Volume persistent cho MySQL data và uploads
  [x] Environment variable override qua .env file
  [x] Tự tạo database nếu chưa có (createDatabaseIfNotExist)
  [x] Hibernate auto-create/update schema
 
4.6 UX/UI
  [x] Responsive design (mobile-first Bootstrap)
  [x] Toast notifications (thêm giỏ hàng, thành công/lỗi)
  [x] Auto-dismiss alerts (4 giây)
  [x] Scroll to top button
  [x] Floating chat button
  [x] Lazy load cart count (AJAX /gio-hang/so-luong)
  [x] Confirm dialog trước khi xóa
  [x] Admin sidebar toggle trên mobile
  [x] Đồng hồ thời gian thực trên admin topbar
 
================================================================================
PHẦN 5 – CÁC LUỒNG CHÍNH
================================================================================
 
LUỒNG MUA HÀNG:
  Trang chủ → Xem sản phẩm → Chi tiết → Chọn size → Thêm giỏ
  → Giỏ hàng → Checkout → Nhập thông tin → (Áp mã) → Đặt hàng → Thành công
 
LUỒNG ĐĂNG KÝ / ĐĂNG NHẬP:
  Đăng ký → Redirect đăng nhập → Đăng nhập → Trang chủ
 
LUỒNG QUẢN LÝ ĐƠN HÀNG (ADMIN):
  Đơn PENDING → Admin xác nhận → CONFIRMED
  → Admin giao vận → SHIPPING
  → Giao thành công → DELIVERED
  (Có thể hủy ở bất kỳ bước nào → CANCELLED)
 
LUỒNG AI CHAT:
  Khách nhập câu hỏi → POST /api/chat → AiChatService
  → Lấy context từ DB (RAG) → Gọi AI API → Trả lời → Hiển thị
 
LUỒNG ADMIN CÀI ĐẶT AI:
  /admin/ai-cai-dat → Chọn provider → Nhập API key → Lưu
  → AiSettingsService cập nhật in-memory (không restart)
 
================================================================================
THỐNG KÊ HỆ THỐNG
================================================================================
 
  Controllers      : 16 (7 public + 9 admin)
  Services         : 12 (interface + implementation)
  Entities/Tables  : 11
  Repositories     : 11
  HTML Templates   : 29
  DTOs             : 6
  Config classes   : 5
 
  Tổng file Java   : ~70 files
  Tổng file HTML   : 29 files
 
================================================================================
GHI CHÚ
================================================================================
 
  (*) AI Chat cần API key hợp lệ để hoạt động.
      Cài đặt tại: http://localhost:8080/admin/ai-cai-dat
      Hoặc qua biến môi trường trong .env / docker-compose.yml
 
  (*) File .env.example chứa mẫu cấu hình.
      Copy thành .env và điền key trước khi chạy Docker.
 
  (*) Cơ sở dữ liệu được khởi tạo tự động qua Hibernate.
      Tài khoản admin mặc định tạo bởi DataInitializer.java
 
================================================================================
 


XEM THÊM ==> Hướng dẫn cài đặt chi tiết

HÌNH ẢNH DEMO


Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn

Shop Bán Giày,Java Spring with AI,AI Tư vấn


HƯỚNG DẪN CÀI ĐẶT
================================================================================
                                  QUICKSTART
                  Hướng dẫn chạy nhanh project trong 2-5 phút
================================================================================

I. CÁCH NHANH NHẤT (SỬ DỤNG DOCKER)
--------------------------------------------------------------------------------
1. Di chuyển vào thư mục project:
   cd C:\Users\huand\Documents\topcode\shopgiay

2. (Tùy chọn) Tạo file .env từ mẫu để cấu hình AI/payment:
   Copy-Item .env.example .env

3. Build và chạy app + mysql:
   docker compose up -d --build app

4. Mở trình duyệt:
   - http://localhost:8080
   - http://localhost:8080/tu-van

5. Xem log nếu app chưa lên:
   docker compose logs -f app

6. Dừng hệ thống:
   docker compose down


II. CÁCH LOCAL (SỬ DỤNG MAVEN)
--------------------------------------------------------------------------------
1. Đảm bảo đã có MySQL 8 và database "shopgiay".
2. Kiểm tra thông số trong file src/main/resources/application.properties
3. Chạy lệnh:
   mvn spring-boot:run


III. NẾU GẶP LỖI
--------------------------------------------------------------------------------
- "mvn" không tồn tại: cài Maven hoặc dùng Docker.
- Port 8080 bị trùng: tắt app khác đang dùng cổng này.
- Port 3306 bị trùng: tắt MySQL khác hoặc đổi mapping trong docker-compose.yml.



Nguồn: Topcode.vn

BÌNH LUẬN (0)


ĐÁNH GIÁ (1)

ĐIỂM TRUNG BÌNH

5
1 Đánh giá
Code rất tốt (1)
Code tốt (0)
Code rất hay (0)
Code hay (0)
Bình thường (0)
Thành viên
Nội dung đánh giá
00:28 - 10/7/2026
Code rất tốt
Code rất tốt và phù hợp để phát triển
HỖ TRỢ TRỰC TUYẾN