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

Trong bối cảnh chuyển đổi số và sự phát triển mạnh mẽ của công nghệ thông tin, phương thức kinh doanh của các doanh nghiệp đang chuyển dịch dần sang các nền tảng số. Thương mại điện tử không chỉ trở thành xu hướng tất yếu mà còn định hình lại thói quen mua sắm trực tuyến của người tiêu dùng. Đối với ngành hàng thời trang, đặc biệt là các mặt hàng trang sức mang tính thẩm mỹ và phong cách cá nhân cao, việc thiết lập một không gian mua sắm trực tuyến trực quan, tinh tế và an toàn đóng vai trò quyết định trong việc tiếp cận khách hàng và tối ưu hóa hoạt động thương mại.

Đề tài "Xây dựng website thương mại điện tử ứng dụng cho bán đồ trang sức" do sinh viên Nguyễn Thị Thanh thực hiện (ngành Công nghệ thông tin, Trường Đại học Phenikaa) nhằm giải quyết bài toán ứng dụng công nghệ để xây dựng nền tảng hỗ trợ các cửa hàng kinh doanh đồ trang sức quảng bá sản phẩm, quản lý bán hàng và cung cấp trải nghiệm mua sắm trực tuyến.

Mục tiêu và nhiệm vụ nghiên cứu:

  1. Khảo sát yêu cầu thực tiễn và xác định kiến trúc cần thiết cho một website thương mại điện tử chuyên ngành trang sức.
  2. Phân tích, thiết kế hệ thống: xây dựng các biểu đồ Use Case, đặc tả Use Case, biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram).
  3. Thiết kế và đặc tả cấu trúc cơ sở dữ liệu phù hợp với mô hình dữ liệu phi quan hệ (NoSQL).
  4. Nghiên cứu, lựa chọn và ứng dụng giải pháp công nghệ hiện đại bao gồm ReactJS, NodeJS và MongoDB để lập trình hoàn thiện hệ thống.
  5. Triển khai thử nghiệm website trên môi trường Internet để đánh giá khả năng vận hành thực tế.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Khách hàng (người mua sắm trực tuyến đồ trang sức) và người quản trị (chủ cửa hàng, người vận hành hệ thống).
  • Phạm vi nghiên cứu: Tập trung vào các cửa hàng kinh doanh đồ trang sức có nhu cầu mở rộng hoạt động bán hàng trực tuyến; triển khai các phân hệ chức năng cốt lõi gồm quản lý sản phẩm, giỏ hàng, quy trình đặt hàng, thanh toán và quản trị đơn sỉ/lẻ trong phạm vi mô hình kinh doanh bán lẻ.

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

Đồ án được xây dựng dựa trên mô hình kiến trúc ứng dụng Web đa tầng phân tách giữa giao diện phía máy khách (Frontend), xử lý logic phía máy chủ (Backend) và tầng quản trị dữ liệu (Database).

Khung lý thuyết và công nghệ áp dụng:

  • Frontend (Giao diện người dùng): Thư viện ReactJS kết hợp ngôn ngữ JavaScript, HTML/CSS và cú pháp JSX. Kiến trúc sử dụng Virtual DOM để tối ưu hóa hiệu năng hiển thị và cập nhật giao diện, cùng mô hình luồng dữ liệu một chiều quản lý trạng thái thông qua Redux.
  • Backend (Xử lý máy chủ): Nền tảng NodeJS xây dựng trên JavaScript runtime V8 của Google Chrome. Hệ thống vận hành theo mô hình hướng sự kiện (event-driven), kiến trúc đơn luồng (single-thread) với cơ chế I/O bất đồng bộ, không chặn (non-blocking I/O) giúp xử lý đồng thời nhiều kết nối và cung cấp các RESTful API.
  • Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu NoSQL MongoDB theo mô hình hướng tài liệu (document-oriented). Dữ liệu được tổ chức dưới dạng các document có cấu trúc JSON/BSON lồng nhau với cơ chế dynamic schema linh hoạt.

