Skip to content

Nemmer772004/web-clone

Repository files navigation

Web Clone Nike

Ứng dụng được xây dựng với Next.js. Dữ liệu sản phẩm hiện được lưu trong MongoDB thay vì nằm cứng trong mã nguồn.

Yêu cầu

  • Node.js 18+
  • Docker Desktop (để chạy MongoDB)

Thiết lập môi trường

  1. Sao chép tệp .env.example thành .env và cập nhật các biến cần thiết: bash cp .env.example .env
  2. Điền GEMINI_API_KEY (nếu dùng tính năng AI) và kiểm tra lại MONGODB_URI, MONGODB_DB.

Khởi tạo MongoDB bằng Docker Desktop

Chạy các lệnh sau trong terminal của Docker Desktop hoặc bất kỳ terminal nào có Docker CLI:

# Tạo volume để lưu dữ liệu lâu dài
docker volume create web-clone-nike-mongo-data

# Khởi chạy container MongoDB mới
docker run -d \
  --name web-clone-nike-mongo \
  -p 27017:27017 \
  -v web-clone-nike-mongo-data:/data/db \
  mongo:7

Sau khi container chạy, cấu hình MONGODB_URI=mongodb://localhost:27017/Web-clone-nike sẽ kết nối tới cơ sở dữ liệu Web-clone-nike bên trong container.

Cài đặt phụ thuộc & seed dữ liệu

npm install
npm run seed:images   # seed bộ ảnh placeholder
npm run seed:db       # seed sản phẩm mẫu

Các lệnh seed sẽ tự động chèn (hoặc cập nhật) dữ liệu mẫu vào MongoDB.

Sau khi người dùng đăng nhập, thêm sản phẩm vào giỏ và thanh toán, thông tin đơn hàng sẽ được gửi lên API /api/orders và lưu vào collection orders trong MongoDB.

Chạy dự án

npm run dev

Ứng dụng giờ sẽ đọc dữ liệu sản phẩm, danh mục, tìm kiếm… trực tiếp từ MongoDB thông qua các API route mới.

Chạy bằng Docker Compose

docker compose build
docker compose up

Truy cập http://localhost:3000 để xem ứng dụng. Dịch vụ web sẽ tự động seed sản phẩm và ảnh placeholder mỗi lần khởi động, còn MongoDB được chạy trong container riêng (mongo) cùng volume mongo-data để lưu dữ liệu lâu dài.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages