Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin (chuyên ngành Công nghệ Phần mềm) với đề tài "Xây dựng hệ thống website kinh doanh thời trang – Duck Shop" được thực hiện bởi sinh viên Chau Chhin Hua và Lê Văn Anh Đức, dưới sự hướng dẫn của ThS. Trương Thị Khánh Dịp tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khóa 2020 – 2024, hoàn thành tháng 7 năm 2024, mã số tài liệu SKL013474).

Bối cảnh thực tiễn của đề tài xuất phát từ sự phát triển mạnh mẽ của công nghệ thông tin và mạng Internet, thúc đẩy thương mại điện tử trở thành phương thức mua bán và quảng bá sản phẩm nhanh chóng, hiệu quả với chi phí tối ưu so với các hình thức truyền thống như truyền hình hay quảng cáo đại chúng. Đi đôi với sự phát triển kinh tế – xã hội, nhu cầu tiêu dùng và làm đẹp của khách hàng ngày càng gia tăng. Việc mua sắm trực tuyến cho phép người tiêu dùng tiếp cận thông tin chi tiết về sản phẩm thời trang và tiến hành đặt mua nhanh gọn chỉ bằng các thao tác trực tuyến mà không cần đến trực tiếp cửa hàng. Xuất phát từ thực tế đó, đề tài hướng đến việc xây dựng một nền tảng thương mại điện tử chuyên nghiệp phục vụ khách hàng trên toàn quốc và hỗ trợ công tác quản trị kinh doanh cho thương hiệu Duck Shop.

Mục tiêu và nhiệm vụ nghiên cứu được văn bản xác định cụ thể như sau:

  1. Nhiệm vụ 1: Tìm hiểu và làm việc với các công nghệ phát triển phần mềm hiện đại, cụ thể là Spring Boot và ReactJS.
  2. Nhiệm vụ 2: Xây dựng hoàn chỉnh hệ thống website kinh doanh các sản phẩm thời trang ứng dụng các công nghệ đã nghiên cứu.
  3. Nhiệm vụ 3: Nắm bắt và làm chủ quy trình phát triển phần mềm, cách thức phân tích và triển khai các chức năng nghiệp vụ của hệ thống thương mại điện tử.
  4. Nhiệm vụ 4: Rèn luyện kỹ năng làm việc nhóm, kỹ năng giải quyết vấn đề kỹ thuật và quản lý dự án phần mềm theo tiến độ.

Đối tượng và phạm vi nghiên cứu của đề tài bao gồm:

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ bán lẻ thời trang trực tuyến (quản lý người dùng, duyệt danh mục, giỏ hàng, đặt hàng, xử lý thanh toán, vận chuyển, đánh giá); các công nghệ lập trình và lưu trữ gồm Java Spring Boot, RESTful API, ReactJS, TypeScript, hệ quản trị cơ sở dữ liệu quan hệ MySQL, cơ sở dữ liệu bộ nhớ đệm Redis, cơ chế xác thực JSON Web Token (JWT), lưu trữ tệp tin đa phương tiện Cloudinary, công cụ đóng gói Docker và dịch vụ điện toán đám mây Amazon Web Services (AWS EC2, S3, RDS).
  • Phạm vi nghiên cứu:
    • Nội dung: Tập trung vào ba phân hệ cốt lõi gồm Quản lý người dùng (xác thực, phân quyền, hồ sơ cá nhân); Trải nghiệm mua hàng (tìm kiếm, lọc theo tiêu chí, giỏ hàng, thanh toán qua VNPay, theo dõi vận đơn qua Giao Hàng Nhanh - GHN.vn, phản hồi/đánh giá sản phẩm); và Phân hệ quản trị - Thống kê dữ liệu (quản lý sản phẩm, danh mục, đơn hàng, người dùng, báo cáo biểu đồ doanh thu và tăng trưởng).
    • Thời gian thực hiện: Từ ngày 04/03/2024 đến ngày 15/06/2024.

Cơ sở lý thuyết và phương pháp