Phương pháp nghiên cứu:

  • Phương pháp phân tích và thiết kế hệ thống hướng đối tượng (OOAD) sử dụng ngôn ngữ mô hình hóa thống nhất UML để xây dựng các biểu đồ tương tác, ca sử dụng và luồng hoạt động.
  • Phương pháp phát triển phần mềm thực nghiệm: Lập trình toàn phần (Full-stack JavaScript), kết nối giao tiếp giữa Client và Server thông qua các API endpoint JSON, đồng thời tiến hành triển khai kiểm thử thực tế trên hạ tầng Internet.
  • Nguồn dữ liệu: Dữ liệu danh mục sản phẩm trang sức, dữ liệu người dùng, đánh giá và đơn hàng được thiết kế mô phỏng theo cấu trúc chuẩn của thương mại điện tử bán lẻ.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế hoàn chỉnh từ việc phân tích yêu cầu, phân quyền tác nhân, mô hình hóa luồng nghiệp vụ đến hiện thực hóa mã nguồn và cơ sở dữ liệu.

1. Phân tích tác nhân và phân hệ chức năng

Hệ thống phân định rõ hai tác nhân chính tham gia tương tác:

  • Khách hàng (User): Xem danh sách sản phẩm, lọc/tìm kiếm theo tiêu chí, xem chi tiết sản phẩm, quản lý tài khoản cá nhân, thêm/bớt sản phẩm trong giỏ hàng, đặt hàng, thanh toán và gửi đánh giá (review).
  • Quản trị viên (Admin): Đăng nhập quyền quản trị, quản lý danh mục và thông tin sản phẩm (thêm, sửa, xóa), tiếp nhận và xử lý đơn hàng, theo dõi trạng thái giao hàng, thống kê báo cáo doanh số.
Phân hệ chức năng Chức năng chi tiết của Khách hàng (User) Chức năng chi tiết của Quản trị (Admin) Chức năng hệ thống tự động
Quản lý tài khoản Đăng ký, đăng nhập, xem/sửa thông tin cá nhân Đăng nhập hệ thống quản trị Xác thực mật khẩu, kiểm tra hợp lệ dữ liệu
Sản phẩm & Danh mục Xem sản phẩm, tìm kiếm, lọc theo giá/chất liệu Thêm mới, sửa thông tin, xóa sản phẩm Phân trang, hiển thị banner, hiển thị danh mục
Giao dịch & Giỏ hàng Thêm/bớt giỏ hàng, chọn phương thức thanh toán Tiếp nhận đơn, xác nhận đơn và giao hàng Tính toán tổng giá trị, kiểm tra trạng thái thanh toán
Báo cáo & Đánh giá Gửi đánh giá, nhận xét chi tiết sản phẩm Xem bảng thống kê doanh số, theo dõi tồn kho Cập nhật số liệu bán hàng (SaleStatics)

2. Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu được tổ chức thành các collection chính trong MongoDB:

  • user: Lưu trữ thông tin định danh, thông tin cá nhân, quyền truy cập và dữ liệu xác thực của người dùng và quản trị viên.
  • Products: Lưu trữ chi tiết thông tin sản phẩm trang sức (tên, hình ảnh, giá cả, chất liệu, kích thước, số lượng tồn kho, danh mục).
  • order: Lưu trữ thông tin đơn đặt hàng (thông tin người mua, danh sách sản phẩm đặt, địa chỉ giao hàng, phương thức thanh toán, tổng tiền, trạng thái xử lý).
  • review: Lưu trữ phản hồi, điểm đánh giá và nhận xét của khách hàng đối với từng sản phẩm cụ thể.
  • SaleStatics: Lưu trữ dữ liệu tổng hợp về doanh số bán hàng, phục vụ chức năng báo cáo và thống kê của quản trị viên.

