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

Đồ án tốt nghiệp "Xây dựng website bán hàng trực tuyến" được thực hiện bởi sinh viên Nguyễn Tuấn Dương (chuyên ngành Công nghệ thông tin, Lớp CNTT Việt Nhật K13, Trường Đại học Phenikaa) dưới sự hướng dẫn của TS. Mai Xuân Tráng vào năm 2023.

Lý do chọn đề tài và bối cảnh thực tiễn

Theo tác giả, trong nền kinh tế thị trường và sự phát triển mạnh mẽ của mạng Internet, việc các doanh nghiệp, cửa hàng hay cá nhân sở hữu một hoặc nhiều website đã trở nên phổ biến. Kỹ thuật số và thương mại điện tử giúp tiết kiệm đáng kể chi phí vận chuyển trung gian, chi phí giao dịch và thời gian mua sắm, cho phép người tiêu dùng tìm kiếm sản phẩm tự động theo nhu cầu ngay tại nhà. Tuy nhiên, việc khai thác dữ liệu từ website và biến các tương tác của người dùng thành nguồn dữ liệu hữu ích nhằm nắm bắt, phân tích xu hướng tiêu dùng vẫn là một vấn đề còn nhiều tiềm năng phát triển. Do đó, việc xây dựng một website bán hàng tích hợp các tính năng hỗ trợ trải nghiệm người dùng là giải pháp cần thiết nhằm tối ưu hóa hoạt động thương mại điện tử và tiếp cận khách hàng bền vững.

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

Mục tiêu tổng quát của đồ án là thiết kế, xây dựng hoàn chỉnh một website thương mại điện tử phục vụ hoạt động mua bán trực tuyến với các nhiệm vụ cụ thể:

  1. Khảo sát yêu cầu bài toán từ các nguồn tài liệu, ý kiến chuyên môn và trải nghiệm thực tế từ các sàn thương mại điện tử hiện hành (như Shopee, eBay, Thế Giới Di Động).
  2. Phân tích, đặc tả chức năng phần mềm và mô hình hóa hệ thống bằng các biểu đồ chuẩn UML (Use Case, Activity, Sequence Diagrams).
  3. Ứng dụng các công nghệ lập trình web hiện đại ở cả phía máy khách (Front-end) và máy chủ (Back-end) cùng hệ quản trị cơ sở dữ liệu phù hợp để hiện thực hóa hệ thống.
  4. Thiết kế giao diện trực quan và tiến hành kiểm thử các chức năng nghiệp vụ của website.

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

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và phát triển phần mềm ứng dụng web bán hàng trực tuyến; các mô hình kiến trúc và công nghệ phát triển web hướng JavaScript/NoSQL.
  • Phạm vi hệ thống: Hệ thống phân chia thành 2 phân hệ rõ rệt:
    • Phân hệ Khách hàng (Người dùng): Giao diện xem danh sách hàng hóa, xem chi tiết sản phẩm, tìm kiếm, giỏ hàng, đặt hàng (lưu trữ thông tin hàng, số lượng, tổng tiền, thông tin liên lạc), phản hồi và cập nhật thông tin cá nhân.
    • Phân hệ Quản trị (Admin): Tài khoản quản trị riêng biệt để kiểm soát hệ thống, quản lý danh mục và thông tin sản phẩm (thêm, sửa, xóa, nhập hàng vào CSDL), tiếp nhận và xử lý đơn hàng, quản lý danh sách người dùng và thống kê doanh thu.
  • Phạm vi thời gian và không gian: Đồ án hoàn thành vào tháng 09 năm 2023 tại Trường Đại học Phenikaa, kết hợp quá trình thực hành công nghệ thực tế tại doanh nghiệp của sinh viên.

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

Khung lý thuyết và công nghệ sử dụng

Tác giả đã tổng hợp hệ thống lý thuyết về thương mại điện tử và các nền tảng kỹ thuật phát triển ứng dụng web:

Nhóm kiến thức Hạng mục công nghệ / Lý thuyết Nội dung và đặc tính kỹ thuật theo văn bản
Thương mại điện tử Định nghĩa & Yêu cầu - Tiếp cận theo định nghĩa của WTO và APEC về giao dịch thương mại qua mạng máy tính và kỹ thuật số.
- 4 yêu cầu nền tảng: Cơ sở hạ tầng kỹ thuật máy tính/bảo mật, thiết lập sự tin cậy, an toàn thông tin và bảo vệ quyền lợi/bản quyền khách hàng.
Kiến trúc phần mềm Mô hình MVC - Chia ứng dụng thành 3 thành phần độc lập: Model (quản lý dữ liệu và xử lý logic), View (giao diện hiển thị), Controller (tiếp nhận yêu cầu từ View, điều phối xử lý và cập nhật Model/View).
Phát triển Back-end Node.js - Nền tảng JavaScript runtime xây dựng trên V8 engine của Chrome, mã nguồn lõi bằng C++.
- Mô hình xử lý bất đồng bộ, kiến trúc đơn luồng (single-threaded), hỗ trợ kết nối đa dạng cơ sở dữ liệu (MongoDB, MySQL, PostgreSQL, MSSQL).
Phát triển Front-end React.js & Ngôn ngữ Web - Thư viện JavaScript mã nguồn mở xây dựng theo kiến trúc component.
- Sử dụng cú pháp JSX, luồng dữ liệu một chiều (one-way data flow) và cơ chế DOM ảo (Virtual-DOM) vừa đóng vai trò Model vừa là View giúp tăng tốc render.
- Kết hợp bộ ba ngôn ngữ cơ bản: HTML (cấu trúc siêu văn bản), CSS (định dạng giao diện theo 3 kiểu Internal, Inline, External) và JavaScript (xử lý logic động phía client).
Cơ sở dữ liệu MongoDB - Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (Document DBMS).
- Lưu trữ dữ liệu linh hoạt dưới định dạng JSON/BSON, hỗ trợ cơ chế sao chép (Replication), phân mảnh (Sharding) và truy vấn phức tạp không cần cấu trúc lược đồ cố định.

Phương pháp nghiên cứu và phát triển

  • Phương pháp khảo sát và thu thập thông tin: Tiếp cận qua trao đổi với giảng viên hướng dẫn, người có kinh nghiệm trong ngành công nghệ thông tin và khảo sát trải nghiệm giao diện/tính năng tại các website thương mại điện tử thực tế.
  • Phương pháp thực nghiệm công nghệ: Sinh viên vận dụng kiến thức tích lũy từ quá trình thực tập công nghệ tại doanh nghiệp để trực tiếp xây dựng ứng dụng với stack React.js - Node.js - MongoDB.
  • Phương pháp phân tích và mô hình hóa: Sử dụng phương pháp hướng đối tượng kết hợp ngôn ngữ mô hình hóa UML để xây dựng biểu đồ Use Case (tổng quát, phân rã), biểu đồ hoạt động (Activity Diagram) và biểu đồ tuần tự (Sequence Diagram).
  • Phương pháp kiểm thử phần mềm: Áp dụng phương pháp kiểm thử hộp đen (Black-box testing) qua việc xây dựng các ca kiểm thử (test cases) có giả định đầu vào, điều kiện tiên quyết, kết quả mong đợi và kết quả thực tế.

Thiết kế và triển khai

Phân tích tác nhân và chức năng hệ thống

Hệ thống xác định 2 tác nhân chính tham gia tương tác:

  • Người quản lý (Admin): Người có toàn quyền quản trị, điều khiển và kiểm soát mọi hoạt động của website, sử dụng toàn bộ các chức năng quản lý danh mục, sản phẩm, đơn hàng và người dùng.
  • Người dùng: Khách truy cập website, có thể đăng ký tài khoản thành viên hoặc duyệt web với tư cách khách vãng lai, được cấp các quyền tương tác theo phân quyền.