Văn bản khóa luận thiết lập nền tảng nghiên cứu dựa trên các khái niệm, mô hình kiến trúc và công nghệ phát triển ứng dụng web tiêu chuẩn:

  • Khung lý thuyết và mô hình kiến trúc:

    • Khái niệm nền tảng về Thương mại điện tử (E-commerce), phân định vai trò giữa Frontend (giao diện tương tác người dùng) và Backend (xử lý logic nghiệp vụ và dữ liệu).
    • Mô hình kiến trúc phần mềm Client – Server tách biệt độc lập giữa tầng hiển thị và tầng dịch vụ.
    • Phân tích kiến trúc Đơn khối (Monolithic) và kiến trúc Vi dịch vụ (Microservices).
    • Mô hình dữ liệu quan hệ (SQL) bảo đảm tính toàn vẹn và giao dịch dữ liệu, kết hợp mô hình dữ liệu phi quan hệ (NoSQL) phục vụ lưu trữ tài liệu (MongoDB) và lưu trữ dạng khóa – giá trị in-memory (Redis).
    • Tiêu chuẩn an toàn và bảo mật web: Giao thức mã hóa truyền tải SSL/TLS, mã hóa dữ liệu nhạy cảm, cơ chế xác thực và ủy quyền bằng JSON Web Token (JWT - chuẩn RFC 7519), và xác thực mật khẩu một lần (OTP).
  • Phương pháp nghiên cứu:

    • Phương pháp phân tích - so sánh hiện trạng: Khảo sát, đối sánh giao diện, tính năng, bộ lọc, giỏ hàng và trải nghiệm người dùng của hai website thương mại điện tử thời trang lớn là Adidas và Nike để xác định yêu cầu bài toán.
    • Phương pháp phân tích và thiết kế hệ thống theo hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ ca sử dụng (Use Case Diagram), bảng đặc tả 29 use case, 28 lược đồ tuần tự (Sequence Diagram), và biểu đồ quan hệ thực thể (ERD).
    • Phương pháp thiết kế và chuẩn hóa cơ sở dữ liệu: Xây dựng cấu trúc quan hệ dữ liệu gồm 15 bảng nhằm lưu trữ người dùng, quyền hạn, địa chỉ, danh mục, sản phẩm, biến thể (SKU, Option, OptionValue), đơn hàng, giỏ hàng và đánh giá.
    • Phương pháp kiểm thử phần mềm: Thiết lập các ca kiểm thử chức năng (test cases) theo từng phân hệ để xác minh tính ổn định, tính đúng đắn của logic nghiệp vụ và khả năng liên kết với các dịch vụ bên thứ ba.
  • Nguồn dữ liệu: Dữ liệu cấu trúc về danh mục, mặt hàng, biến thể thời trang, thông tin người dùng và lịch sử giao dịch được mô hình hóa và khởi tạo trong cơ sở dữ liệu MySQL; hình ảnh sản phẩm được lưu trữ trên nền tảng đám mây Cloudinary; dữ liệu trạng thái vận đơn và thanh toán được truy xuất qua cổng API của GHN.vn và VNPay.vn.


Nội dung chính theo từng chương

Khóa luận được kết cấu thành 7 chương chính với các nội dung chi tiết:

Chương 1: Mở đầu

Chương này trình bày lý do lựa chọn đề tài, mục tiêu tổng quát và các mục tiêu cụ thể của dự án website Duck Shop. Tác giả xác định rõ đối tượng, phạm vi nghiên cứu, cùng ý nghĩa khoa học và thực tiễn của đề tài trong việc ứng dụng các công nghệ phần mềm mới (ReactJS, TypeScript, Spring Boot, Docker, Redis, AWS) vào việc giải quyết bài toán kinh doanh thời trang trực tuyến.

Chương 2: Cơ sở lý thuyết

Nội dung chương 2 hệ thống hóa các kiến thức nền tảng về thương mại điện tử và mô hình Client - Server. Tác giả phân tích các ngôn ngữ và công nghệ xây dựng giao diện (HTML, CSS, JavaScript, ReactJS, TypeScript), nền tảng backend (Java Spring Boot, Node.js), hệ quản trị cơ sở dữ liệu quan hệ MySQL, cơ sở dữ liệu NoSQL (MongoDB, Redis), các tiêu chuẩn bảo mật (SSL/TLS, JWT, mã hóa thông tin, xác thực phân quyền) và công cụ đóng gói phần mềm Docker.

Chương 3: Khảo sát hiện trạng và xác định yêu cầu

