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

Đề tài "Xây dựng website bán sản phẩm công nghệ sử dụng Golang và ReactJS" được thực hiện bởi nhóm sinh viên Hoàng Nhựt Khánh Ngân, Lê Hoàng Mai Ngân và Nguyễn Thanh Minh Đức dưới sự hướng dẫn của TS. Lê Văn Vinh tại Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh. Khóa luận được giao ngày 04/03/2024 và hoàn thành nghiệm thu vào ngày 10/07/2024 (thuộc khóa đào tạo 2019 – 2023).

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

Trong bối cảnh cuộc Cách mạng công nghiệp lần thứ tư, công nghệ thông tin đã trở thành nền tảng và động lực phát triển then chốt trong mọi lĩnh vực kinh tế - xã hội. Nhu cầu giao dịch, mua sắm nhanh chóng, tiện lợi của người tiêu dùng gia tăng thúc đẩy các nền tảng thương mại điện tử phát triển mạnh mẽ. Website thương mại điện tử đóng vai trò là phương tiện kết nối trực tiếp, thu hẹp khoảng cách địa lý giữa doanh nghiệp và khách hàng toàn cầu, đồng thời đóng vai trò là kênh xây dựng nhận diện thương hiệu, truyền tải thông điệp, tối ưu trải nghiệm và tiếp nhận phản hồi từ người dùng. Nhận thức được nhu cầu thực tiễn đó, nhóm tác giả đã lựa chọn nghiên cứu và xây dựng một hệ thống website thương mại điện tử chuyên biệt cho ngành hàng sản phẩm công nghệ.

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

Mục tiêu nghiên cứu của đồ án được văn bản phân định rõ thành mục tiêu tổng quát và các mục tiêu cụ thể:

  1. Mục tiêu chính: Tìm hiểu và áp dụng các kiến thức chuyên ngành đã tích lũy nhằm xây dựng hoàn thiện một ứng dụng web thương mại điện tử phục vụ nhu cầu tiếp cận khách hàng và giao dịch trực tuyến của doanh nghiệp.
  2. Mục tiêu cụ thể:
    • Nghiên cứu và ứng dụng thực hành hai công nghệ chính là thư viện ReactJS cho tầng giao diện (Front-End) và ngôn ngữ Golang cho tầng xử lý nghiệp vụ (Back-End).
    • Thiết kế và hiện thực hóa hệ thống đáp ứng đầy đủ các nhóm yêu cầu chức năng cho hai đối tượng người dùng chính: Khách hàng (đăng ký, quản lý tài khoản, xem chi tiết, lọc/tìm kiếm, giỏ hàng, đặt hàng, so sánh sản phẩm, danh sách yêu thích, đánh giá/bình luận, lịch sử đơn hàng) và Quản trị viên (quản lý người dùng, sản phẩm, danh mục loại sản phẩm, nhãn hàng, đơn hàng, chương trình giảm giá, mã giảm giá, tồn kho).
    • Đảm bảo các chỉ số phi chức năng: giao diện trực quan, tốc độ tải và phản hồi của API đạt ngưỡng dưới 5 giây, tỉ lệ lỗi hệ thống dưới 5%, tỉ lệ sai số giao dịch dưới 0.05%, bảo mật phân quyền với JSON Web Token.

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

  • Đối tượng nghiên cứu:
    • Khảo sát các tính năng, cấu trúc giao diện và hạn chế thực tế của 5 website thương mại điện tử lớn trong nước và quốc tế (Thế giới di động, FPT Shop, CellphoneS, Newegg, BestBuy).
    • Nhu cầu giao dịch mua sắm thiết bị công nghệ trực tuyến của khách hàng cá nhân.
    • Các công nghệ phát triển phần mềm gồm: ngôn ngữ lập trình Golang, kiến trúc RESTful API, hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL, thư viện ReactJS, công cụ quản lý trạng thái Redux, giao thức xác thực JSON Web Token (JWT) và môi trường phát triển Visual Studio Code.
  • Phạm vi nghiên cứu:
    • Không gian và nghiệp vụ: Xây dựng giải pháp phần mềm dạng Web Application (tên định danh sản phẩm trong nhiệm vụ: Etterath) bán lẻ sản phẩm công nghệ. Hệ thống bao quát toàn bộ luồng nghiệp vụ từ đăng ký, duyệt sản phẩm, so sánh thông số kỹ thuật, quản lý giỏ hàng, áp dụng giảm giá, thanh toán, quản lý đơn hàng của khách hàng đến quy trình vận hành, thống kê danh mục, quản lý kho và xử lý đơn hàng của quản trị viên.
    • Thời gian thực hiện: Từ tháng 03/2024 đến tháng 07/2024.

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