3. Quy trình nghiệp vụ cốt lõi

  • Quy trình Mua hàng & Thanh toán: Người dùng duyệt sản phẩm -> Thêm vào giỏ hàng -> Điều hướng tới trang thanh toán -> Xác nhận thông tin giao hàng -> Lựa chọn hình thức thanh toán (Thanh toán khi nhận hàng COD hoặc Thanh toán trực tuyến qua thẻ/ví điện tử) -> Hệ thống kiểm tra tính hợp lệ và khởi tạo bản ghi trong bảng order.
  • Quy trình Tiếp nhận & Xử lý đơn hàng: Quản trị viên nhận thông báo đơn hàng mới -> Xem chi tiết đơn đặt -> Thực hiện cập nhật trạng thái đơn (Tiếp nhận -> Xác nhận -> Giao hàng) -> Cập nhật tương ứng vào cơ sở dữ liệu và số liệu thống kê doanh thu.

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

Chương 1: Tổng quan

Chương 1 thiết lập nền tảng lý luận về thương mại điện tử và kiến trúc phát triển ứng dụng Web. Tác giả làm rõ khái niệm website bán hàng trực tuyến, phân tích các lợi ích cốt lõi đối với người tiêu dùng (tiện lợi 24/7, dễ so sánh giá, thanh toán bảo mật) và đối với doanh nghiệp (mở rộng thị trường, tiết kiệm chi phí mặt bằng, thu thập dữ liệu khách hàng).

Chương này đi sâu vào kiến trúc phân tầng Web (Frontend, Backend, Database, Hosting & Domain), đồng thời luận giải việc lựa chọn ngăn xếp công nghệ:

  • ReactJS: Sử dụng Virtual DOM, Redux và JSX để tạo giao diện phản hồi nhanh và tái sử dụng component.
  • NodeJS: Sử dụng mô hình xử lý đơn luồng bất đồng bộ, phù hợp với các ứng dụng I/O chuyên sâu và RESTful API.
  • MongoDB: Cung cấp cấu trúc tài liệu linh hoạt dạng JSON/BSON, phân tích rõ ưu điểm (mô hình dữ liệu linh hoạt, giảm TCO) và nhược điểm (không hỗ trợ phép join tự nhiên, kích thước document giới hạn ở mức 16MB, giới hạn cấu trúc lồng nhau trong BSON tối đa 100 cấp).

Chương 2: Phân tích hệ thống

Chương 2 trình bày chi tiết quá trình kỹ nghệ yêu cầu và mô hình hóa hệ thống. Tác giả phân rã các yêu cầu từ phía người mua hàng và phía cửa hàng, xác định hai tác nhân chính (User và Admin). Nội dung trọng tâm là việc xây dựng hệ thống biểu đồ UML hoàn chỉnh:

  • Hệ thống lược đồ và bảng đặc tả Use Case chi tiết: Đăng ký, Đăng nhập, Xem/Sửa thông tin cá nhân, Quản lý danh mục sản phẩm (thêm/sửa/xóa), Xem thông tin sản phẩm, Chọn sản phẩm cần mua, Thêm/Loại bỏ sản phẩm khỏi giỏ hàng, Thanh toán, Tiếp nhận đơn hàng, Xác nhận và giao hàng, Thống kê doanh số. Mỗi Use Case đều được quy định chặt chẽ về điều kiện tiên quyết, luồng sự kiện chính và các luồng sự kiện rẽ nhánh (xử lý ngoại lệ).
  • Xây dựng hệ thống Biểu đồ tuần tự (Sequence Diagram) và Biểu đồ hoạt động (Activity Diagram) cho toàn bộ các luồng nghiệp vụ quan trọng.

Chương 3: Thiết kế và đặc tả cơ sở dữ liệu

Chương 3 tập trung vào việc mô hình hóa dữ liệu cho hệ thống. Nội dung bao gồm Biểu đồ quan hệ cơ sở dữ liệu và các bảng đặc tả chi tiết cấu trúc dữ liệu của các thực thể/collection:

  • Cấu trúc các bảng dữ liệu: Bảng user (thông tin tài khoản, phân quyền), Bảng Products (thuộc tính chi tiết đồ trang sức), Bảng order (thông tin đơn hàng và chi tiết các mục hàng), Bảng review (đánh giá sản phẩm), và Bảng SaleStatics (thông số thống kê doanh thu).

Chương 4: Kết quả đạt được