Chương 3 tiến hành khảo sát thực tế trên hai hệ thống website bán hàng thời trang nổi tiếng là Adidas và Nike, phân tích ưu điểm và nhược điểm của từng hệ thống để rút ra bài học thiết kế cho Duck Shop.

Tiêu chí khảo sát Hệ thống Adidas Hệ thống Nike
Ưu điểm Giao diện đồng nhất màu sắc; tìm kiếm và lịch sử tìm kiếm hiệu quả; bộ lọc đa dạng; thông tin và hình ảnh sản phẩm đầy đủ; cho phép đánh giá, nhận xét; nhiều hình thức thanh toán; hỗ trợ Responsive. Thiết kế UI/UX thân thiện, đẹp, dễ dùng; tìm kiếm và lọc sản phẩm hiệu quả; thông tin và hình ảnh chi tiết; hỗ trợ đánh giá, nhận xét; đa dạng phương thức thanh toán; hỗ trợ Responsive.
Nhược điểm Giao diện còn thô, phông chữ chưa tối ưu; quá nhiều danh mục; tốc độ tải trang trung bình do phải tải lại trang khi chuyển hướng; quá nhiều sản phẩm trên một trang phân trang; chưa có hỗ trợ chat trực tuyến. Tốc độ tải trang trung bình (chuyển trang phải tải lại); quá nhiều danh mục sản phẩm; không hỗ trợ phân trang sản phẩm; chưa có tính năng hỗ trợ chat trực tuyến.

Từ khảo sát hiện trạng, tác giả xác định bài toán kỹ thuật cho Duck Shop: tối ưu hóa trải nghiệm tải trang, giao diện trực quan, hạn chế gửi email làm phiền (chỉ gửi khi xác thực OTP hoặc đổi mật khẩu), không thu thập thừa thãi thông tin cá nhân. Tác giả phân loại chi tiết các yêu cầu chức năng (cho Khách, Người mua, Quản trị viên) và yêu cầu phi chức năng (giao diện Responsive, tốc độ xử lý nhanh, bảo mật cơ sở dữ liệu).

Chương 4: Phân tích và thiết kế hệ thống

Chương 4 là phần nội dung trọng tâm của khóa luận, bao gồm:

  • Phân tích tác nhân (Actors): Xác định 3 nhóm tác nhân chính gồm Khách (Guest), Người mua (Customer), và Quản trị viên (Admin).
  • Đặc tả ca sử dụng (Use Cases): Xây dựng danh sách 29 use case chính bao gồm Đăng ký (UC_001), Đăng nhập (UC_002), Đăng xuất (UC_003), Khôi phục mật khẩu (UC_004), Tìm kiếm/xem sản phẩm (UC_005), Đổi mật khẩu (UC_006), Chuyển đổi giao diện sáng/tối (UC_007), Chuyển đổi ngôn ngữ EN-VI (UC_008), Quản lý thông tin cá nhân, Quản lý địa chỉ nhận hàng, Quản lý đơn hàng cá nhân, Quản lý danh sách yêu thích, Quản lý giỏ hàng, Mua hàng, Thanh toán lại đơn hàng, Hủy đơn hàng, Đánh giá sản phẩm, Quản lý người dùng, Quản lý danh mục, Quản lý sản phẩm, Quản lý giao dịch VNPay, Quản lý tình trạng giao hàng GHN, và 4 use case thống kê đa chiều. Mỗi use case đều có bảng đặc tả điều kiện tiên quyết, luồng sự kiện chính, luồng rẽ nhánh và ngoại lệ.
  • Lược đồ tuần tự (Sequence Diagram): Thiết kế 28 lược đồ tuần tự mô tả chi tiết tương tác giữa giao diện người dùng, bộ điều khiển (Controller), tầng nghiệp vụ (Service), tầng truy xuất dữ liệu (Repository) và cơ sở dữ liệu.
  • Thiết kế cơ sở dữ liệu (ERD): Chuẩn hóa cấu trúc 15 bảng quan hệ: User, Role, Address, Category, Product, Option, OptionValue, ProductSku, ProductSku_OptionValue, UserFollowProduct, Order, OrderItem, Review, Cart, CartItem.
  • Thiết kế giao diện: Mô tả chi tiết wireframe và layout của hệ thống trang người dùng (trang chủ 4 khung, danh sách sản phẩm, chi tiết sản phẩm 4 khung, giỏ hàng ajax, trang thanh toán, hồ sơ cá nhân, đổi mật khẩu) và hệ thống trang quản trị admin (dashboard thống kê, quản lý sản phẩm, danh mục, đơn hàng, chi tiết giao vận GHN).

