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

Đồ án tốt nghiệp đại học ngành Công nghệ Thông tin (thuộc chương trình Kỹ thuật Phần mềm, Khoa Đào tạo Chất lượng cao - Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) với đề tài "Xây dựng website thương mại điện tử" (tên tiếng Anh: Building an Ecommerce Website, mã số lưu trữ SKL010552) được thực hiện bởi nhóm sinh viên Bùi Thanh Ngọc (MSSV: 18110034), Lê Minh Thắng (MSSV: 18110048) và Châu Kim Toả (MSSV: 18110056), dưới sự hướng dẫn của ThS. Mai Anh Thơ vào tháng 02/2023.

Về bối cảnh thực tiễn, nhóm tác giả nhận định cuộc Cách mạng Công nghiệp 4.0 và đặc biệt là giai đoạn sau đại dịch COVID-19 (từ năm 2021) đã thúc đẩy thói quen mua sắm trực tuyến phát triển mạnh mẽ tại Việt Nam, trở thành phương thức tiêu dùng thiết yếu của thế hệ trẻ. Hình thức mua sắm truyền thống bộc lộ nhiều hạn chế về mặt thời gian và công sức: khách hàng phải di chuyển đến cửa hàng, chờ đợi xếp hàng thanh toán bằng tiền mặt, trong khi các chủ cửa hàng gặp khó khăn trong việc quản lý sổ sách, lưu trữ dữ liệu giấy tờ thủ công kém hiệu quả. Để đáp ứng nhu cầu này, việc phát triển ứng dụng web thương mại điện tử chuyên biệt mang tên "ONLINE SHOPPIE" được đặt ra nhằm tin học hóa toàn bộ quy trình mua bán, quản lý hàng hóa và kết nối giữa người mua, người bán và quản trị viên.

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

  1. Xây dựng một trang web mua sắm hoàn chỉnh, đáp ứng đầy đủ các nghiệp vụ tra cứu thông tin sản phẩm, hiển thị quảng cáo của gian hàng, thực hiện quy trình mua sắm và theo dõi trạng thái đơn hàng theo thời gian thực.
  2. Thiết kế giao diện thân thiện với người dùng, trực quan, dễ sử dụng và đảm bảo tốc độ phản hồi nhanh chóng khi thực hiện các tác vụ.
  3. Cung cấp bộ công cụ quản trị tiện lợi cho quản trị viên và chủ cửa hàng trong việc quản lý, cập nhật số lượng, chi tiết thông tin và tình trạng còn hàng của các danh mục sản phẩm.
  4. Triển khai các tính năng mở rộng hiện đại như tìm kiếm và điều khiển bằng giọng nói (Voice Command), hỗ trợ đa dạng phương thức thanh toán.

Đối tượng nghiên cứu của đề tài là nhóm khách hàng và chủ cửa hàng có nhu cầu giao dịch mua sắm trực tuyến. Phạm vi nghiên cứu tập trung vào việc phân tích, đối chiếu mô hình giao diện, chức năng của các nền tảng thương mại điện tử lớn tại thị trường Việt Nam (Shopee, Tiki, Lazada), từ đó đúc kết mẫu kiến trúc hệ thống phù hợp để hiện thực hóa sản phẩm trong thời gian 2 tháng.

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

Đồ án ứng dụng mô hình kiến trúc phần mềm ba tầng (Three-Tier Architecture) dựa trên nền tảng MERN Stack toàn diện bằng ngôn ngữ JavaScript/JSON:

  • Tầng hiển thị (Presentation Tier - Front-end): Sử dụng React.js để xây dựng giao diện ứng dụng web động phía máy khách. React.js cho phép quản lý giao diện dựa trên trạng thái (stateful, data-driven interfaces) thông qua các thành phần (components) tái sử dụng, tối ưu hóa quá trình kết xuất HTML và xử lý các sự kiện biểu mẫu, lỗi.
  • Tầng máy chủ ứng dụng (Application Tier - Back-end): Kết hợp nền tảng môi trường thực thi Node.js và khung làm việc Express.js. Express.js đóng vai trò điều hướng tuyến (URL routing), tiếp nhận và xử lý các yêu cầu HTTP (GET, POST qua XHR/fetch) từ máy khách và giao tiếp với cơ sở dữ liệu qua trình điều khiển (drivers).
  • Tầng cơ sở dữ liệu (Database Tier): Sử dụng hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu MongoDB (lưu trữ dữ liệu dạng BSON - Binary JSON). MongoDB cung cấp khả năng lưu trữ lược đồ linh hoạt (schema-less), hỗ trợ truy vấn thông qua ngôn ngữ MQL (MongoDB Query Language), khả năng mở rộng ngang (horizontal scale-out), cân bằng tải (load balancing) và lập chỉ mục nâng cao.
  • Công cụ phát triển và thư viện mở rộng: Môi trường phát triển tích hợp Visual Studio Code (bản phân phối của Code - OSS từ Microsoft) và nền tảng trí tuệ nhân tạo Alan AI để xử lý lệnh điều khiển bằng giọng nói.