Chương 4 minh họa kết quả triển khai giao diện và chức năng thực tế của ứng dụng qua hệ thống ảnh chụp màn hình:

  • Giao diện người dùng: Trang chủ (hiển thị banner, danh mục), Danh sách sản phẩm, Thông tin chi tiết sản phẩm, Form đăng ký/đăng nhập, Giao diện giỏ hàng và đặt hàng.
  • Giao diện quản trị (Admin): Bảng điều khiển quản lý danh mục sản phẩm (thao tác CRUD), Giao diện quản lý trạng thái đơn hàng và Giao diện báo cáo thống kê doanh số bán hàng.
  • Đánh giá tổng hợp về các lợi ích vận hành và các hạn chế thực tế của sản phẩm.

Chương 5: Kết luận và hướng phát triển

Chương 5 tổng kết toàn bộ quá trình thực hiện đồ án, đánh giá mức độ hoàn thành so với mục tiêu đặt ra. Tác giả đề xuất các hướng phát triển trong tương lai nhằm nâng cấp hệ thống, đồng thời phân tích các khía cạnh về đạo đức và trách nhiệm nghề nghiệp của kỹ sư công nghệ thông tin trong việc bảo mật thông tin người dùng và an toàn giao dịch.


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

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

  • Xây dựng thành công hệ thống website thương mại điện tử chuyên biệt cho bán lẻ đồ trang sức với đầy đủ hai phân hệ độc lập: Phân hệ khách hàng và Phân hệ quản trị.
  • Hiện thực hóa đầy đủ 14 Use Case nghiệp vụ chính từ khâu đăng ký, quản lý hồ sơ, duyệt/lọc sản phẩm, xử lý giỏ hàng, tạo đơn hàng cho đến khâu quản trị sản phẩm, xử lý đơn hàng và thống kê doanh thu.
  • Thiết lập cấu trúc cơ sở dữ liệu NoSQL trên MongoDB gồm 5 collection chính (user, Products, order, review, SaleStatics), đảm bảo tính linh hoạt trong quản lý thông tin thuộc tính trang sức.
  • Triển khai thử nghiệm thành công toàn bộ hệ thống trên môi trường mạng Internet, được giảng viên hướng dẫn đánh giá cao về tính thực tiễn và khả năng vận hành ổn định.

Giải pháp và đóng góp của đề tài:

  • Cung cấp giải pháp ứng dụng thống nhất ngăn xếp công nghệ Full-stack JavaScript (ReactJS ở Client và NodeJS ở Server), giúp tối ưu hóa hiệu năng truyền tải dữ liệu JSON và đơn giản hóa quá trình phát triển, bảo trì hệ thống.
  • Đóng góp một quy trình thiết kế phần mềm bài bản từ khâu phân tích yêu cầu, xây dựng đặc tả Use Case chi tiết đến thiết kế CSDL hướng tài liệu cho bài toán bán lẻ trực tuyến.

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

Hạn chế của hệ thống:

  • Phạm vi ứng dụng: Đề tài mới chỉ tập trung mô hình hóa cho các cửa hàng bán lẻ đơn lẻ quy mô vừa và nhỏ, chưa mở rộng thành sàn thương mại điện tử đa nhà cung cấp (multi-vendor marketplace).
  • Giới hạn kỹ thuật từ cơ sở dữ liệu: Do sử dụng MongoDB, hệ thống gặp một số hạn chế nội tại của cơ sở dữ liệu NoSQL như không hỗ trợ quan hệ join nguyên bản (phải xử lý thủ công ở tầng ứng dụng), nguy cơ dư thừa dữ liệu gây tiêu tốn bộ nhớ, giới hạn kích thước tối đa 16MB cho mỗi tài liệu và giới hạn cấu trúc lồng nhau trong BSON tối đa 100 cấp.

Hướng nghiên cứu và phát triển tiếp:

  • Tích hợp thêm các cổng thanh toán điện tử trực tiếp qua API chính thức của các ngân hàng và ví điện tử phổ biến.
  • Xây dựng các thuật toán gợi ý sản phẩm thông minh dựa trên lịch sử xem và hành vi mua hàng của người tiêu dùng.
  • Nâng cấp cơ chế bảo mật thông tin, áp dụng chứng chỉ số SSL và hoàn thiện hệ thống hỗ trợ trực tuyến (chat trực tiếp với khách hàng).