Hệ thống được thiết kế với 10 nhóm chức năng nghiệp vụ trọng tâm:

  1. Đăng nhập: Cho phép người dùng và quản trị viên đăng nhập hệ thống.
  2. Đăng ký: Cho phép người dùng đăng ký tài khoản thành viên mới.
  3. Đặt mua: Lựa chọn và đưa sản phẩm vào danh sách mua hàng.
  4. Thanh toán: Nhập thông tin giao hàng và xác nhận thanh toán đơn hàng.
  5. Xem thông tin sản phẩm: Hiển thị chi tiết thông tin, hình ảnh, giá cả hàng hóa.
  6. Tìm kiếm sản phẩm: Tra cứu mặt hàng theo nhu cầu.
  7. Quản lý thông tin người dùng: Admin theo dõi, cập nhật hoặc xóa tài khoản người dùng.
  8. Quản lý thông tin sản phẩm: Admin thêm mới, sửa đổi hoặc xóa sản phẩm trong danh mục.
  9. Bán hàng: Chức năng cung cấp và phân phối sản phẩm trực tuyến.
  10. Quản lý đơn hàng: Admin tiếp nhận, xử lý và thống kê đơn đặt hàng.

Kiến trúc ca sử dụng và luồng xử lý (UML)

Đồ án xây dựng chi tiết 11 kịch bản đặc tả Use Case thuộc 4 hệ con:

  • Hệ thống đăng ký, đăng nhập: Đặc tả Use Case Đăng ký thành viên (kiểm tra tính hợp lệ của thông tin form, cập nhật CSDL) và Đăng nhập (kiểm tra email/mật khẩu, xử lý luồng nhánh khi sai thông tin).
  • Hệ thống xem thông tin: Đặc tả các Use Case Xem thông tin giỏ hàng (yêu cầu đăng nhập), Xem thông tin đơn hàng (dành cho Admin), Xem thông tin sản phẩm (công khai không cần đăng nhập), Xem thông tin cá nhân.
  • Hệ thống quản lý thông tin: Đặc tả Use Case Sửa thông tin cá nhân (thành viên), Quản lý sản phẩm (Admin thêm, sửa, xóa sản phẩm) và Quản lý thành viên (Admin xóa hoặc cập nhật người dùng).
  • Hệ thống mua hàng: Đặc tả Use Case Mua hàng (chọn sản phẩm, đưa vào giỏ hàng) và Thanh toán (tạo đơn hàng, nhập họ tên, địa chỉ, số điện thoại).

Hệ thống quy trình được trực quan hóa thông qua 5 biểu đồ hoạt động (Đăng ký, Đăng nhập, Sửa thông tin cá nhân, Quản lý danh sách thành viên, Mua hàng) và 5 biểu đồ tuần tự tương ứng mô tả tương tác giữa Giao diện (View/Form), Bộ điều khiển (Controller) và Cơ sở dữ liệu (Database/Model).

Thiết kế giao diện và kết quả kiểm thử

Hệ thống được xây dựng và bố trí với 8 màn hình giao diện chính:

  • Màn hình Đăng nhập (Hình 4.1) và Đăng ký (Hình 4.2).
  • Màn hình Trang chủ (Hình 4.3) trưng bày danh mục và sản phẩm nổi bật.
  • Màn hình Chi tiết sản phẩm (Hình 4.4) và Màn hình Giỏ hàng (Hình 4.5).
  • Màn hình Thông tin người dùng/cá nhân (Hình 4.6).
  • Màn hình Quản trị: Quản lý người dùng (Hình 4.7) và Quản lý sản phẩm (Hình 4.8).

Về kiểm thử, tác giả thiết lập quy trình kiểm thử chức năng cho 7 hạng mục: Kiểm thử đăng ký, Kiểm thử đăng nhập, Kiểm thử thêm sản phẩm, Kiểm thử cập nhật sản phẩm, Kiểm thử xóa sản phẩm, Kiểm thử tìm kiếm sản phẩm và Kiểm thử xóa người dùng. Trong đó, ca kiểm thử đăng ký tài khoản với dữ liệu giả định (username = "ADMIN", pass = "123456") kiểm tra trường hợp bỏ trống trường dữ liệu, hệ thống trả về thông báo lỗi hợp lệ và đạt kết quả Pass.


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