Phương pháp nghiên cứu được triển khai bao gồm:

  • Phương pháp khảo sát hiện trạng: Khảo sát nhu cầu người dùng, phân tích giao diện và chức năng của 3 hệ thống thương mại điện tử thực tế gồm Shopee (https://shopee.vn), Tiki (https://tiki.vn) và Lazada (https://www.lazada.vn).
  • Phương pháp phân tích và mô hình hóa hệ thố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), đặc tả ca sử dụng (Use Case Specifications), biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram).
  • Phương pháp thiết kế và lập trình thực nghiệm: Thiết kế cơ sở dữ liệu quan hệ logic/tài liệu NoSQL, xây dựng giao diện người dùng, lập trình tích hợp hệ thống, tra cứu tài liệu chuyên môn và xử lý lỗi lập trình qua Stack Overflow và các bài giảng kỹ thuật trực tuyến.

Thiết kế và triển khai

Hệ thống được thiết kế hoàn chỉnh theo quy trình kỹ thuật phần mềm với 4 nhóm tác nhân (Actors) chính: Khách vãng lai (Guest), Khách hàng (Client), Người bán/Chủ cửa hàng (Seller) và Quản trị viên hệ thống (Administrator).

Tác nhân (Actor) Quyền hạn và Chức năng chính
Khách vãng lai (Guest) Tìm kiếm, lọc, xem chi tiết sản phẩm; xem trang thông tin người bán; thêm/xóa sản phẩm trong giỏ hàng; đăng ký tài khoản mới; lấy lại mật khẩu qua email; đăng nhập hệ thống (hỗ trợ đăng nhập bằng Google); sử dụng lệnh giọng nói (Voice Command); nghe nhạc nền.
Khách hàng (Client) Thực hiện toàn bộ chức năng của Guest; quản lý thông tin cá nhân/đổi mật khẩu; tạo đơn hàng và tiến hành thanh toán; xem lịch sử đơn hàng; gửi yêu cầu hoàn trả đơn hàng/tiền (Rollback order) khi hàng chưa giao; đánh giá và bình luận sản phẩm; gửi tin nhắn hỗ trợ.
Người bán (Seller) Quản lý thông tin gian hàng (tên shop, logo, mô tả, tài khoản nhận tiền); tạo mới, chỉnh sửa, xóa và tìm kiếm sản phẩm; quản lý đơn hàng của khách liên quan đến shop; xem thống kê doanh thu và báo cáo chi tiết theo tháng; xem phản hồi/đánh giá từ khách hàng.
Quản trị viên (Admin) Quản lý toàn bộ tài khoản (phân quyền, xóa tài khoản); duyệt hoặc từ chối yêu cầu hoàn tiền (Rollback) từ khách hàng; thực hiện chi trả doanh thu/lương hàng tháng cho người bán (Seller Salary Payment); quản lý đơn hàng hệ thống (xóa đơn hàng chưa thanh toán sau 3 ngày, cập nhật trạng thái giao hàng); xem thống kê tổng thể và biểu đồ doanh thu; tiếp nhận và phản hồi tin nhắn hỗ trợ.

Quy trình thanh toán (Manage Payment) được thiết kế hỗ trợ 4 phương thức thanh toán linh hoạt:

  1. Thanh toán bằng tiền mặt khi nhận hàng (Payment on Delivery - COD).
  2. Thanh toán trực tuyến nội địa qua cổng thanh toán VNPay.
  3. Thanh toán quốc tế qua cổng PayPal.
  4. Thanh toán bằng tiền ảo / blockchain (Coin).