Giá trị tham khảo

Đồ án là tài liệu tham khảo thực tế cho:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu về cấu trúc trình bày một đồ án tốt nghiệp chuẩn mực, cách phân tích thiết kế hệ thống theo mô hình hướng đối tượng với hệ thống bảng đặc tả Use Case đầy đủ các luồng sự kiện chính/nhánh.
  • Người học và lập trình viên phát triển Web: Tham khảo phương pháp xây dựng ứng dụng thương mại điện tử kết hợp giữa ReactJS, NodeJS và MongoDB, cùng phương pháp tổ chức dữ liệu dạng Document cho bài toán quản lý đơn hàng và danh mục sản phẩm.

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

1. Đồ án sử dụng ngăn xếp công nghệ (tech stack) nào để phát triển hệ thống?
Hệ thống sử dụng ngăn xếp Full-stack JavaScript, bao gồm: Frontend xây dựng bằng ReactJS (kết hợp Redux, Virtual DOM, JSX); Backend xây dựng bằng NodeJS trên nền tảng V8 engine; Cơ sở dữ liệu sử dụng hệ quản trị NoSQL MongoDB.

2. Hệ thống phân chia quyền hạn và chức năng cho các tác nhân như thế nào?
Hệ thống phân định hai tác nhân: Khách hàng (User) thực hiện xem/tìm kiếm sản phẩm, quản lý thông tin cá nhân, thao tác giỏ hàng, thanh toán và gửi đánh giá; Quản trị viên (Admin) có quyền quản lý danh mục sản phẩm (thêm, sửa, xóa), tiếp nhận và xử lý đơn hàng, theo dõi trạng thái giao hàng và xem thống kê doanh số bán hàng.

3. Cơ sở dữ liệu của hệ thống được tổ chức thành những bảng/collection nào?
Cơ sở dữ liệu MongoDB trong đồ án bao gồm 5 bảng/collection chính: user (người dùng và quản trị viên), Products (thông tin chi tiết sản phẩm trang sức), order (dữ liệu đơn đặt hàng và thanh toán), review (đánh giá của người mua), và SaleStatics (dữ liệu thống kê doanh số).

4. Khách hàng có những lựa chọn nào trong quy trình thanh toán đơn hàng?
Khách hàng có thể lựa chọn hai hình thức: Thanh toán trực tiếp khi nhận hàng (COD) hoặc Thanh toán trực tuyến qua thẻ ngân hàng/ví điện tử. Hệ thống thực hiện kiểm tra tính hợp lệ của thông tin tài khoản và đơn hàng trước khi xác nhận giao dịch thành công.

5. Những hạn chế kỹ thuật nào của MongoDB được phân tích trong đồ án?
Đồ án chỉ rõ các hạn chế của MongoDB gồm: không hỗ trợ thao tác join tự nhiên dẫn đến dư thừa dữ liệu và tốn bộ nhớ; kích thước mỗi tài liệu (document) bị giới hạn tối đa 16MB; cấu trúc lồng nhau trong chuẩn BSON bị giới hạn không quá 100 cấp độ.


Kết luận

Đồ án tốt nghiệp của sinh viên Nguyễn Thị Thanh đã hoàn thành đầy đủ mục tiêu nghiên cứu và phát triển một website thương mại điện tử hoàn chỉnh phục vụ hoạt động kinh doanh đồ trang sức. Bằng việc kết hợp hiệu quả giữa ReactJS, NodeJS và MongoDB, tác giả đã xây dựng thành công một hệ thống có cấu trúc rõ ràng, đáp ứng đầy đủ các quy trình nghiệp vụ mua bán và quản trị bán hàng trực tuyến. Kết quả thực nghiệm và việc triển khai thử nghiệm trên Internet đã minh chứng tính khả thi và khả năng ứng dụng thực tiễn của đề tài trong lĩnh vực phát triển phần mềm thương mại điện tử.