Chương 5: Kiến trúc hệ thống và các công nghệ sử dụng

Chương này mô tả chi tiết kiến trúc phân tầng Client - Server. Frontend được xây dựng bằng ReactJS và TypeScript, giao tiếp với Backend Spring Boot qua chuẩn RESTful API. Hệ thống áp dụng Redis làm bộ đệm in-memory nhằm giảm tải cho cơ sở dữ liệu MySQL, lưu trữ hình ảnh trên dịch vụ Cloudinary, và đóng gói toàn bộ hệ thống bằng Docker để triển khai trên máy chủ đám mây AWS EC2.

Chương 6: Cài đặt và kiểm thử

Trình bày môi trường cài đặt phần mềm, cấu hình dịch vụ, thiết lập kết nối cổng thanh toán VNPay và đơn vị vận chuyển GHN. Nhóm tác giả xây dựng kế hoạch kiểm thử chức năng, thiết lập các tài khoản kiểm thử và tổng hợp bảng kết quả kiểm thử (Bảng 6.3) cho toàn bộ 29 chức năng của hệ thống, bảo đảm các luồng nghiệp vụ hoạt động chính xác và an toàn.

Chương 7: Kết quả đạt được và hướng phát triển

Chương cuối tổng kết các kết quả đạt được về mặt kỹ thuật và giá trị thực tiễn của sản phẩm Duck Shop, tự đánh giá về quá trình phát triển năng lực của nhóm sinh viên, đồng thời chỉ ra các điểm hạn chế và đề xuất hướng phát triển hệ thống trong tương lai.


Thiết kế và triển khai

Hệ thống Duck Shop được thiết kế và triển khai theo mô hình kiến trúc phần mềm phân tầng hiện đại, đáp ứng các tiêu chuẩn kỹ thuật của một ứng dụng thương mại điện tử:

1. Kiến trúc hệ thống

Hệ thống áp dụng mô hình Client – Server tách biệt hoàn toàn (Decoupled Architecture):

  • Tầng Giao diện (Client/Frontend): Ứng dụng Single Page Application (SPA) phát triển bằng ReactJS và TypeScript, đảm nhận việc định tuyến (routing), render giao diện động, xử lý tương tác phía người dùng, hỗ trợ chế độ màn hình Sáng/Tối (Dark/Light mode) và chuyển đổi ngôn ngữ Anh - Việt (EN-VI).
  • Tầng Dịch vụ (Server/Backend): Xây dựng trên nền tảng Java Spring Boot theo mô hình MVC, cung cấp hệ thống RESTful API phục vụ xác thực người dùng, xử lý logic giỏ hàng, tính toán đơn hàng, phân quyền dữ liệu và giao tiếp với các dịch vụ ngoài.
  • Tầng Dữ liệu và Lưu trữ:
    • Cơ sở dữ liệu chính: MySQL lưu trữ dữ liệu quan hệ có cấu trúc với tính toàn vẹn cao.
    • Bộ nhớ đệm (Caching): Redis lưu trữ dữ liệu truy cập thường xuyên trong RAM nhằm tối ưu hóa tốc độ phản hồi của API.
    • Lưu trữ đa phương tiện: Nền tảng Cloudinary quản lý tải lên, tối ưu hóa và phân phối hình ảnh/video sản phẩm.
       +-------------------------------------------------------------+
       |                  CLIENT TIER (Frontend)                     |
       |      ReactJS + TypeScript (SPA, Dark/Light Mode, EN-VI)     |
       +------------------------------+------------------------------+
                                      |
                           RESTful APIs / JSON / JWT
                                      |
       +------------------------------v------------------------------+
       |                  SERVER TIER (Backend)                      |
       |      Java Spring Boot (Spring Security, Spring Mail)        |
       +--------------+---------------+--------------+---------------+
                      |               |              |
         +------------v---+   +-------v-------+   +--v------------+
         |     DATA TIER  |   | MEDIA STORAGE |   |  THIRD-PARTY  |
         | MySQL Database |   |  Cloudinary   |   | VNPay / GHN   |
         |  Redis Cache   |   +---------------+   +---------------+
         +----------------+