Về mặt xử lý dữ liệu, hệ thống thiết lập 8 bảng/tập hợp (Collections) chính trong cơ sở dữ liệu MongoDB:

  1. Users: Lưu trữ định danh, tên, email, mật khẩu, cờ xác thực vai trò (isAdmin, isSeller).
  2. Order: Lưu trữ định danh đơn hàng, số lượng (qty), hình ảnh, giá tiền, liên kết sản phẩm, trạng thái thanh toán và giao hàng.
  3. Review: Lưu trữ tên người đánh giá, nhận xét (comment), số điểm đánh giá (rating).
  4. Shipping Address: Lưu trữ họ tên người nhận, địa chỉ chi tiết, thành phố, mã bưu điện (postalCode), quốc gia, tọa độ địa lý (lat, lng).
  5. Rollback Order: Quản lý các yêu cầu hoàn hủy đơn hàng và hoàn tiền từ khách hàng gửi lên quản trị viên.
  6. Order Items: Chi tiết từng mặt hàng nằm trong đơn hàng.
  7. Payment Result: Lưu trữ kết quả phản hồi từ cổng thanh toán gồm ID giao dịch, trạng thái (status), thời gian cập nhật (update_time), địa chỉ email.
  8. Product: Lưu thông tin tên sản phẩm, mã người bán (seller), hình ảnh, thương hiệu, danh mục (category), mô tả, đơn giá, số lượng tồn kho (countInStock), điểm đánh giá và danh sách các đánh giá.

Yêu cầu phi chức năng của hệ thống được ràng buộc nghiêm ngặt: tốc độ xử lý và phản hồi tác vụ tìm kiếm không vượt quá 5 giây (<= 5s); dữ liệu đầu vào được kiểm soát trong miền giá trị hợp lệ; các thao tác liên quan đến tiền tệ, hủy đơn và sản phẩm phải được cập nhật trực tiếp, đồng bộ tức thì vào cơ sở dữ liệu.

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

Chương 01: OVERVIEW (Tổng quan)

Chương này giới thiệu lý do chọn đề tài, mục tiêu, đối tượng, phạm vi nghiên cứu và ý nghĩa thực tiễn của ứng dụng thương mại điện tử trong bối cảnh công nghệ số hóa. Đồng thời, chương 1 trình bày tổng quan về các công nghệ cốt lõi được áp dụng gồm trình soạn thảo Visual Studio Code, kiến trúc ba tầng MERN Stack (MongoDB, Express.js, React.js, Node.js) và các đặc tính kỹ thuật vượt trội của hệ quản trị cơ sở dữ liệu NoSQL MongoDB như lưu trữ tài liệu BSON, cân bằng tải, cơ chế lập chỉ mục và thực thi truy vấn tùy biến (ad-hoc query).

Chương 02: Status Analyst and User Requirements (Phân tích hiện trạng và yêu cầu người dùng)

Chương 2 trình bày báo cáo khảo sát thực trạng kinh doanh và giao diện của 3 nền tảng thương mại điện tử phổ biến tại Việt Nam:

  • Shopee: Giao diện hiện đại, thân thiện, cung cấp đầy đủ chức năng nhưng dễ gặp lỗi máy chủ khi lưu lượng truy cập quá lớn.
  • Tiki: Thiết kế sáng sủa, bắt mắt, hiện đại, nhưng cũng đối mặt với vấn đề quá tải máy chủ khi nhận lượng yêu cầu đồng thời cao.
  • Lazada: Giao diện trực quan, đẹp mắt, đầy đủ chức năng và có nhược điểm tương tự về tải hệ thống.

Từ khảo sát trên, nhóm tác giả xây dựng bảng phân tích yêu cầu chức năng (lưu trữ, tìm kiếm, tính toán, kết xuất dữ liệu), định nghĩa bảng phân quyền tác nhân (Admin, Seller, User) và các tiêu chí phi chức năng về độ bền bỉ (resilience), tính khả dụng (usability), tính tương thích (compatibility) và hiệu năng (tác vụ không quá 5 giây).

Chương 03: SOFTWARE DESIGN (Thiết kế phần mềm)