Chương 1: Tổng quan

Chương này trình bày lý do lựa chọn đề tài, tính cấp thiết của thương mại điện tử trong bối cảnh kỹ thuật số, mục đích và ý nghĩa thực tiễn của đề tài. Tác giả đặt bài toán xây dựng website bán hàng trực tuyến, phân tích chi tiết các yêu cầu chức năng cho hai phân hệ: Khách hàng (giao diện thân thiện, giỏ hàng, đặt hàng, phản hồi) và Giao diện quản trị (thêm/sửa/xóa sản phẩm, xử lý đơn hàng, thống kê). Chương 1 cũng nêu rõ các khó khăn trong quá trình phát triển dự án độc lập (hạn chế về kiến thức thực tế, công nghệ thay đổi nhanh) cùng giải pháp tự học hỏi và tham vấn chuyên môn.

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

Chương 2 tập trung phân tích nền tảng lý luận về thương mại điện tử, bao gồm khái niệm (theo WTO, APEC), lợi ích kinh tế (mở rộng đối tác, giảm chi phí văn phòng/mặt bằng/in ấn, nắm bắt thị hiếu) và các yêu cầu bắt buộc (cơ sở hạ tầng, độ tin cậy, an toàn bảo mật, bản quyền). Đồng thời, tác giả giới thiệu chi tiết các công nghệ phát triển phần mềm gồm:

  • Môi trường Node.js (nguồn gốc từ Joyent, V8 engine, cơ chế bất đồng bộ, các ứng dụng như Websocket, Ad server).
  • Thư viện React.js (tính năng JSX, Virtual-DOM, luồng dữ liệu một chiều).
  • Bộ ba công nghệ giao diện HTML, CSS (Internal, Inline, External CSS) và JavaScript.
  • Hệ quản trị cơ sở dữ liệu NoSQL MongoDB (JSON/BSON, Replication, Sharding).
  • Mô hình kiến trúc phần mềm MVC (phân chia trách nhiệm Model - View - Controller).

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

Đây là chương trọng tâm về kỹ thuật phần mềm của đồ án. Tác giả xác định chi tiết bảng tác nhân (Người quản lý, Người dùng) và bảng 10 chức năng hệ thống. Hệ thống biểu đồ Use Case được xây dựng từ mức tổng quát đến phân rã chi tiết cho từng tác nhân và từng nghiệp vụ (đăng nhập, quản lý thông tin, quản lý người dùng, quản lý sản phẩm, mua hàng, quản lý đơn hàng). Tác giả cung cấp 11 bảng đặc tả Use Case đầy đủ các trường (Tác nhân, Mô tả, Tiền điều kiện, Luồng sự kiện chính, Luồng nhánh A1, Hậu điều kiện), kết hợp hệ thống Biểu đồ hoạt động và Biểu đồ tuần tự làm cơ sở lập trình hệ thống.

Chương 4: Triển khai hệ thống

Chương 4 thể hiện kết quả xây dựng giao diện thực tế của website thông qua 8 màn hình chức năng (Đăng nhập, Đăng ký, Trang chủ, Chi tiết sản phẩm, Giỏ hàng, Thông tin cá nhân, Quản lý người dùng, Quản lý sản phẩm). Bên cạnh đó, chương này đề cập đến việc tổ chức kiểm thử chức năng với 7 ca kiểm thử chính nhằm rà soát các tính năng đăng ký, đăng nhập, tìm kiếm và quản lý sản phẩm/người dùng.

Chương 5: Tổng quát