2. Thiết kế dữ liệu biến thể thời trang

Để giải quyết đặc thù ngành hàng thời trang với nhiều thuộc tính (kích thước, màu sắc), hệ thống thiết kế mô hình dữ liệu linh hoạt:

  • Bảng Product liên kết với bảng Option (ví dụ: Size, Color) và OptionValue (ví dụ: S, M, L, Đỏ, Đen).
  • Bảng ProductSku đại diện cho một biến thể sản phẩm cụ thể có mã SKU, giá bán, số lượng tồn kho riêng biệt.
  • Bảng liên kết ProductSku_OptionValue thực hiện ghép nối các giá trị thuộc tính để định danh chính xác từng mặt hàng trong đơn hàng và giỏ hàng.

3. Tích hợp dịch vụ bên thứ ba và Triển khai hạ tầng

  • Cổng thanh toán: Tích hợp API của VNPay (VNPay.vn) hỗ trợ thanh toán trực tuyến an toàn, quản lý giao dịch và cập nhật trạng thái đơn hàng tự động.
  • Đơn vị giao vận: Tích hợp API Giao Hàng Nhanh (GHN.vn) để tự động tính phí vận chuyển theo địa chỉ, tạo vận đơn và quản lý tình trạng giao hàng trực tiếp trên giao diện quản trị.
  • Đóng gói và Hạ tầng: Đóng gói mã nguồn các phân hệ thành các Docker Container độc lập, cấu hình mạng nội bộ và triển khai thực tế trên máy chủ đám mây AWS EC2.

Kết quả và đóng góp

1. Kết quả chính đạt được

Dự án đã hoàn thành toàn bộ các mục tiêu đề ra theo kế hoạch 15 tuần thực hiện (từ 04/03/2024 đến 15/06/2024):

  • Xây dựng hoàn chỉnh website thương mại điện tử Duck Shop với đầy đủ 29 ca sử dụng được kiểm thử thành công.
  • Phân hệ người dùng hỗ trợ toàn diện quy trình mua sắm: tìm kiếm theo từ khóa/danh mục, lọc đa tiêu chí, quản lý giỏ hàng ajax tức thì, đặt hàng, thanh toán qua VNPay, theo dõi trạng thái vận chuyển GHN, yêu thích sản phẩm, quản lý sổ địa chỉ, xem lại lịch sử mua sắm và gửi đánh giá/nhận xét sản phẩm.
  • Phân hệ quản trị (Admin Dashboard) mạnh mẽ: quản lý sản phẩm (thêm, sửa, xóa, ẩn/hiện, nhập thêm số lượng kho), quản lý danh mục phân cấp, quản lý tài khoản người dùng (khóa/mở khóa tài khoản), quản lý đơn hàng chi tiết, theo dõi tình trạng giao dịch thanh toán và đơn giao hàng GHN.
  • Báo cáo thống kê trực quan: Cung cấp biểu đồ cột, biểu đồ đường và biểu đồ tròn hiển thị doanh thu, lượng đơn hàng, số người dùng mới đăng ký và danh sách sản phẩm bán chạy theo các mốc thời gian (giờ, ngày, tháng, năm).
  • Đóng gói và triển khai thành công hệ thống lên hạ tầng đám mây AWS EC2 thông qua Docker, đảm bảo hệ thống vận hành ổn định trong quá trình thử nghiệm.

2. Giải pháp và kiến nghị của tác giả

  • Tối ưu hóa trải nghiệm gửi email: Đề xuất chính sách hạn chế gửi thư làm phiền khách hàng, chỉ sử dụng dịch vụ Spring Mail để gửi mã xác thực OTP khi đăng ký/đăng nhập hoặc gửi liên kết đặt lại mật khẩu khi quên mật khẩu.
  • Cải thiện tính phản hồi của giao diện: Áp dụng công nghệ ReactJS kết hợp AJAX cho các tác vụ giỏ hàng và danh mục, loại bỏ hoàn toàn hiện tượng tải lại toàn bộ trang (full-page reload) vốn là nhược điểm tồn tại ở các website khảo sát (Adidas, Nike).
  • Ứng dụng bộ đệm Redis: Đề xuất lưu trữ dữ liệu truy vấn lặp lại vào bộ nhớ đệm Redis để giảm áp lực đọc từ cơ sở dữ liệu quan hệ MySQL.