Chương này tập trung vào việc mô hình hóa hệ thống thông qua các sơ đồ UML chi tiết:

  • Xác định tác nhân và chức năng: Phân chia trách nhiệm cho 4 nhóm Guest, Administrator, Seller và Client.
  • Biểu đồ và đặc tả ca sử dụng (Use Case): Đặc tả chi tiết luồng sự kiện chính (Basic Flow), luồng thay thế (Alternate Flows), điều kiện tiên quyết (Pre-Conditions) và điều kiện sau (Post-Conditions) cho các nghiệp vụ: Đăng nhập (Login), Quản lý tài khoản (Manage Accounts), Quản lý thông tin cá nhân (Manage Personal Information), Quản lý hoàn trả (Manage Rollback), Phân tích doanh thu (Analysis Revenue), Thanh toán tiền cho người bán (Manage Seller Salary Payment), Quản lý đơn hàng (Manage Order), Quản lý sản phẩm (Manage Products), Quản lý thanh toán (Manage Payment), Lịch sử đơn hàng (Manage Order History), Đăng ký (Register) và Lệnh giọng nói (Voice Command).
  • Biểu đồ tuần tự (Sequence Diagram) và Biểu đồ lớp (Class Diagram): Mô tả chi tiết dòng tương tác giữa đối tượng giao diện, điều khiển và thực thể dữ liệu cho từng tác nhân.

Chương 04: Database Design (Thiết kế cơ sở dữ liệu)

Chương 4 thiết lập sơ đồ logic (Logic Schema), mô hình quan hệ thực thể (Entity Relationship Diagram) và cấu trúc chi tiết của 8 bảng dữ liệu: Users, Order, Review, Shipping Address, Rollback Order, Order Items, Payment Result và Product. Mỗi bảng đều được định nghĩa rõ ràng về kiểu dữ liệu, các trường thuộc tính khóa và mối liên kết tham chiếu.

Chương 05: USER INTERFACE DESIGN (Thiết kế giao diện người dùng)

Trình bày bản thiết kế giao diện chi tiết cho từng màn hình chức năng của hệ thống: Trang chủ (Home Page), Đăng nhập (Sign In), Đăng ký (Register), Quên mật khẩu (Forget Pass), Tìm kiếm sản phẩm (Search Screen), Giỏ hàng (Cart Screen), Chi tiết sản phẩm (Product Screen), Màn hình đăng bán sản phẩm của người bán (Seller Sell Product Screen), Trang giao diện khách hàng (Client page) và Bảng điều khiển người bán (Seller Dashboard).

Chương 06: Testing and Deployment (Kiểm thử và triển khai)

Chương này ghi nhận các kịch bản kiểm thử chức năng và giao diện tương ứng với các màn hình đã thiết kế: kiểm thử trang chủ, đăng nhập, đăng ký, quên mật khẩu, tìm kiếm, giỏ hàng, chi tiết sản phẩm, đăng bán sản phẩm, các trang chức năng của khách hàng và người bán nhằm đảm bảo hệ thống vận hành đúng đặc tả kỹ thuật và không phát sinh lỗi logic.

Chương 07: Result And Conclusion (Kết quả và kết luận)

Tổng kết toàn bộ kết quả thu nhận sau 2 tháng triển khai đồ án, đúc kết các bài học kinh nghiệm về kỹ năng lập trình full-stack, phân tích hệ thống và định hướng các nội dung nâng cấp, phát triển hệ thống trong tương lai.

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

Đồ án đã đạt được các kết quả kỹ thuật cụ thể theo đúng mục tiêu đặt ra:

  • Hiện thực hóa thành công ứng dụng web thương mại điện tử "ONLINE SHOPPIE" với đầy đủ các phân hệ chức năng cho 4 nhóm người dùng, tích hợp hoàn chỉnh cơ sở dữ liệu MongoDB và API dịch vụ nền tảng Node.js/Express.js.
  • Xây dựng thành công tính năng điều khiển bằng giọng nói (Voice Command) thông qua việc tích hợp nền tảng Alan AI, cho phép người dùng thực hiện một số thao tác trên website bằng khẩu lệnh.
  • Thiết lập quy trình xử lý đơn hàng và thanh toán đa dạng (hỗ trợ COD, VNPay, PayPal và tiền mã hóa Coin), đồng thời xây dựng cơ chế quản lý hoàn tiền tự động (Rollback) và chức năng tự động hủy các đơn hàng chưa thanh toán sau thời hạn 3 ngày.
  • Xây dựng hệ thống quản lý tài chính minh bạch cho sàn thương mại điện tử, bao gồm phân hệ tính toán và chi trả doanh thu/lương định kỳ hàng tháng từ quản trị viên cho các chủ gian hàng (Seller Salary Payment).

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