Khung lý thuyết và công nghệ nền tảng

Hệ thống được thiết kế dựa trên các nền tảng lý thuyết và công nghệ kỹ thuật phần mềm hiện đại:

  • Tầng giao diện người dùng (Front-End): Ứng dụng thư viện ReactJS (phiên bản kế thừa kiến trúc mã nguồn mở của Facebook phát triển từ năm 2013). Khung lý thuyết tập trung vào mô hình ứng dụng đơn trang (Single Page Application - SPA), cơ chế DOM ảo (Virtual DOM) nhằm giảm thiểu việc tái kết xuất toàn bộ cây DOM thực, cú pháp mở rộng JavaScript XML (JSX), phân tách giao diện dựa trên Component (gồm Function Component và Class Component), cơ chế truyền nhận dữ liệu qua Props và kiểm soát trạng thái nội bộ bằng State. Vòng đời thành phần (Component Life Cycle) được phân tích qua 3 giai đoạn: Khởi tạo (Mounting: constructor, render, componentDidMount), Cập nhật (Updating: componentDidUpdate) và Hủy bỏ (Unmounting: componentWillUnmount). Ngoài ra, hệ thống tích hợp Redux để quản trị trạng thái tập trung.
  • Tầng dịch vụ máy chủ (Back-End): Sử dụng ngôn ngữ lập trình Golang (Go do Google phát triển từ năm 2007) để xây dựng hệ thống API theo chuẩn kiến trúc RESTful. Lý thuyết Golang khai thác mô hình xử lý đồng thời dựa trên Goroutines và Channels, cơ chế biên dịch trực tiếp sang mã máy, kiểu tĩnh, cú pháp khai báo rút gọn :=, mô hình hướng đối tượng dựa trên Struct và Interface thay cho hệ thống phân cấp Class truyền thống, cùng cơ chế tự động dọn rác bộ nhớ (Garbage Collection).
  • Hệ quản trị cơ sở dữ liệu: PostgreSQL (hệ quản trị cơ sở dữ liệu quan hệ - đối tượng RDBMS phát triển từ dự án POSTGRES 4.2 tại Đại học California, Berkeley). Hệ thống tận dụng các tính năng nâng cao như điều khiển đồng thời đa phiên bản (MVCC), ghi nhật ký trước (Write-Ahead Logging - WAL), khôi phục dữ liệu tại một thời điểm (Point-In-Time-Recovery - PITR), hỗ trợ các kiểu dữ liệu phong phú (JSON/JSONB, UUID, mảng, kiểu hình học) và các cơ chế ràng buộc toàn vẹn dữ liệu chặt chẽ (Primary Key, Foreign Key, Unique, Check Constraint).
  • Cơ chế xác thực và bảo mật: Công nghệ JSON Web Token (JWT) được áp dụng để xác thực không lưu trạng thái (stateless authentication) và phân quyền kiểm soát luồng truy cập API giữa các nhóm người dùng (Guest, Customer, Admin).

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

Khóa luận kết hợp đồng bộ các phương pháp kỹ thuật phần mềm:

  1. Phương pháp khảo sát và phân tích so sánh hiện trạng: Khảo sát thực nghiệm trên 5 website thương mại điện tử hoạt động thực tế để rút ra các ưu điểm cần học hỏi và hạn chế cần khắc phục.
  2. Phương pháp mô hình hóa và đặc tả yêu cầu: Sử dụng ngôn ngữ mô hình hóa thống nhất UML để xây dựng sơ đồ trường hợp sử dụng (Use Case Diagram), bảng đặc tả Use Case chi tiết và sơ đồ tuần tự (Sequence Diagram) cho 14 chức năng trọng yếu.
  3. Phương pháp thiết kế dữ liệu: Thiết kế lược đồ thực thể kết hợp (ERD) và chuyển hóa thành cấu trúc bảng/tập dữ liệu (Collections/Tables) trong cơ sở dữ liệu quan hệ.
  4. Phương pháp kiểm thử phần mềm: Thực hiện kiểm thử hộp đen (Black-box testing) cho kiểm thử chức năng và đo lường các tiêu chí kỹ thuật cho kiểm thử phi chức năng.
Nền tảng khảo sát Ưu điểm ghi nhận Hạn chế ghi nhận
Thế giới di động Phân loại khoa học, tốc độ phản hồi nhanh, bài viết hỗ trợ phong phú, thông tin phản hồi rõ ràng. Giao diện quá nhiều banner màu sắc gây rối mắt; hình thức thanh toán/trả góp thủ tục phức tạp; chưa có live chat.
FPT Shop Bố cục dễ dùng, hình ảnh phong phú, hỗ trợ tính năng so sánh sản phẩm, tư vấn trực tiếp qua Zalo. Hệ thống dễ nghẽn giờ cao điểm; bước xuất hóa đơn dễ bị treo; tốc độ nâng cấp hệ thống chưa kịp quy mô cửa hàng.
CellphoneS Có khung giờ Flashsale, không có quảng cáo khó chịu, hỗ trợ chat tư vấn trực tiếp, giao hàng nhanh. Danh mục sản phẩm chưa thật sự bao quát, thông số kỹ thuật chưa làm nổi bật, nhiều banner gây rối mắt.
Newegg Cung cấp hơn 3 triệu sản phẩm, mô tả chi tiết, hỗ trợ đa ngôn ngữ, công cụ tìm kiếm và so sánh mạnh mẽ. Giao diện trang chi tiết sản phẩm chia quá nhiều tiểu mục nhỏ gây rối mắt cho người dùng.
BestBuy Bố cục khoa học, thông số chi tiết, có tính năng so sánh và lưu lịch sử so sánh sản phẩm, hỗ trợ sửa chữa. Hạn chế theo vùng miền và ngôn ngữ, chính sách giá khắt khe, chưa tối ưu cho các nhà bán lẻ nhỏ.

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

Kiến trúc phần mềm và ngăn xếp công nghệ

Hệ thống được xây dựng theo mô hình phân tách độc lập Client - Server thông qua giao diện lập trình ứng dụng RESTful API:

  • Tầng Client (Front-End): Viết bằng ReactJS kết hợp Redux, định tuyến các trang ứng dụng đơn (SPA), gửi các yêu cầu bất đồng bộ (Asynchronous HTTP Requests) qua các phương thức HTTP (GET, POST, PUT, DELETE) tới máy chủ.
  • Tầng Server (Back-End): Viết bằng Golang, tiếp nhận các yêu cầu HTTP, kiểm tra mã xác thực JWT trong phần tiêu đề (Header), thực thi logic nghiệp vụ qua các hàm xử lý định tuyến và truy vấn dữ liệu.
  • Tầng lưu trữ dữ liệu (Database): Cài đặt trên PostgreSQL, chịu trách nhiệm lưu trữ cấu trúc, duy trì toàn vẹn quan hệ và thực thi các truy vấn nghiệp vụ.

Cấu trúc cơ sở dữ liệu

Cơ sở dữ liệu của đồ án được đặc tả chi tiết thành 28 bảng/tập dữ liệu (Collections/Tables), bao quát toàn bộ quy trình thương mại điện tử:

Nhóm chức năng dữ liệu Tên bảng / Collection trong hệ thống
Người dùng và Bảo mật users, addresses, user_addresses, countries, wallets, transactions, refresh_sessions, otp_sessions
Sản phẩm và Thuộc tính products, product_items, brands, categories, product_images, variations, variation_options, product_configurations
Giỏ hàng và Tương tác carts, cart_items, wish_lists
Khuyến mãi và Giảm giá offers, offer_products, offer_categories, coupons, coupon_users
Đơn hàng và Thanh toán shop_orders, payment_methods, order_statuses, order_returns