3. Đóng góp của đề tài

Theo nhận xét chính thức từ Giáo viên hướng dẫn (ThS. Trương Thị Khánh Dịp), đề tài có những đóng góp kỹ thuật rõ ràng:

  • Trang web hoạt động ổn định và chính xác, không xảy ra lỗi nghiêm trọng trong quá trình vận hành.
  • Đáp ứng đầy đủ các tính năng nghiệp vụ của một trang thương mại điện tử thực tế.
  • Áp dụng mô hình phát triển phần mềm tiên tiến: Kiến trúc Client – Server phân tách rõ ràng giữa Frontend và Backend, giúp hệ thống dễ dàng bảo trì, phát triển và mở rộng.
  • Ứng dụng quy trình đóng gói và triển khai phần mềm hiện đại bằng Docker trên nền tảng điện toán đám mây AWS EC2.
  • Giao diện thân thiện, dễ sử dụng, hỗ trợ giao diện sáng/tối và đa ngôn ngữ.
  • Áp dụng cơ chế xác thực JSON Web Token (JWT) và mã hóa mật khẩu, nâng cao tính bảo mật cho hệ thống.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế

Căn cứ vào đánh giá của Giáo viên hướng dẫn và phần tự đánh giá của nhóm tác giả trong văn bản khóa luận, hệ thống vẫn còn một số điểm hạn chế kỹ thuật:

  • Hệ thống chưa được kiểm thử và tối ưu hóa để đáp ứng cho quy mô lượng người dùng đồng thời lớn (high-concurrency scale).
  • Tốc độ xử lý của hệ thống chưa đạt mức tối ưu tuyệt đối ở một số tác vụ phức tạp.
  • Chưa tích hợp các công cụ chuyên sâu phục vụ hoạt động marketing tự động và phân tích dữ liệu hành vi người dùng nâng cao.
  • Chưa có các tính năng mang tính đột phá công nghệ (như chatbot AI tư vấn tự động hoặc hệ thống gợi ý sản phẩm thông minh dựa trên học máy).

2. Hướng phát triển tiếp

Nhóm tác giả xác định các định hướng hoàn thiện hệ thống trong giai đoạn tiếp theo:

  • Tiếp tục tối ưu hóa hiệu năng mã nguồn và cấu trúc truy vấn dữ liệu, mở rộng kiến trúc để chịu tải lượng người dùng lớn hơn.
  • Nghiên cứu và tích hợp các công cụ phân tích dữ liệu kinh doanh, công cụ hỗ trợ chiến dịch marketing và tự động hóa chăm sóc khách hàng.
  • Bổ sung tính năng trò chuyện trực tiếp (Live Chat) giữa khách hàng và bộ phận quản trị viên/hỗ trợ kỹ thuật ngay trên website.
  • Phát triển thêm các thuật toán gợi ý sản phẩm dựa trên lịch sử xem hàng và sở thích của từng người dùng.

Giá trị tham khảo

Bản khóa luận tốt nghiệp này mang lại giá trị tham khảo học thuật và ứng dụng thực tiễn cao:

  • Đối tượng hưởng lợi: Sinh viên chuyên ngành Công nghệ Phần mềm, Công nghệ Thông tin, Hệ thống Thông tin đang thực hiện đồ án tốt nghiệp, đồ án môn học hoặc tiểu luận chuyên ngành liên quan đến xây dựng ứng dụng web và hệ thống thương mại điện tử.
  • Nội dung có giá trị tham khảo tiêu biểu:
    • Tài liệu phân tích và đặc tả yêu cầu: Cung cấp mẫu bảng đặc tả 29 use case chuẩn mực, phân định rõ ràng quyền hạn giữa Guest, Customer và Admin.
    • Mô hình thiết kế hướng đối tượng: 28 biểu đồ tuần tự (Sequence Diagram) chi tiết cho từng nghiệp vụ bán lẻ trực tuyến.
    • Thiết kế cơ sở dữ liệu quan hệ cho thời trang: Cấu trúc 15 bảng chuẩn hóa, đặc biệt là giải pháp thiết kế phân cấp sản phẩm đa thuộc tính thông qua các thực thể Product, Option, OptionValue và ProductSku.
    • Mô hình kiến trúc và công nghệ hiện đại: Cách thức kết nối giữa ReactJS, TypeScript với Spring Boot REST API, cơ chế bảo mật JWT, giải pháp caching với Redis, tích hợp cổng thanh toán VNPay, đơn vị vận chuyển GHN và quy trình đóng gói triển khai trên Docker/AWS EC2.