Chương 5 là phần tổng kết đồ án, khái quát lại toàn bộ quá trình nghiên cứu, phân tích, thiết kế và hiện thực hóa website bán hàng trực tuyến dựa trên các mục tiêu đã đề ra ban đầu.


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

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

  • Hoàn thành tài liệu phân tích và thiết kế hệ thống website bán hàng trực tuyến với đầy đủ các sơ đồ UML (Use Case tổng quát/phân rã, 5 biểu đồ hoạt động, 5 biểu đồ tuần tự) và 11 bảng đặc tả ca sử dụng chi tiết.
  • Hiện thực hóa thành công giao diện và các chức năng cơ bản của một website thương mại điện tử gồm: phân hệ người dùng (đăng ký, đăng nhập, xem sản phẩm, quản lý giỏ hàng, đặt hàng) và phân hệ quản trị (quản lý danh mục/sản phẩm, quản lý tài khoản người dùng).
  • Áp dụng thành công ngăn xếp công nghệ JavaScript/NoSQL bao gồm React.js cho phía giao diện, Node.js cho phía máy chủ và MongoDB cho việc lưu trữ dữ liệu tài liệu linh hoạt theo kiến trúc MVC.
  • Thực hiện kiểm thử chức năng hộp đen cho các luồng nghiệp vụ cơ bản (đăng ký, đăng nhập, CRUD sản phẩm, quản lý người dùng).

Đóng góp thực tiễn của đề tài

  • Cung cấp một mô hình ứng dụng web thương mại điện tử thực tế, giúp sinh viên làm quen với quy trình phát triển phần mềm theo tiêu chuẩn ngành CNTT.
  • Tổng hợp hệ thống lý thuyết nền tảng về TMĐT và hướng dẫn tích hợp các công nghệ web hiện đại (React.js, Node.js, MongoDB), phục vụ cho nhu cầu ứng dụng công nghệ thông tin vào chuyển đổi số kinh doanh.

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

Hạn chế của đồ án

Theo nhận xét chính thức từ Giảng viên hướng dẫn (TS. Mai Xuân Tráng) và tự đánh giá của tác giả trong đồ án:

  • Về mặt học thuật và hình thức: Bố cục của quyển báo cáo đồ án chưa thực sự rõ ràng, cần được hoàn thiện và cập nhật ở bản nộp cuối; danh mục tài liệu tham khảo chưa được phân loại rõ ràng và đầy đủ.
  • Về mặt tính năng hệ thống: Một số chức năng quan trọng của một hệ thống thương mại điện tử hoàn chỉnh vẫn chưa được triển khai đầy đủ; mức độ hoàn thành đáp ứng yêu cầu đồ án tốt nghiệp ở mức "tạm chấp nhận được".
  • Về quy trình thực hiện: Quá trình triển khai đề tài được thực hiện hoàn toàn theo hướng cá nhân, chưa có sự giao lưu ý tưởng đội nhóm, kiến thức thực tế của sinh viên còn những giới hạn nhất định.

Hướng mở rộng và phát triển tiếp theo

Dựa trên phạm vi bài toán và các nội dung tác giả đã đề xuất:

  • Phát triển và hoàn thiện các tính năng nâng cao cho website như: hệ thống gợi ý sản phẩm thông minh dựa trên phân tích hành vi người dùng, tìm kiếm nâng cao, tích hợp menu động cho phép quản trị viên tùy chỉnh linh hoạt.
  • Xây dựng hoàn chỉnh mô-đun thống kê doanh thu chi tiết và báo cáo phân tích khách hàng theo từng khoảng thời gian nhất định.
  • Tối ưu hóa các thuật toán xử lý dữ liệu để nâng cao hiệu năng và mở rộng quy mô hệ thống.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo hữu ích cho:

  • Đối tượng sinh viên: Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm hoặc Hệ thống thông tin đang chuẩn bị làm đồ án tốt nghiệp, đồ án môn học hoặc bài tập lớn về đề tài thương mại điện tử / website bán hàng.
  • Phần nội dung có giá trị tham khảo cao nhất:
    • Chương 3 (Phân tích hệ thống): Cung cấp mẫu đặc tả ca sử dụng (Use Case Specification) chuẩn mực với đầy đủ luồng sự kiện chính/phụ và hệ thống biểu đồ phân tích UML (Usecase, Activity, Sequence Diagrams) cho bài toán mua bán trực tuyến.
    • Chương 2 (Cơ sở lý thuyết): Tài liệu tổng hợp ngắn gọn, súc tích về các khái niệm cốt lõi của thương mại điện tử, thư viện React.js (JSX, Virtual-DOM), nền tảng Node.js, cơ sở dữ liệu MongoDB và mô hình MVC.

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

