Skip to content

Repository files navigation

Goshop

Mục lục

Giới thiệu về đề tài

Tổng quan về đề tài

GoShop là một ứng dụng web thương mại điện tử được xây dựng với mục tiêu mô phỏng toàn diện hoạt động của một cửa hàng kinh doanh sản phẩm nội thất trong môi trường trực tuyến. Ứng dụng hướng đến việc mang lại trải nghiệm mua sắm thuận tiện, trực quan và dễ sử dụng cho người tiêu dùng, đặc biệt trong bối cảnh thương mại điện tử ngày càng phát triển mạnh mẽ và dần thay đổi thói quen mua sắm truyền thống. Thông qua GoShop, khách hàng có thể dễ dàng tiếp cận nhiều loại sản phẩm nội thất khác nhau, từ đó lựa chọn, đặt mua và thanh toán mà không cần trực tiếp đến cửa hàng, giúp tiết kiệm thời gian và công sức.

Công nghệ sử dụng

  • React
  • Vite
  • TypeScript
  • NodeJS
  • Express.js
  • MySQL
  • Prisma
  • Stripe
  • TailwindCSS
  • Firebase

Thiết kế phần mềm

1. Bối cảnh

GoShop Website là một website thương mại điện tử được xây dựng nhằm đáp ứng nhu cầu nhu cầu mua sắm nội thất trực tuyến. Nên GoShop được xây dựng với các kịch bản kinh doanh cơ bản về: Danh mục sản phẩm, giỏ hàng, quy trình thanh toán, hàng tồn kho, quản lý truy cập, kiểm tra thanh toán, xem đơn hàng , quản lý tài khoản và thống kê chi tiết đơn hàng. Với 2 người dùng chính là người mua và người quản trị.

Vai trò chính của người mua hàng là thực hiện các hành động mua sắm trực tuyến. Người mua có thể là khách hàng chưa đăng ký hoặc đã đăng ký tài khoản. Trong đó các hành động chính mà người mua có thể thực hiện là: Duyệt và Tìm Kiếm sản phẩm, Xem chi tiết sản phẩm, quản lý giỏ hàng, thực hiện thanh toán, quản lí thông tin tài khoản, kiểm tra thanh toán.

Vai trò chính của người quản trị là quản lý và vận hành toàn bộ hệ thống GoShop để đảm bảo hoạt động kình doanh trôi chảy và hiệu quả. Trong đó các thao tác chính mà người quản trị có thể thực hiện là: quản lý sản phẩm, quản lý danh mục sản phẩm, quản lý đơn hàng, quản lý tài khoản, thống kê doanh thu.

2. Quy trình nghiệp vụ

Quy trình khám phá sản phẩm

Quy trình mua sản phẩm

Quy trình thanh toán

Quy trình quản lý hệ thống

3. Use Cases

Sơ đồ Use Case tổng thể

Use Case 1: Quản lý sản phẩm

Use Case 2: Quản lý đơn hàng

Use Case 3: Quản lý giỏ hàng

Use Case 4: Quản lý tài khoản

Use Case 5: Quản lý truy cập

Use Case 6: Thanh toán

4. Các mô hình khác

Mô hình ý niệm

Data model

  • Mức khái niệm

  • Mức logic

  • Mức vật lý

5.Thiết kế kiến trúc

Sơ đồ khối

C4 Models

  • C1 - Context

  • C2 - Containers

  • C3 - Components(high-level)

  • C4 - Code

Hướng dẫn cài đặt

Những bước tối thiểu để khởi chạy project cục bộ (mô tả ngắn, dùng PowerShell trên Windows):

  1. Pull/clone về rồi vào thư mục project
git clone <your-repo-url>
cd goshop

Hoặc nếu đã clone trước đó:

git pull origin main
  1. Chỉnh cấu hình
  • Mở docker-compose.yml và điều chỉnh các cấu hình service (port, volume, tên container) cho phù hợp với môi trường của bạn.
  • Chỉnh các file .env (ở backend/, frontend/, frontend-admin/ nếu có): khai báo thông tin Firebase (UID/service account), Stripe keys, Cloudinary, MySQL password, v.v.
  1. Khởi động Docker
docker-compose up --build
  1. Đẩy schema Prisma vào database

Sau khi backend container đã khởi động, chạy:

docker-compose exec backend sh -c "npx prisma db push --accept-data-loss"
  1. Import dữ liệu từ data.sql

File data.sql nằm ở gốc repo (./data.sql). Có hai cách import:

  • Tùy chọn A — dùng shell MySQL trong container (thủ công):
docker-compose exec db sh -c "mysql -uroot -p123123"
# trong mysql prompt:  -- chạy các lệnh sau
USE goshop;
# rồi copy-n-paste nội dung của file data.sql vào và chạy
  • Tùy chọn B — import trực tiếp từ host (khuyên dùng khi file data.sql ở host):
docker exec -i $(docker-compose ps -q db) mysql -uroot -p123123 goshop < ./data.sql

Lưu ý: nếu container database dùng password khác, thay 123123 bằng mật khẩu tương ứng. Nếu container DB không có file data.sql, dùng Tùy chọn B để gửi file từ host vào DB.

  1. Kiểm tra

Nếu gặp lỗi, kiểm tra logs:

docker-compose logs -f backend
docker-compose logs -f db

Demo

User Demo

User.-.Demo.mp4

Admin Demo

Admin.-.Demo.mp4

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages