Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh thị trường kinh doanh thế kỷ 21, thương mại điện tử đã trở thành một xu thế phổ biến, mang lại lợi thế về việc tối ưu hóa chi phí vận hành và nâng cao hiệu quả tiếp cận so với mô hình bán hàng truyền thống. Sự phát triển của hạ tầng Internet, dịch vụ vận chuyển tận nơi và các phương thức thanh toán linh hoạt đã thúc đẩy thói quen mua sắm trực tuyến của người tiêu dùng. Cùng với xu hướng đó, nhu cầu trao đổi, tái sử dụng các mặt hàng đã qua sử dụng (đồ secondhand), đặc biệt là quần áo, ngày càng gia tăng nhằm tiết kiệm chi phí và khai thác giá trị sử dụng còn lại của sản phẩm. Tuy nhiên, việc mua bán đồ cũ trên các kênh truyền thống hoặc các trang mạng xã hội thường gặp bất cập về tính minh bạch thông tin, quy trình giao dịch phân tán và thiếu công cụ quản lý tập trung.
Xuất phát từ thực tiễn trên, khóa luận tốt nghiệp ngành Công nghệ Thông tin (chuyên ngành Công nghệ Phần mềm) tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh của nhóm tác giả Lâm Tâm Như và Trần Hữu Khánh Vy đã lựa chọn đề tài: "Xây dựng website thương mại điện tử về đồ secondhand".
Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể trong đề cương khóa luận bao gồm:
- Nhiệm vụ lý thuyết: Tìm hiểu về nền tảng Node.js, thư viện ReactJS và các công cụ, thư viện hỗ trợ xây dựng hệ thống website thương mại điện tử.
- Nhiệm vụ thực hành:
- Nghiên cứu và xây dựng hệ thống Application Programming Interfaces (APIs) xử lý nghiệp vụ back-end bằng Node.js.
- Thiết kế và hiện thực giao diện người dùng (Front-end) bằng ReactJS.
- Ứng dụng hệ quản trị cơ sở dữ liệu NoSQL MongoDB để tổ chức, lưu trữ và truy xuất toàn bộ dữ liệu của hệ thống.
- Mục tiêu ứng dụng: Xây dựng một website hoạt động hoàn chỉnh, đáp ứng nhu cầu giao dịch hàng secondhand giữa người mua và người bán, đồng thời cung cấp công cụ kiểm soát cho quản trị viên.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ thương mại điện tử dành cho ngành hàng secondhand; kiến trúc phát triển ứng dụng web hiện đại (ReactJS, Node.js, MongoDB).
- Phạm vi thời gian: Đề tài được triển khai thực hiện từ ngày 04/09/2023 đến ngày 30/12/2023 và hoàn thành bảo vệ vào tháng 01/2024.
- Phạm vi không gian: Đồ án thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
Cơ sở lý thuyết và phương pháp
Khóa luận áp dụng mô hình phát triển phần mềm dựa trên nền tảng JavaScript toàn diện (Full-stack JavaScript), phân tách độc lập giữa tầng giao diện người dùng và tầng xử lý nghiệp vụ máy chủ.
Khung công nghệ sử dụng
Hệ thống được xây dựng dựa trên ba trụ cột công nghệ chính:
-
ReactJS (Front-end):
- Bản chất là thư viện JavaScript mã nguồn mở chuyên biệt cho việc xây dựng giao diện người dùng (UI) tương tác thông qua cú pháp mở rộng JSX, cho phép lồng ghép mã HTML trong JavaScript.
- Ứng dụng kiến trúc dựa trên thành phần (Component-based), chia giao diện thành các khối độc lập (Function component và Class component) có khả năng tái sử dụng.
- Ứng dụng cơ chế Virtual DOM (DOM ảo) kết hợp thuật toán so khớp (diffing algorithm) để chỉ cập nhật các phần tử thay đổi trên DOM thực, giúp tối ưu hiệu năng hiển thị trong các ứng dụng đơn trang (Single-Page Applications - SPA).
- Tích hợp hệ sinh thái bổ trợ gồm React Router cho việc định tuyến, các công cụ quản lý trạng thái và thư viện giao diện như Material-UI.
-
Node.js (Back-end):
- Môi trường thực thi JavaScript phía máy chủ chạy trên nền tảng V8 Engine của Google Chrome, do Ryan Dahl phát triển.
- Vận hành theo mô hình hướng sự kiện (event-driven) và cơ chế vào/ra không chặn (non-blocking I/O), thích hợp cho việc xử lý đồng thời nhiều kết nối trong các hệ thống thời gian thực với lượng dữ liệu phân tán.
- Khả năng quản lý phụ thuộc thông qua Node Package Manager (NPM) và xử lý tập tin dung lượng lớn bằng kỹ thuật Stream. Tác giả cũng ghi nhận các hạn chế nội tại của nền tảng như độ phức tạp khi lồng ghép callback, khả năng tận dụng phần cứng đa lõi hạn chế và không tối ưu cho các tác vụ tính toán nặng về CPU.
-
MongoDB (Cơ sở dữ liệu):
- Hệ quản trị cơ sở dữ liệu mã nguồn mở thuộc nhóm NoSQL hướng tài liệu (Document-oriented database).
- Dữ liệu được lưu trữ dưới định dạng kiểu JSON (BSON) với cấu trúc linh hoạt theo Collection (thay thế khái niệm Table) và Document (thay thế khái niệm Row trong RDBMS).
- Khả năng mở rộng ngang (horizontal scaling) thông qua việc bổ sung các node vào cụm cluster. Tối ưu tốc độ truy xuất nhờ cơ chế ghi đệm trên bộ nhớ RAM và trường khóa chính
_id tự động đánh chỉ mục (index).
Phương pháp nghiên cứu
- Phương pháp khảo sát hiện trạng: Tiến hành phân tích, đối chiếu chức năng, ưu điểm và hạn chế của 3 trang web mua bán đồ cũ đang vận hành tại Việt Nam gồm Muaban.net, Sieuthihangcu.com và Vinasave.com nhằm xác định khoảng trống nghiệp vụ cần hoàn thiện.
- Phương pháp mô hình hóa hướng đối tượng: Sử dụng sơ đồ Use Case và sơ đồ tuần tự (Sequence Diagram) theo chuẩn UML để chuẩn hóa các yêu cầu người dùng thành các đặc tả kỹ thuật chi tiết.
- Phương pháp xây dựng hệ thống: Áp dụng mô hình kiến trúc phân tầng độc lập giữa Front-end và RESTful APIs Back-end, kết nối hệ quản trị dữ liệu NoSQL.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc tách biệt Client-Server. Phía Front-end phát triển bằng ReactJS chịu trách nhiệm hiển thị giao diện, điều hướng người dùng và gửi yêu cầu thông qua các HTTP request. Phía Back-end xây dựng trên Node.js tiếp nhận yêu cầu, xử lý logic nghiệp vụ, xác thực phân quyền và thao tác truy vấn dữ liệu từ MongoDB thông qua hệ thống RESTful API.
Phân tích tác nhân (Actors) và phân quyền
Hệ thống phân định rõ ranh giới trách nhiệm cho 4 nhóm tác nhân:
- Khách (Guest): Người dùng vãng lai chưa xác thực, có quyền tìm kiếm, xem danh mục, xem chi tiết sản phẩm và đăng ký tài khoản.
- Người mua (Customer): Người dùng đã đăng nhập hệ thống, có quyền quản lý thông tin cá nhân, đổi mật khẩu, quản lý giỏ hàng, đặt hàng, lựa chọn phương thức thanh toán, theo dõi trạng thái đơn hàng và gửi đánh giá sản phẩm.
- Người bán (Seller/Cửa hàng): Quản lý danh mục hàng hóa cá nhân, đăng bán sản phẩm mới, cập nhật giá và hình ảnh, tiếp nhận đơn đặt hàng, cập nhật trạng thái vận chuyển và theo dõi 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 người dùng, phân quyền vai trò, quản lý phân loại danh mục sản phẩm của hệ thống và trực tiếp thực hiện nhiệm vụ xác nhận tính hợp lệ của bài đăng bán trước khi sản phẩm được hiển thị công khai.
Tổng hợp danh mục Use Case
Hệ thống chuẩn hóa 16 Use Case chức năng chính được phân bổ cho các tác nhân như sau:
| Mã Use Case |
Tên Use Case |
Tác nhân chính (Actor) |
Mục tiêu chức năng |
| UC_001 |
Đăng ký |
Khách (Guest) |
Tạo tài khoản người dùng mới kèm xác thực OTP qua email |
| UC_002 |
Đăng nhập |
Người mua, Admin |
Xác thực người dùng bằng email/mật khẩu hoặc tài khoản mạng xã hội |
| UC_003 |
Đăng xuất |
Người mua, Admin |
Thoát phiên làm việc và chuyển hướng về trang chủ |
| UC_004 |
Xem/Tìm kiếm sản phẩm |
Khách, Người mua |
Tìm kiếm theo từ khóa, lọc theo danh mục, giá, thương hiệu, kích thước |
| UC_005 |
Quản lý tài khoản |
Người mua |
Chỉnh sửa thông tin cá nhân và ảnh đại diện |
| UC_006 |
Đổi mật khẩu |
Người mua |
Xác thực mật khẩu cũ và cập nhật mật khẩu mới |
| UC_007 |
Theo dõi đơn hàng |
Người mua |
Xem lịch sử mua hàng và chi tiết trạng thái đơn hàng |
| UC_008 |
Quản lý giỏ hàng |
Khách, Người mua |
Thêm sản phẩm, điều chỉnh số lượng (+/-) hoặc xóa khỏi giỏ |
| UC_009 |
Đặt hàng/Thanh toán |
Người mua |
Nhập địa chỉ nhận hàng, chọn phương thức thanh toán và tạo đơn |
| UC_010 |
Đánh giá |
Người mua |
Gửi phản hồi, số sao và bình luận về sản phẩm đã mua |
| UC_011 |
Quản lý sản phẩm |
Người bán |
Thêm mới, chỉnh sửa thông tin, giá và hình ảnh sản phẩm bán |
| UC_012 |
Quản lý loại sản phẩm |
Quản trị viên (Admin) |
Thêm, sửa, xóa các danh mục loại sản phẩm trên hệ thống |
| UC_013 |
Quản lý người dùng |
Quản trị viên (Admin) |
Xem danh sách, thêm tài khoản mới, điều chỉnh vai trò người dùng |
| UC_014 |
Quản lý đơn hàng |
Người bán |
Theo dõi danh sách đơn hàng và cập nhật trạng thái xử lý |
| UC_015 |
Quản lý đánh giá |
Người bán |
Giám sát danh sách phản hồi, đánh giá từ phía khách hàng |
| UC_016 |
Xác nhận sản phẩm |
Quản trị viên (Admin) |
Kiểm duyệt nội dung sản phẩm của người bán trước khi công khai |
Luồng xử lý kỹ thuật tiêu biểu
- Quy trình đăng ký tài khoản (UC_001): Hệ thống áp dụng cơ chế xác thực hai bước. Sau khi người dùng điền thông tin và gửi biểu mẫu, hệ thống tự động phát sinh mã One-Time Password (OTP) gửi về hòm thư điện tử. Người dùng bắt buộc phải nhập chính xác mã OTP trong phiên giao dịch để hệ thống kích hoạt và ghi nhận tài khoản vào cơ sở dữ liệu.
- Quy trình kiểm duyệt hàng hóa (UC_016): Nhằm giải quyết hạn chế về việc kiểm soát chất lượng đồ cũ, bài đăng từ Người bán không hiển thị ngay lập tức. Đơn đăng bán sẽ chuyển vào hàng đợi của Quản trị viên; sau khi Admin kiểm tra thông tin và nhấn xác nhận, sản phẩm mới chính thức xuất hiện trên trang sản phẩm công khai.
- Thiết kế phân hệ giao diện: Báo cáo xây dựng chi tiết giao diện cho 3 phân vùng độc lập: Phân hệ khách hàng (Trang chủ, Chi tiết sản phẩm, Giỏ hàng, Sổ địa chỉ, Chi tiết đơn hàng, Danh sách yêu thích); Phân hệ người bán (Bảng quản lý sản phẩm, Giao diện đăng tin bán hàng); Phân hệ quản trị (Bảng điều khiển quản lý người dùng, duyệt sản phẩm và cấu hình phân loại danh mục).
Nội dung chính theo từng chương
Phần mở đầu
Trình bày tính cấp thiết của đề tài trong bối cảnh thương mại điện tử phát triển mạnh và nhu cầu tiêu dùng đồ cũ tăng cao. Nêu rõ ý nghĩa thực tiễn của giải pháp đối với khách hàng (tiết kiệm chi phí, tra cứu giá minh bạch), người bán (giảm chi phí mặt bằng, theo dõi hàng tồn), người quản lý (báo cáo, thống kê) và nhóm sinh viên (làm chủ công nghệ mới). Báo cáo đồng thời công bố bảng phân công trách nhiệm: sinh viên Lâm Tâm Như chịu trách nhiệm nghiên cứu công nghệ và thiết kế chức năng phân hệ Người mua - Người bán; sinh viên Trần Hữu Khánh Vy chịu trách nhiệm nghiên cứu công nghệ và thiết kế chức năng phân hệ Quản trị viên (Admin), cả hai đều hoàn thành 100% khối lượng được giao.
Chương 1: Cơ sở lý thuyết
Tập trung làm rõ cơ sở lý thuyết của hệ thống kiến trúc ba thành phần ReactJS + Node.js + MongoDB:
- Phân tích nguyên lý hoạt động của ReactJS: quá trình khởi tạo ứng dụng, xây dựng cây phần tử, cơ chế kích hoạt hàm
render() khi trạng thái (state) thay đổi, và thuật toán diffing trên Virtual DOM giúp tối ưu hiệu năng hiển thị.
- Trình bày đặc tính kỹ thuật của Node.js: cơ chế non-blocking I/O, hệ thống gói NPM, khả năng xử lý luồng dữ liệu (Stream) cùng các hạn chế khi tương tác với hệ cơ sở dữ liệu quan hệ hoặc các tác vụ tiêu tốn nhiều tài nguyên CPU.
- Giới thiệu bản chất của MongoDB: mô hình lưu trữ JSON/BSON, nguyên lý ánh xạ cấu trúc (Collection tương đương Table, Document tương đương Row), và cơ chế lưu trữ đệm dữ liệu trên RAM hỗ trợ tăng tốc độ truy vấn.
Chương 2: Khảo sát hiện trạng và mô hình hóa chức năng
Nội dung chương ghi nhận kết quả khảo sát thực tế từ 3 website thương mại điện tử chuyên đồ cũ:
- Muaban.net: Tồn tại từ năm 2006, hỗ trợ danh mục hàng hóa đa dạng từ đồ gia dụng đến bất động sản, việc làm; nhược điểm là người mua phải tự liên hệ người bán qua số điện thoại cá nhân, thiếu bộ lọc chuyên sâu và chưa có tính năng đánh giá sản phẩm.
- Sieuthihangcu.com: Có tích hợp chức năng tư vấn và ký gửi đồ cũ; nhược điểm là giao diện chưa bắt mắt và chưa hỗ trợ đăng nhập liên kết mạng xã hội.
- Vinasave.com: Tốc độ tải trang nhanh, danh mục phong phú; nhược điểm là yêu cầu người mua phải liên hệ để nhận báo giá thủ công, thiếu cơ chế mua hàng tự động khép kín.
Dựa trên kết quả khảo sát, chương tiến hành xây dựng bảng phân tích yêu cầu người dùng, xác định 4 Actor chính và xây dựng bảng đặc tả chi tiết cho 16 Use Case từ UC_001 đến UC_016, bao gồm luồng sự kiện chính (Main Flow), luồng thay thế (Alternative) và luồng ngoại lệ (Exception).
Chương 3: Thiết kế hệ thống
Triển khai mô hình hóa chi tiết hệ thống phần mềm:
- Xây dựng hệ thống các sơ đồ tuần tự (Sequence Diagrams) mô tả sự tương tác qua lại giữa Actor, Giao diện (Boundary), Bộ điều khiển (Controller/API) và Cơ sở dữ liệu cho các ca sử dụng cốt lõi: Đăng ký, Đăng nhập, Đăng xuất, Tìm kiếm sản phẩm, Đổi mật khẩu, Quản lý tài khoản, Theo dõi đơn hàng.
- Trình bày thiết kế giao diện chi tiết bằng hình ảnh chụp màn hình thực tế cho toàn bộ các chức năng thuộc 3 phân hệ: Phía khách hàng (đăng nhập/đăng ký, trang chủ, xem chi tiết, giỏ hàng, đặt hàng, quản lý đơn hàng, đổi địa chỉ, đánh giá), Phía người bán (quản lý kho hàng, tạo sản phẩm mới) và Phía quản trị viên (quản lý phân quyền người dùng, quản trị danh mục và duyệt tin sản phẩm).
Chương 4: Cài đặt và kiểm thử
Ghi nhận quá trình hiện thực hóa các module mã nguồn dựa trên các thông số thiết kế đã đề ra, thiết lập kết nối giữa API Node.js và MongoDB, xây dựng các màn hình giao diện người dùng tương ứng bằng ReactJS và tiến hành kiểm thử các luồng chức năng đảm bảo tính ổn định của hệ thống trước khi vận hành.
Chương 5: Phần kết luận
Tổng kết toàn bộ quá trình thực hiện đồ án tốt nghiệp, đánh giá mức độ hoàn thành nhiệm vụ theo đề cương ban đầu về cả hai phương diện làm chủ công nghệ và xây dựng phần mềm ứng dụng, đồng thời nêu các định hướng phát triển hoàn thiện hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả kỹ thuật đạt được
-
Về mặt công nghệ:
- Làm chủ và ứng dụng thành công kiến trúc Full-stack JavaScript kết hợp giữa ReactJS, Node.js và MongoDB.
- Hiện thực thành công hệ thống RESTful API phục vụ giao tiếp dữ liệu giữa máy chủ và giao diện người dùng.
- Khai thác hiệu quả mô hình lưu trữ NoSQL JSON/BSON, tổ chức cơ sở dữ liệu có khả năng mở rộng linh hoạt cho các mặt hàng secondhand đa dạng thuộc tính.
-
Về mặt chương trình phần mềm:
- Hoàn thành đầy đủ 100% các khối lượng công việc được phân công cho 2 thành viên trong nhóm thực hiện.
- Xây dựng hoàn chỉnh các phân hệ chức năng tương ứng với 4 nhóm đối tượng: khách vãng lai, người mua, người bán và quản trị viên hệ thống.
- Thiết lập thành công quy trình giao dịch khép kín: Đăng ký tài khoản (có xác thực OTP qua email) $\rightarrow$ Đăng bán sản phẩm $\rightarrow$ Kiểm duyệt tin đăng bởi Admin $\rightarrow$ Tìm kiếm, lọc sản phẩm $\rightarrow$ Quản lý giỏ hàng $\rightarrow$ Đặt hàng và lưu vết trạng thái đơn hàng $\rightarrow$ Phản hồi, đánh giá chất lượng sản phẩm bằng số sao và bình luận.
Đóng góp thực tiễn so với các hệ thống khảo sát
Thông qua việc khảo sát các website đi trước, đồ án đã khắc phục được một số nhược điểm thực tế:
| Tiêu chí nghiệp vụ |
Muaban.net |
Sieuthihangcu.com |
Vinasave.com |
Hệ thống của đồ án |
| Quy trình đặt hàng |
Tự thỏa thuận qua số điện thoại |
Đặt hàng trực tuyến |
Yêu cầu báo giá thủ công |
Đặt hàng trực tuyến khép kín |
| Cơ chế đánh giá |
Chưa hỗ trợ |
Có hỗ trợ |
Chưa hỗ trợ |
Đánh giá số sao và bình luận (UC_010) |
| Kiểm duyệt bài đăng |
Rao vặt tự do |
Ký gửi nội bộ |
Hàng do đơn vị bán |
Quản trị viên duyệt trước khi công khai (UC_016) |
| Xác thực tài khoản |
Đăng ký cơ bản |
Đăng ký cơ bản |
Đăng ký cơ bản |
Xác thực tài khoản bằng OTP qua Email |
Hạn chế và hướng nghiên cứu tiếp
Hạn chế ghi nhận trong văn bản
- Tích hợp bên thứ ba: Khóa luận ghi nhận tính năng đăng nhập liên kết qua mạng xã hội (Facebook, Gmail) dù đã được đưa vào điều kiện tiên quyết trong đặc tả Use Case nhưng trên thực tế triển khai cần tiếp tục hoàn thiện cơ chế xác thực OAuth đồng bộ.
- Hạn chế nền tảng: Do sử dụng Node.js, hệ thống có những giới hạn nhất định trong việc xử lý các tác vụ phức tạp đòi hỏi nhiều tài nguyên xử lý của CPU hoặc các truy vấn ràng buộc quan hệ đa tầng mà cơ sở dữ liệu NoSQL không chuyên trách.
- Phạm vi nghiệp vụ: Hệ thống mới tập trung chủ yếu vào nhóm sản phẩm thời trang, quần áo đã qua sử dụng; chưa mở rộng sang các dịch vụ hậu cần phức tạp như tự động tính phí vận chuyển theo khoảng cách thực tế hoặc tích hợp cổng thanh toán trực tuyến của các ngân hàng thương mại.
Hướng phát triển đề tài
Theo đề xuất trong Chương 5 của khóa luận, các hướng nghiên cứu và mở rộng tiếp theo bao gồm:
- Tối ưu hóa hiệu năng hệ thống máy chủ Node.js và nâng cấp các cơ chế bộ nhớ đệm phục vụ truy vấn tải cao.
- Mở rộng tích hợp các cổng thanh toán điện tử (ví điện tử, thẻ ngân hàng) nhằm đa dạng hóa phương thức thanh toán ngoài phương thức nhận hàng trả tiền mặt.
- Hoàn thiện hệ thống báo cáo thống kê chuyên sâu dành cho người bán và quản trị viên, giúp phân tích chi tiết xu hướng các sản phẩm bán chạy để tối ưu kế hoạch kinh doanh.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các nhóm đối tượng:
- Sinh viên ngành Công nghệ thông tin và Công nghệ phần mềm: Cung cấp tài liệu tham khảo thực tế về cách triển khai một đồ án tốt nghiệp ứng dụng web từ khâu khảo sát hiện trạng, phân tích nghiệp vụ, mô hình hóa Use Case cho đến thiết kế giao diện và lập trình hệ thống bằng kiến trúc MERN stack (MongoDB, Express/Node.js, ReactJS).
- Lập trình viên phát triển web thương mại điện tử: Bản đặc tả chi tiết của 16 Use Case (mục 2.6 trong Chương 2) với đầy đủ luồng sự kiện chính, luồng thay thế và luồng ngoại lệ là tài liệu mẫu có giá trị cao trong việc thiết kế logic hệ thống quản lý kho, giỏ hàng, đơn hàng và phân quyền tài khoản đa vai trò.
- Người nghiên cứu nghiệp vụ bán hàng secondhand: Khung phân tích khảo sát đối chiếu 3 website lớn tại Việt Nam đem lại cái nhìn rõ nét về các điểm nghẽn nghiệp vụ trong việc giao dịch hàng đã qua sử dụng, từ đó gợi mở các giải pháp kỹ thuật phù hợp.
Câu hỏi thường gặp
1. Khóa luận giải quyết bài toán nghiệp vụ gì và tại sao lại chọn ngành hàng đồ secondhand?
Đề tài tập trung xây dựng nền tảng thương mại điện tử kết nối người mua và người bán quần áo, đồ dùng đã qua sử dụng. Lý do chọn phân khúc này xuất phát từ thực tế nhu cầu mua sắm đồ cũ giá rẻ tăng cao trong thời kỳ thương mại điện tử phát triển, nhưng các kênh bán hàng truyền thống lại thiếu sự tiện lợi, tốn chi phí mặt bằng của người bán và thiếu công cụ minh bạch thông tin giá cả, hình ảnh cho người tiêu dùng.
2. Kiến trúc công nghệ của hệ thống gồm những thành phần cụ thể nào?
Hệ thống được xây dựng trên kiến trúc Full-stack JavaScript gồm ba thành phần chính: ReactJS ở tầng Front-end (xây dựng giao diện Single-Page Application, sử dụng cú pháp JSX và Virtual DOM), Node.js chạy trên nền tảng V8 Engine ở tầng Back-end (cung cấp hệ thống RESTful API, hoạt động theo mô hình hướng sự kiện không chặn I/O), và MongoDB ở tầng dữ liệu (hệ quản trị NoSQL hướng tài liệu lưu trữ định dạng JSON/BSON).
3. Nhóm tác giả đã khảo sát những website thương mại điện tử nào trước khi thiết kế hệ thống?
Nhóm đã tiến hành khảo sát và đánh giá ưu - nhược điểm của 3 website mua bán đồ cũ tại Việt Nam gồm: Muaban.net (thành lập từ năm 2006, mạnh về rao vặt nhưng thiếu tính năng đánh giá và bộ lọc), Sieuthihangcu.com (có chức năng tư vấn và ký gửi nhưng giao diện chưa bắt mắt) và Vinasave.com (tốc độ tải nhanh nhưng quy trình mua bán phải liên hệ lấy báo giá thủ công).
4. Hệ thống phân quyền cho những nhóm người dùng nào và chức năng của từng nhóm là gì?
Hệ thống thiết lập 4 nhóm tác nhân (Actors):
- Khách (Guest): Xem, tìm kiếm sản phẩm theo bộ lọc và đăng ký tài khoản.
- Người mua (Customer): Quản lý thông tin, đổi mật khẩu, quản lý giỏ hàng, đặt hàng, theo dõi đơn và đánh giá số sao/bình luận.
- Người bán (Seller): Đăng tải sản phẩm mới, cập nhật giá/hình ảnh, quản lý các đơn hàng phát sinh và theo dõi đánh giá từ khách.
- Quản trị viên (Admin): Quản lý toàn bộ tài khoản người dùng, thiết lập danh mục loại sản phẩm và trực tiếp kiểm duyệt, xác nhận bài đăng sản phẩm của người bán trước khi cho phép hiển thị công khai.
5. Cơ chế bảo mật và xác thực khi đăng ký tài khoản (UC_001) được thực hiện như thế nào?
Theo đặc tả Use Case UC_001, khi người dùng điền biểu mẫu đăng ký và gửi yêu cầu, hệ thống không cấp tài khoản ngay mà kích hoạt luồng gửi mã xác thực One-Time Password (OTP) về địa chỉ email của người dùng. Người dùng phải truy cập email lấy mã OTP và nhập lại vào hệ thống để xác thực; chỉ khi mã OTP trùng khớp, tài khoản mới được tạo thành công trên cơ sở dữ liệu.
Kết luận
Đồ án tốt nghiệp "Xây dựng website thương mại điện tử về đồ secondhand" của sinh viên Lâm Tâm Như và Trần Hữu Khánh Vy đã giải quyết trọn vẹn mục tiêu nghiên cứu và hiện thực hóa một hệ thống phần mềm thương mại điện tử hoàn chỉnh. Bằng việc làm chủ và kết hợp hiệu quả bộ ba công nghệ ReactJS, Node.js và MongoDB, nhóm tác giả đã xây dựng thành công nền tảng giao dịch khép kín, phân quyền rõ ràng cho 4 nhóm tác nhân với 16 ca sử dụng cụ thể. Đồ án không chỉ đáp ứng tốt các yêu cầu học thuật của chuyên ngành Công nghệ phần mềm mà còn mang tính ứng dụng thực tiễn cao, đóng góp một mô hình kỹ thuật khả thi cho thị trường trao đổi hàng hóa đã qua sử dụng.