Quy trình kiểm thử và các thông số kỹ thuật

Quá trình kiểm định chất lượng phần mềm được thiết lập dựa trên bảng chỉ số yêu cầu phi chức năng:

  • Thời gian phản hồi API: Toàn bộ các API xử lý giao dịch và truy vấn dữ liệu được yêu cầu và đo lường đạt tốc độ phản hồi dưới 5 giây.
  • Tính an toàn của dữ liệu: Mọi tương tác làm biến động trạng thái hoặc thay đổi cơ sở dữ liệu bắt buộc phải sử dụng phương thức HTTP POST.
  • Độ tin cậy và chính xác: Tỉ lệ phát sinh lỗi hệ thống trong quá trình vận hành kiểm thử được khống chế ở mức dưới 5%; tỉ lệ sai số dữ liệu đối soát không vượt quá 0.05%.
  • Sao lưu và truyền thông: Thiết lập tiến trình sao lưu định kỳ cơ sở dữ liệu với tần suất 1 tháng một lần; cấu hình module tự động gửi email thông báo xác nhận đơn hàng đến hộp thư của khách hàng ngay sau khi thao tác đặt hàng hoàn tất.

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

Chương 1: Phần mở đầu

Chương 1 thiết lập toàn bộ cơ sở đề dẫn của đề tài nghiên cứu. Tác giả luận giải tính cấp thiết của thương mại điện tử trong thời đại số, nhấn mạnh vai trò của website bán hàng trực tuyến như một công cụ tiếp cận hàng triệu khách hàng toàn cầu và tối ưu chi phí vận hành. Mục tiêu tổng quát và các mục tiêu cụ thể được lượng hóa rõ ràng từ khâu làm chủ công nghệ ReactJS, Golang, PostgreSQL đến việc hiện thực hóa đầy đủ các tính năng cho Khách hàng và Quản trị viên. Chương này cũng phân định cụ thể đối tượng, phạm vi nghiên cứu và ý nghĩa thực tiễn của đề tài trong việc tạo ra sản phẩm mẫu ứng dụng thực tế.

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

Chương 2 trình bày có hệ thống các lý thuyết công nghệ được lựa chọn sử dụng trong đồ án:

  • Phát triển Front-End: Trình bày bản chất thư viện ReactJS, phân tích cơ chế tối ưu hiệu năng của Virtual DOM thông qua thuật toán so sánh cây DOM để giảm thiểu tái kết xuất (re-render). Làm rõ cú pháp JSX, cấu trúc Component, phân biệt biến Props (dữ liệu truyền từ ngoài vào) và State (trạng thái nội tại có thể biến đổi), cùng các mốc trong vòng đời thành phần Component Life Cycle (Mounting, Updating, Unmounting).
  • Phát triển Back-End: Giới thiệu ngôn ngữ Golang với ưu điểm vượt trội về hiệu năng nhờ Goroutines và Channels trong xử lý đồng thời, quản lý rác bộ nhớ tự động, cú pháp tinh gọn và thời gian biên dịch mã nguồn nhanh. Đồng thời, tác giả khách quan chỉ ra các mặt hạn chế của Golang như thiếu hỗ trợ Generics (tại thời điểm khảo sát), thư viện hỗ trợ chưa phong phú bằng Java hay Python, việc quản lý rác có thể gây trễ tức thời trong một số trường hợp và thiếu tính kế thừa hướng đối tượng dạng Class truyền thống.
  • Hệ trị cơ sở dữ liệu PostgreSQL: Phân tích nguồn gốc xuất xứ từ Berkeley, phân loại hệ thống RDBMS hướng đối tượng, giới thiệu hệ thống kiểu dữ liệu phong phú (JSON, mảng, hình học), các cơ chế kiểm soát đồng thời MVCC, kỹ thuật bảo mật SCRAM-SHA-256, khả năng mở rộng với sharding/replication và nhật ký phục hồi thảm họa WAL/PITR.

Chương 3: Khảo sát hiện trạng và mô hình hóa yêu cầu

Chương 3 là phần trọng tâm về kỹ thuật phần mềm của đồ án, tích hợp thiết kế, cài đặt và kiểm thử:

  • Khảo sát hiện trạng: Tiến hành phân tích sâu 5 nền tảng TMĐT (Thế giới di động, FPT Shop, CellphoneS, Newegg, BestBuy) về giao diện, tính năng so sánh, giỏ hàng, thanh toán và dịch vụ khách hàng; từ đó rút ra bài học kinh nghiệm về việc tập trung vào nhu cầu người dùng cụ thể, giao diện tinh gọn, không lạm dụng banner gây rối mắt.
  • Xác định yêu cầu: Lập bảng chi tiết 25 yêu cầu chức năng nghiệp vụ của người dùng và hệ thống, phân chia vai trò giữa khách vãng lai (Guest), khách hàng có tài khoản (Customer) và quản trị viên (Admin). Xác lập bảng yêu cầu phi chức năng gồm 9 tiêu chí kỹ thuật.
  • Mô hình hóa Use Case và Lược đồ tuần tự: Đặc tả Use Case bằng bảng cho từng chức năng; xây dựng sơ đồ tuần tự (Sequence Diagram) cho 14 quy trình tương tác: Đăng ký, Đăng nhập, Đăng xuất, Tìm kiếm sản phẩm, Lọc sản phẩm, Xem chi tiết sản phẩm, Thêm vào CompareList, Quản lý giỏ hàng, Đặt hàng, Quản lý đơn hàng (Customer), Cập nhật tài khoản cá nhân, Quản lý người dùng, Quản lý sản phẩm, Quản lý chương trình giảm giá (Admin).
  • Thiết kế cơ sở dữ liệu và giao diện: Trình bày lược đồ thực thể kết hợp (ERD), mô tả cấu trúc chi tiết của 28 bảng dữ liệu/Collections. Hiện thực và mô tả chi tiết giao diện cho hai phân hệ: Phía khách hàng (Trang chủ, Chi tiết sản phẩm, Sản phẩm yêu thích, So sánh sản phẩm, Lọc, Giỏ hàng, Đặt hàng, Lịch sử mua hàng, Mã giảm giá...) và Phía quản trị viên (Trang chủ quản trị, Quản lý người dùng, Quản lý sản phẩm, Quản lý biến thể sản phẩm - variant/options, Quản lý nhãn hàng, Quản lý danh mục, Quản lý mã và chương trình giảm giá, Quản lý đơn hàng).
  • Cài đặt và kiểm thử phần mềm: Xác định cấu hình tài nguyên hệ thống, môi trường phần cứng, phần mềm; xây dựng quy trình kiểm thử hộp đen cho từng ca kiểm thử chức năng và kiểm tra các tiêu chí phi chức năng đã đề ra.

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

Kết quả đạt được

Khóa luận đã hoàn thành toàn bộ các mục tiêu đặt ra theo đề cương nhiệm vụ được giao:

  • Xây dựng thành công ứng dụng web thương mại điện tử hoàn chỉnh mang tên Web Application Thương mại Etterath với đầy đủ 2 phân hệ khách hàng và quản trị viên.
  • Hiện thực hóa 25 chức năng nghiệp vụ theo bảng yêu cầu, bao gồm các tính năng nâng cao như: so sánh sản phẩm công nghệ (CompareList), danh sách yêu thích (WishList), quản lý biến thể mặt hàng theo phiên bản (product items, variations, variation options), quản lý phiếu giảm giá (coupons) và chương trình khuyến mãi (offers).
  • Thiết kế và chuẩn hóa thành công cấu trúc cơ sở dữ liệu gồm 28 bảng dữ liệu trên PostgreSQL, đảm bảo liên kết chặt chẽ và ràng buộc toàn vẹn dữ liệu.
  • Đạt được các chỉ số kỹ thuật phi chức năng trong quá trình kiểm thử:
    • Tốc độ phản hồi của hệ thống API đạt dưới 5 giây.
    • Tỉ lệ lỗi vận hành được kiểm soát dưới 5%.
    • Tỉ lệ sai số trong quá trình xử lý giao dịch đạt mức dưới 0.05%.
    • Tích hợp thành công chức năng tự động gửi email thông tin xác nhận đơn hàng khi khách hàng hoàn tất giao dịch đặt hàng và cơ chế lập lịch sao lưu dữ liệu mỗi tháng một lần.

Giải pháp và kiến nghị của nhóm tác giả

  • Tách bạch rõ ràng giữa tầng hiển thị (ReactJS) và tầng dịch vụ (Golang RESTful API) giúp mã nguồn dễ bảo trì, thuận tiện nâng cấp và mở rộng trong tương lai.
  • Sử dụng JWT để giải quyết bài toán xác thực phân quyền giúp giảm tải gánh nặng lưu trữ phiên (session) trên máy chủ.
  • Học tập ưu điểm từ các trang TMĐT lớn (FPT Shop, Newegg) để bổ sung tính năng so sánh trực quan thông số kỹ thuật giữa các thiết bị công nghệ, đồng thời tinh giản giao diện để tránh tình trạng rối mắt do quá nhiều banner quảng cáo như Thế giới di động hay CellphoneS.

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

  • Cung cấp một mô hình thực nghiệm hoàn chỉnh về việc kết hợp giữa ngôn ngữ lập trình hiệu năng cao Golang và thư viện Front-End phổ biến ReactJS trong bài toán xây dựng hệ thống thương mại điện tử.
  • Chuẩn hóa tài liệu phân tích thiết kế hệ thống bán hàng công nghệ từ khâu khảo sát thực tế, mô hình hóa Use Case, vẽ sơ đồ tuần tự đến thiết kế chi tiết 28 bảng quan hệ trong cơ sở dữ liệu.

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

Hạn chế của đề tài

Dựa trên phạm vi nghiên cứu và nội dung phân tích trong đồ án, hệ thống còn tồn tại một số điểm giới hạn:

  • Các hình thức thanh toán trực tuyến và tích hợp cổng thanh toán bên thứ ba chuyên sâu chưa được mở rộng toàn diện (chủ yếu tập trung vào cấu trúc phương thức thanh toán và ví nội bộ).
  • Khả năng tương tác hỗ trợ khách hàng theo thời gian thực (như module live chat trực tuyến hoặc chatbot tự động) chưa được xây dựng, tương tự như hạn chế đã chỉ ra ở các trang web khảo sát ban đầu.
  • Chưa triển khai các giải pháp kiến trúc phân tán nâng cao của PostgreSQL như phân vùng bảng (sharding) hoặc phân tán dữ liệu đa máy chủ (replication) trên môi trường thực tế quy mô lớn.

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

Văn bản đồ án đề xuất các định hướng nghiên cứu và nâng cấp trong tương lai:

  • Mở rộng và tích hợp thêm nhiều cổng thanh toán điện tử phổ biến trong nước và quốc tế để đa dạng hóa phương thức thanh toán.
  • Phát triển hệ thống tương tác và chăm sóc khách hàng trực tuyến (live chat trực tiếp hoặc hệ thống phản hồi tự động).
  • Tối ưu hóa hiệu năng máy chủ và nâng cao tính sẵn sàng của cơ sở dữ liệu thông qua việc áp dụng kỹ thuật replication và cân bằng tải khi quy mô người dùng tăng cao.
  • Phát triển ứng dụng trên thiết bị di động (Mobile Application) dựa trên nền tảng API hiện có.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo kỹ thuật hữu ích đối với sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm và các nhà phát triển hệ thống:

  • Đối tượng phù hợp: Sinh viên thực hiện đồ án tốt nghiệp, môn học phân tích thiết kế hệ thống thông tin hoặc các lập trình viên đang bắt đầu tìm hiểu việc tích hợp giữa Golang và ReactJS.
  • Các phần nội dung có giá trị tham khảo cao:
    • Chương khảo sát hiện trạng: Cung cấp góc nhìn thực tế, chi tiết về ưu điểm và nhược điểm chức năng/giao diện của 5 nền tảng TMĐT hàng đầu (Thế giới di động, FPT Shop, CellphoneS, Newegg, BestBuy).
    • Quy trình đặc tả Use Case và Sơ đồ tuần tự: Cung cấp mẫu đặc tả nghiệp vụ bài bản cho 14 chức năng cốt lõi của một hệ thống bán lẻ.
    • Lược đồ thực thể kết hợp (ERD) và cấu trúc 28 Collections/Bảng dữ liệu: Bản thiết kế cơ sở dữ liệu mẫu rất chi tiết cho bài toán sản phẩm có nhiều biến thể (variations), quản lý giỏ hàng, chương trình giảm giá đa dạng và phân quyền người dùng.

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