Câu hỏi thường gặp

1. Hệ thống Duck Shop sử dụng kiến trúc phần mềm và tech stack nào để phát triển?
Hệ thống sử dụng mô hình kiến trúc Client – Server tách biệt độc lập: Frontend phát triển bằng ReactJS, TypeScript; Backend xây dựng bằng Java Spring Boot cung cấp RESTful API; cơ sở dữ liệu chính là MySQL kết hợp bộ đệm in-memory Redis; quản lý tệp tin qua Cloudinary; đóng gói phần mềm bằng Docker và triển khai trên máy chủ đám mây AWS EC2.

2. Cơ sở dữ liệu của hệ thống xử lý các biến thể sản phẩm thời trang (size, màu sắc) như thế nào?
Hệ thống không lưu cứng biến thể trong bảng sản phẩm mà tách thành các bảng quan hệ: bảng Option (lưu tên thuộc tính như Kích cỡ, Màu sắc), bảng OptionValue (lưu giá trị như S, M, L, Đỏ, Đen), bảng ProductSku (đại diện cho biến thể cụ thể kèm giá và số lượng tồn kho), và bảng liên kết ProductSku_OptionValue để ghép nối các giá trị thuộc tính cho từng SKU.

3. Khóa luận đã tích hợp các dịch vụ bên thứ ba nào vào hệ thống?
Khóa luận đã tích hợp thành công hai dịch vụ bên thứ ba chính tại Việt Nam: cổng thanh toán trực tuyến VNPay (VNPay.vn) để xử lý giao dịch an toàn và dịch vụ Giao Hàng Nhanh (GHN.vn) để tính phí ship, tạo vận đơn và quản lý trạng thái giao hàng. Ngoài ra, hệ thống tích hợp Cloudinary để lưu trữ hình ảnh và dịch vụ gửi thư điện tử qua Spring Mail.

4. Những giải pháp nào được nhóm tác giả áp dụng để đảm bảo an toàn và bảo mật hệ thống?
Nhóm tác giả sử dụng cơ chế xác thực và phân quyền bằng JSON Web Token (JWT), mã hóa mật khẩu và các thông tin nhạy cảm của người dùng trong cơ sở dữ liệu, áp dụng xác thực mật khẩu một lần (OTP) khi đăng ký tài khoản, đồng thời hạn chế tối đa việc thu thập thông tin không cần thiết để bảo vệ quyền riêng tư của khách hàng.

5. Giáo viên hướng dẫn đã đưa ra những nhận xét gì về ưu điểm và hạn chế của đồ án?
Giáo viên hướng dẫn đánh giá hệ thống có ưu điểm là vận hành ổn định, không phát sinh lỗi, đáp ứng đầy đủ nghiệp vụ bán hàng, áp dụng mô hình phân tách Frontend/Backend hiện đại, bảo mật JWT tốt và triển khai hoàn chỉnh với Docker trên AWS EC2. Về hạn chế, đồ án chưa đáp ứng được lưu lượng người dùng quy mô lớn, tốc độ chưa được tối ưu triệt để, thiếu công cụ marketing/phân tích dữ liệu chuyên sâu và chưa có tính năng mang tính đột phá.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống website kinh doanh thời trang – Duck Shop" của hai sinh viên Chau Chhin Hua và Lê Văn Anh Đức là một công trình hoàn chỉnh về quy trình phân tích, thiết kế và phát triển ứng dụng thương mại điện tử. Đề tài đã ứng dụng thành công các công nghệ hiện đại gồm Spring Boot, ReactJS, TypeScript, MySQL, Redis, Docker và AWS EC2, đồng thời tích hợp các dịch vụ thực tế như VNPay và Giao Hàng Nhanh. Hệ thống đạt độ hoàn thiện cao về mặt nghiệp vụ bán lẻ thời trang, vận hành ổn định trên môi trường đám mây và là tài liệu tham khảo có giá trị chuyên môn cho sinh viên ngành Công nghệ Thông tin và Kỹ thuật Phần mềm.