Theo tự nhận xét của nhóm tác giả trong văn bản, đồ án được thực hiện trong khoảng thời gian 2 tháng, vừa đủ để hoàn thành các chức năng cốt lõi nên không thể tránh khỏi một số hạn chế và sai sót nhất định.

Hướng phát triển tiếp theo được nhóm đề xuất trong phần Developing in future tập trung vào việc:

  • Tối ưu hóa hiệu năng máy chủ để khắc phục triệt để tình trạng nghẽn nghẽ khi tiếp nhận số lượng lớn yêu cầu đồng thời (khắc phục điểm yếu thường gặp đã khảo sát trên các sàn TMĐT).
  • Hoàn thiện, mở rộng thêm các tập lệnh điều khiển giọng nói với Alan AI.
  • Nâng cấp và cải tiến các chức năng phân tích số liệu thống kê doanh thu, biểu đồ trực quan chuyên sâu hơn cho người bán và quản trị viên.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho:

  • Sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về đề tài xây dựng website thương mại điện tử trên nền tảng MERN Stack.
  • Tài liệu cung cấp mẫu tham khảo chuẩn mực về quy trình thiết kế phần mềm hướng đối tượng theo UML, đặc biệt là phần đặc tả chi tiết ca sử dụng (Use Case Specifications) và thiết kế lược đồ cơ sở dữ liệu NoSQL MongoDB có tính ứng dụng thực tế cao.

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

1. Đồ án sử dụng công nghệ nào để xây dựng hệ thống website thương mại điện tử?
Đồ án sử dụng kiến trúc MERN Stack toàn diện bằng JavaScript, bao gồm: React.js cho tầng Front-end, Express.js và Node.js cho tầng Back-end, MongoDB cho tầng cơ sở dữ liệu NoSQL (lưu trữ dạng BSON), cùng môi trường phát triển Visual Studio Code và nền tảng Alan AI để hỗ trợ giọng nói.

2. Hệ thống phân chia người dùng thành những nhóm tác nhân nào?
Hệ thống xác định 4 nhóm tác nhân: Khách vãng lai (Guest), Quản trị viên (Administrator), Người bán/Chủ cửa hàng (Seller) và Khách hàng (Client).

3. Website hỗ trợ những phương thức thanh toán nào khi khách hàng mua sắm?
Hệ thống hỗ trợ 4 phương thức thanh toán gồm: Thanh toán bằng tiền mặt khi giao hàng (Payment on Delivery), Thanh toán qua cổng nội địa VNPay, Thanh toán quốc tế qua PayPal và Thanh toán bằng tiền mã hóa/blockchain (Coin).

4. Tính năng đặc biệt nào được tích hợp trên website để hỗ trợ người dùng thao tác?
Website tích hợp tính năng Voice Command sử dụng công nghệ của Alan AI, cho phép khách hàng bấm biểu tượng micro để ra lệnh bằng giọng nói thực hiện các chức năng định sẵn trên hệ thống.

5. Quản trị viên có quyền hạn gì đối với đơn hàng chưa được khách hàng thanh toán?
Quản trị viên có quyền xem, tìm kiếm và thực hiện xóa các đơn hàng của khách hàng nếu sau 3 ngày khách hàng không thực hiện thanh toán cho đơn hàng đó.

Kết luận

Khóa luận tốt nghiệp "Xây dựng website thương mại điện tử" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã hoàn thành việc nghiên cứu, phân tích, thiết kế và triển khai một nền tảng mua sắm trực tuyến hoàn chỉnh trên nền tảng MERN Stack. Đề tài giải quyết tốt bài toán quản lý đa người dùng, tích hợp nhiều cổng thanh toán hiện đại và ứng dụng công nghệ giọng nói Alan AI vào thương mại điện tử. Đây là tài liệu tham khảo có giá trị cao về mặt kỹ thuật phần mềm và thiết kế hệ thống thông tin thực tế.