1. Khóa luận sử dụng các công nghệ chính nào để xây dựng hệ thống website?
Hệ thống sử dụng thư viện ReactJS kết hợp Redux ở tầng Front-End để tạo giao diện ứng dụng đơn trang (SPA). Tầng Back-End được xây dựng bằng ngôn ngữ lập trình Golang cung cấp các dịch vụ RESTful API. Hệ quản trị cơ sở dữ liệu được sử dụng là PostgreSQL, và công nghệ JSON Web Token (JWT) được áp dụng để xác thực và phân quyền.

2. Đồ án khảo sát cụ thể những website thương mại điện tử nào để rút ra kinh nghiệm thiết kế?
Nhóm tác giả đã tiến hành khảo sát và phân tích ưu - nhược điểm của 5 website thương mại điện tử gồm: Thế giới di động, FPT Shop, CellphoneS (trong nước) cùng Newegg và BestBuy (quốc tế).

3. Cơ sở dữ liệu của hệ thống được thiết kế với quy mô bao nhiêu bảng/collections và bao gồm những nhóm nào?
Cơ sở dữ liệu của hệ thống bao gồm 28 bảng/collections, bao quát 5 nhóm thực thể chính: Nhóm người dùng và bảo mật (users, addresses, wallets, transactions, sessions...); Nhóm sản phẩm và thuộc tính (products, product_items, brands, categories, variations...); Nhóm giỏ hàng và danh sách yêu thích (carts, cart_items, wish_lists); Nhóm khuyến mãi (offers, coupons...); và Nhóm đơn hàng - thanh toán (shop_orders, payment_methods, order_statuses, order_returns).

4. Các chỉ số kỹ thuật phi chức năng mà hệ thống cam kết và kiểm thử đạt được là gì?
Hệ thống đặt ra và kiểm thử thành công các chỉ số: tốc độ phản hồi của API đạt dưới 5 giây; tỉ lệ phát sinh lỗi hệ thống dưới 5%; tỉ lệ sai số nghiệp vụ dưới 0.05%; các tương tác làm thay đổi dữ liệu đều áp dụng phương thức HTTP POST; hệ thống có cơ chế sao lưu dữ liệu mỗi tháng 1 lần và tự động gửi email chi tiết đơn hàng cho khách hàng khi đặt hàng thành công.


Kết luận

Đồ án tốt nghiệp "Xây dựng website bán sản phẩm công nghệ sử dụng Golang và ReactJS" của nhóm tác giả tại Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết trọn vẹn bài toán xây dựng nền tảng thương mại điện tử hoàn chỉnh cho lĩnh vực thiết bị công nghệ. Bằng việc kết hợp hiệu quả giữa ReactJS ở tầng giao diện và Golang ở tầng xử lý dịch vụ cùng cơ sở dữ liệu quan hệ PostgreSQL chuẩn hóa 28 bảng dữ liệu, nhóm nghiên cứu đã hiện thực hóa 25 yêu cầu chức năng nghiệp vụ đáp ứng đầy đủ các tiêu chuẩn kiểm thử kỹ thuật. Công trình là tài liệu tham khảo có giá trị học thuật và kỹ thuật thực tiễn cao cho sinh viên ngành Công nghệ thông tin trong việc nghiên cứu và triển khai các dự án phần mềm hướng dịch vụ.