1. Đồ án sử dụng kiến trúc và ngăn xếp công nghệ nào để xây dựng website?

Đồ án áp dụng mô hình kiến trúc MVC (Model - View - Controller). Ngăn xếp công nghệ được triển khai bao gồm: Front-end sử dụng React.js kết hợp HTML, CSS và JavaScript; Back-end sử dụng nền tảng Node.js; Cơ sở dữ liệu sử dụng hệ quản trị NoSQL MongoDB.

2. Phân hệ Quản trị (Admin) trong hệ thống được thiết kế với những chức năng chính nào?

Giao diện quản trị được cấp tài khoản riêng để kiểm soát toàn bộ ứng dụng, gồm các chức năng: thêm, sửa, xóa sản phẩm trong CSDL; tiếp nhận và xử lý đơn đặt hàng của khách; quản lý và cập nhật danh sách người dùng; thống kê doanh thu và hỗ trợ tùy chỉnh menu giao diện.

3. Ưu điểm của cơ chế Virtual-DOM trong React.js được tác giả nêu ra là gì?

Theo lý thuyết trình bày trong Chương 2, Virtual-DOM của React.js vừa đóng vai trò là Model vừa đóng vai trò là View. Mọi sự thay đổi trên Model đều được phản ánh đồng bộ sang View và ngược lại, giúp tối ưu hóa tốc độ truy cập và tăng độ mượt mà khi tải trang web.

4. Giảng viên hướng dẫn đưa ra đánh giá như thế nào về chất lượng đồ án?

TS. Mai Xuân Tráng nhận xét sinh viên đã có quá trình học hỏi công nghệ React.js từ thực tế công ty để xây dựng hệ thống. Đồ án xây dựng được một số chức năng cơ bản nhưng một số chức năng quan trọng vẫn chưa triển khai đầy đủ, bố cục báo cáo và tài liệu tham khảo chưa rõ ràng; kết quả đáp ứng yêu cầu tốt nghiệp ngành CNTT ở mức tạm chấp nhận được và đồng ý cho bảo vệ.

5. Những kịch bản kiểm thử chức năng nào đã được thiết kế trong đồ án?

Đồ án thiết kế 7 ca kiểm thử chức năng hộp đen bao gồm: Kiểm thử đăng ký tài khoản, Kiểm thử đăng nhập, Kiểm thử thêm sản phẩm, Kiểm thử cập nhật sản phẩm, Kiểm thử xóa sản phẩm, Kiểm thử tìm kiếm sản phẩm và Kiểm thử xóa người dùng.


Kết luận

Đồ án tốt nghiệp "Xây dựng website bán hàng trực tuyến" của sinh viên Nguyễn Tuấn Dương đã hoàn thành việc khảo sát, phân tích thiết kế hệ thống và xây dựng thành công phiên bản thử nghiệm website thương mại điện tử sử dụng ngăn xếp công nghệ Node.js, React.js và MongoDB. Báo cáo thể hiện chi tiết quy trình kỹ thuật phần mềm thông qua hệ thống biểu đồ UML và đặc tả Use Case cho hai phân hệ người dùng và quản trị. Dù còn một số hạn chế về chiều sâu tính năng và cách thức trình bày báo cáo theo đánh giá của giảng viên hướng dẫn, đồ án vẫn cung cấp một tài liệu tham khảo thực tế, hữu ích cho sinh viên công nghệ thông tin trong việc nghiên cứu và phát triển các ứng dụng web thương mại điện tử.