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

Đề tài "Ứng dụng tặng quà" được nhóm sinh viên Nguyễn Lâm Gia Khang, Nguyễn Dương Đạt và Nguyễn Đình Phú thực hiện dưới sự hướng dẫn của thầy Huỳnh Xuân Phụng tại Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (khóa luận hoàn thành vào tháng 6 năm 2021).

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

Chuyển đổi số là xu hướng phát triển tất yếu trên phạm vi toàn cầu cũng như tại Việt Nam. Trong bối cảnh đại dịch Covid-19, việc chuyển đổi số trở thành giải pháp then chốt giúp các doanh nghiệp và cửa hàng bán lẻ duy trì hoạt động và thích ứng với điều kiện giãn cách. Tuy nhiên, nhiều cửa hàng kinh doanh truyền thống – đặc biệt là các đơn vị kinh doanh đồ lưu niệm, quà tặng và hoa tươi – gặp nhiều trở ngại trong quá trình chuyển đổi số do hạn chế về nguồn kinh phí đầu tư và nhân lực công nghệ. Xuất phát từ thực tế này, đề tài được lựa chọn nhằm xây dựng một giải pháp phần mềm cung cấp bộ giao diện lập trình ứng dụng (API) phục vụ việc tích hợp, vận hành và quản lý hoạt động kinh doanh quà tặng trực tuyến.

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

Văn bản xác định mục tiêu và hệ thống các nhiệm vụ cụ thể bao gồm:

  1. Mục tiêu tổng quát: Xây dựng một nền tảng trung gian dưới dạng ứng dụng web, cung cấp bộ API đơn giản, dễ sử dụng nhằm kết nối các cửa hàng quà tặng, hoa, đồ lưu niệm với khách hàng và các đơn vị vận chuyển trung gian (như Grab, Be), đồng thời cung cấp môi trường chạy thử và tài liệu hướng dẫn tích hợp.
  2. Nhiệm vụ đặc tả yêu cầu: Xây dựng tài liệu đặc tả yêu cầu người dùng và yêu cầu hệ thống qua 4 giai đoạn tiến hóa phần mềm (từ phiên bản 1.0 đến phiên bản 3.0).
  3. Nhiệm vụ thiết kế kiến trúc và mô hình hóa: Thiết kế hệ thống theo mô hình kiến trúc MVC kết hợp mô hình 3 tầng (3-tier); xây dựng hệ thống sơ đồ UML gồm sơ đồ ca sử dụng (Use Case), sơ đồ lớp (Class Diagram), sơ đồ thành phần (Component Diagram), sơ đồ tuần tự (Sequence Diagram), sơ đồ giao tiếp (Communication Diagram) và sơ đồ trạng thái (State Diagram).
  4. Nhiệm vụ hiện thực hóa phần mềm: Lập trình bộ API phía máy chủ (Back-end) và xây dựng giao diện người dùng (Front-end) phục vụ việc kiểm thử các chức năng.
  5. Nhiệm vụ kiểm thử và quản lý dự án: Kiểm thử chức năng toàn bộ các API qua công cụ chuyên dụng và kiểm thử giao diện người dùng; quản lý mã nguồn và tiến độ công việc thông qua nền tảng GitHub.

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

  • Đối tượng nghiên cứu: Quy trình quản lý và vận hành nghiệp vụ bán hàng quà tặng, bao gồm quản lý thông tin khách hàng, cấu trúc sản phẩm quà tặng (mặt hàng chính, gói quà - Giftpack, phụ kiện đi kèm - AddOn), quy trình đặt hàng, điều phối giao vận và tiếp nhận, xử lý khiếu nại/phản hồi.
  • Phạm vi nghiên cứu:
    • Không gian: Triển khai trên môi trường máy chủ thử nghiệm nội bộ của nhóm nghiên cứu, mô phỏng kết nối giữa các tác nhân trong hệ thống.
    • Thời gian: Đồ án được thực hiện và nghiệm thu vào tháng 6 năm 2021.

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

Khung lý thuyết và mô hình kiến trúc

Đề tài áp dụng các nguyên lý kỹ thuật phần mềm hướng đối tượng và kiến trúc phân tầng tiêu chuẩn:

  • Mô hình kiến trúc MVC (Model - View - Controller): Tách biệt rõ ràng giữa thành phần lưu trữ/khuôn mẫu dữ liệu (Model), thành phần tiếp nhận và điều phối luồng xử lý (Controller) và thành phần hiển thị giao diện (View).
  • Kiến trúc 3 tầng (3-tier Architecture): Phân tách hệ thống thành 3 tầng độc lập:
    • Data Access Layer (DAO): Thực hiện tương tác trực tiếp với cơ sở dữ liệu.
    • Business Logic Layer (Service): Thực hiện các thuật toán xử lý nghiệp vụ của bài toán.
    • Presentation Layer (Front-end/View): Hiển thị và thu thập dữ liệu người dùng.
  • Kỹ thuật ánh xạ quan hệ - đối tượng (ORM - Object-Relational Mapping): Sử dụng để chuyển đổi dữ liệu giữa các bảng trong cơ sở dữ liệu quan hệ sang các đối tượng thực thể trong mã nguồn Java.

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

  • Phương pháp phân tích và mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để đặc tả chi tiết luồng dữ liệu, tương tác giữa các đối tượng và hành vi của hệ thống cho từng ca sử dụng cụ thể.
  • Phương pháp đặc tả yêu cầu theo tiến trình lặp (Iterative Requirements Specification): Phân rã quá trình phát triển thành 4 phiên bản tăng trưởng chức năng (v1.0, v1.1, v2.0, v3.0), mỗi phiên bản đều xác định rõ ràng yêu cầu chức năng (Functional Requirements) và yêu cầu phi chức năng (Non-functional Requirements).
  • Phương pháp đối chuẩn (Benchmarking/Tham khảo ứng dụng thực tế): Khảo sát, tham khảo cấu trúc chức năng của các ứng dụng tặng quà hiện có trên thị trường nhằm tối ưu hóa tính tiện dụng của giao diện và API.
  • Phương pháp quản lý mã nguồn và nhóm dự án: Sử dụng GitHub để quản lý phiên bản mã nguồn, phân công nhiệm vụ và giải quyết các vấn đề kỹ thuật (Issue tracking).

Nguồn dữ liệu và môi trường thử nghiệm

  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server.
  • Dữ liệu thử nghiệm: Bộ dữ liệu giả lập về thông tin tài khoản, danh mục mặt hàng lưu niệm, gói quà tặng, phụ kiện đính kèm, đơn đặt hàng và các mức phản hồi đánh giá (từ 1 đến 5 sao).
  • Môi trường vận hành: Máy chủ thử nghiệm do nhóm tự thiết lập (Host của nhóm).

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc phân tầng rõ ràng, đảm bảo khả năng bảo trì, sửa lỗi và nâng cấp độc lập giữa các thành phần.

Kiến trúc công nghệ và ngăn xếp kỹ thuật (Tech Stack)

Thành phần hệ thống Công nghệ / Thư viện sử dụng Vai trò và chức năng trong đồ án
Front-end (Giao diện) HTML, CSS, JavaScript, Vue.js Xây dựng giao diện web tương tác cho khách hàng và trang quản trị (Admin), phục vụ kiểm thử trực quan.
Back-end (Máy chủ) Java, Spring Boot, Jersey Xây dựng dịch vụ RESTful API, tiếp nhận yêu cầu HTTP từ client và điều phối nghiệp vụ.
Data Access & ORM Spring Data JPA, Hibernate Quản lý kết nối cơ sở dữ liệu, tự động hóa thao tác truy vấn và ánh xạ dữ liệu quan hệ - thực thể.
Cơ sở dữ liệu Microsoft SQL Server Lưu trữ toàn bộ dữ liệu cấu trúc của hệ thống.
Công cụ kiểm thử Postman, Web Browser Gửi các HTTP request (GET, POST, PUT, DELETE) để kiểm tra tính đúng đắn của API; kiểm tra luồng giao diện.
Quản lý phiên bản GitHub Lưu trữ kho mã nguồn, theo dõi tiến độ công việc và giải quyết lỗi phát sinh.

Thiết kế phân tầng hệ thống

  1. Tầng truy cập dữ liệu (Data Access Layer - DAO): Chịu trách nhiệm thực hiện các lệnh truy vấn, thêm, sửa, xóa dữ liệu trong SQL Server thông qua Spring Data JPA và Hibernate.
  2. Tầng xử lý nghiệp vụ (Business Logic Layer - Service): Tiếp nhận dữ liệu từ Controller, thực hiện kiểm tra tính hợp lệ (validateInput), chuyển đổi dữ liệu giữa đối tượng DTO và Entity (convertToEntity), thực hiện lưu trữ (save) và trả về kết quả trạng thái (StatusCode).
  3. Tầng mô hình (Model Layer): Định nghĩa cấu trúc của các thực thể như User, Product, Item, Giftpack, Order, Shipment, Complaint.
  4. Tầng điều khiển (Controller Layer): Định tuyến các điểm cuối API, tiếp nhận tham số từ client và điều phối dữ liệu qua Service tương ứng.
  5. Tầng hiển thị (View Layer): Được xây dựng trên nền Vue.js, giao tiếp với máy chủ thông qua các cuộc gọi API bất đồng bộ.

Tổng hợp danh mục các API của hệ thống

Hệ thống cung cấp danh mục API hoàn chỉnh phục vụ toàn bộ các phân hệ nghiệp vụ:

  • Phân hệ Khách hàng & Xác thực:
    • API Đăng nhập, Đăng ký tài khoản.
    • API Thêm thông tin khách hàng (POST), Chỉnh sửa thông tin khách hàng (PUT), Lấy tất cả thông tin khách hàng (GET), Lấy thông tin khách hàng qua tên (GET), Xóa thông tin khách hàng (DELETE).
  • Phân hệ Mặt hàng trong kho (Item):
    • API Thêm mặt hàng mới, Lấy tất cả mặt hàng có sẵn trong kho, Lấy thông tin mặt hàng qua mã, Chỉnh sửa thông tin mặt hàng, Lấy số lượng mặt hàng, Xóa mặt hàng trong kho.
  • Phân hệ Gói quà (Giftpack):
    • API Tạo gói quà mới, Lấy tất cả gói quà, Lấy gói quà thông qua mã, Chỉnh sửa thông tin gói quà, Lấy số lượng gói quà.
    • API Quản lý mặt hàng trong gói quà: Lấy tất cả gói quà kèm mặt hàng đi kèm, Lấy gói quà kèm mặt hàng theo mã, Thêm gói quà kèm mặt hàng, Chỉnh sửa gói quà kèm mặt hàng, Xóa mặt hàng đi kèm gói quà.
  • Phân hệ Phụ kiện đính kèm (AddOn):
    • API Thêm phụ kiện, Lấy tất cả phụ kiện đi kèm, Lấy phụ kiện qua mã, Chỉnh sửa thông tin phụ kiện, Lấy số lượng phụ kiện, Thêm phụ kiện vào món quà bất kỳ.
  • Phân hệ Đơn hàng & Giao vận:
    • API Đặt quà; Lấy tất cả đơn hàng kèm phụ kiện; Lấy đơn hàng kèm phụ kiện theo mã; Xóa đơn hàng kèm phụ kiện theo mã; Xem lịch sử đơn hàng qua mã đơn hàng; Xem lịch sử đơn hàng qua tên tài khoản; Lấy tất cả đơn hàng của khách hàng; Lấy tất cả đơn hàng để xử lý; Cập nhật xử lý đơn hàng; Báo cáo trạng thái giao hàng; Xem trạng thái vận chuyển.
  • Phân hệ Phản hồi & Khiếu nại:
    • API Thêm phản hồi, Lấy tất cả phản hồi, Lấy phản hồi theo tên tài khoản, Lấy phản hồi theo mã gói quà, API phản hồi cho khách hàng, Giải quyết khiếu nại.
  • Phân hệ Quản trị hệ thống (System Admin):
    • API Quản lý danh sách người dùng tương ứng với từng tác nhân (Actor).

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

Chương I: Giới thiệu đề tài

Chương này thiết lập nền tảng nghiên cứu của đồ án, chỉ ra tính cấp thiết của việc hỗ trợ các cửa hàng bán lẻ truyền thống thích ứng với giai đoạn dịch Covid-19 thông qua chuyển đổi số. Tác giả xác định mục tiêu xây dựng một bộ API hoàn chỉnh, cung cấp tài liệu hướng dẫn và môi trường web kiểm thử trực quan. Đồng thời, chương giới thiệu phương pháp tiếp cận dựa trên mô hình MVC và 3-tier kết hợp tham khảo các mô hình ứng dụng quà tặng thực tế nhằm đảm bảo tính khả thi trong nâng cấp và bảo trì.

Chương II: Quá trình thực hiện

Đây là chương trọng tâm của báo cáo, bao gồm các nội dung kỹ thuật chi tiết:

1. Tài liệu đặc tả yêu cầu qua các phiên bản

Quá trình phân tích yêu cầu được tiến hành có hệ thống qua 4 mốc phiên bản phát triển:

  • Phiên bản 1.0 (v1.0): Tập trung vào chức năng cơ bản gồm đăng ký và đăng nhập tài khoản. Yêu cầu phi chức năng đặt ra mục tiêu đáp ứng đồng thời 1000 người dùng truy cập; đảm bảo tính linh hoạt khi đăng nhập giữa các vai trò người dùng khác nhau; kiểm soát nguy cơ tấn công mạng với giả định tỷ lệ 1 session bị tấn công trên 100 session; duy trì khả năng phục hồi dữ liệu từ bản sao lưu và bảo đảm toàn vẹn dữ liệu.
  • Phiên bản 1.1 (v1.1): Bổ sung các API quản lý thông tin khách hàng theo chuẩn CRUD (POST, PUT, GET, DELETE). Giới thiệu khái niệm và cơ chế quản lý phụ kiện đính kèm (AddOn) – cho phép một món quà chính có thể đính kèm nhiều phụ kiện khác nhau.
  • Phiên bản 2.0 (v2.0): Mở rộng các API đặt hàng và quản lý chu trình xử lý đơn hàng; tích hợp chức năng ghi nhận phản hồi và xử lý khiếu nại của khách hàng; thiết lập luồng nghiệp vụ tìm kiếm quà tặng (đồ lưu niệm, hoa tươi...); xây dựng chức năng phân phối đơn hàng cho nhân viên giao hàng (Shipper), báo cáo trạng thái giao hàng, thống kê cuối ngày và quản lý trả hàng không thành công; định hướng tích hợp với các dịch vụ vận chuyển toàn quốc.
  • Phiên bản 3.0 (v3.0): Hoàn thiện các phân hệ quản trị nâng cao: Quản lý kho hàng (Item); Quản lý gói quà (Giftpack - cho phép một gói quà chứa nhiều mặt hàng); Quản lý phụ kiện đi kèm đơn hàng; Cung cấp các chức năng thống kê dành cho Quản trị viên (Admin) bao gồm thống kê đơn hàng hoàn tất, đơn hàng chưa hoàn tất, đơn hàng bị hủy, theo dõi tình trạng đơn hàng, thống kê đánh giá của khách hàng, doanh thu và doanh số; cung cấp quyền thêm, xóa, sửa thông tin sản phẩm.

2. Kiến trúc hệ thống

Đặc tả chi tiết mô hình kết hợp MVC và 3-tier. Trình bày chi tiết vai trò của 5 thành phần trong hệ thống:

  • Data Access Layer (DAO): Tương tác trực tiếp với cơ sở dữ liệu.
  • Business Logic Layer (Service): Xử lý toàn bộ nghiệp vụ bài toán.
  • Model: Định nghĩa cấu trúc khuôn mẫu dữ liệu.
  • Controller: Cầu nối tiếp nhận yêu cầu từ client và điều phối phương thức.
  • View: Giao diện tương tác người dùng phía Front-end.

3. Mô hình hóa và sơ đồ thiết kế hệ thống

Xây dựng hệ thống sơ đồ UML hoàn chỉnh:

  • Sơ đồ ca sử dụng (Use Case Diagram): Cập nhật và hiệu chỉnh giữa phiên bản trước và sau báo cáo.
  • Sơ đồ thành phần (Component Diagram): Minh họa thành phần chức năng đăng ký tài khoản giữa Khách (Guest), Component Sign up và Cơ sở dữ liệu.
  • Sơ đồ tuần tự (Sequence Diagram): Mô tả chi tiết tiến trình thực thi của các tác vụ:
    • Chỉnh sửa gói quà (Sua Giftpack) và Thêm gói quà (Them Giftpack): Tương tác qua lại giữa Admin, GiftpackScreen, API-WebService, DataAccessService và Cơ sở dữ liệu.
    • Thêm mặt hàng (Them Item): Quy trình kiểm tra dữ liệu đầu vào và lưu thực thể ItemEntity.
    • Xóa mặt hàng trong kho (Delete goods in stock): Quy trình xác nhận và cập nhật danh sách mặt hàng của thủ kho.
    • Đăng ký (Sign up) và Đăng nhập (Sign in): Kiểm tra trùng lặp username, gửi email xác nhận và cập nhật userModel.
    • Xem lịch sử đơn hàng (View orders histories): Tải danh sách đơn hàng của người dùng theo thứ tự thời gian.
    • Xem và giải quyết phản hồi (View complaint & Complain settlement): Nhân viên lọc khiếu nại theo mức độ đánh giá từ 1 đến 5 sao và thực hiện xử lý.
    • Xử lý và báo cáo giao vận (Receive shipment & Report shipment state): Phân phối đơn hàng cho shipper đang rảnh; cập nhật tuần tự các trạng thái từ "đang chuẩn bị", "đang giao" đến "đã giao" (kèm chụp ảnh minh chứng); xử lý các trường hợp khách không nhận hàng hoặc khiếu nại giao trễ.
    • Quản lý giỏ hàng (Order add/remove/update): Các thao tác thêm, bớt, cập nhật số lượng sản phẩm trong giỏ hàng của khách.
    • Quản trị hệ thống (Manage System): Cho phép Quản trị viên (System Admin) lựa chọn và quản lý người dùng thuộc 4 vai trò tác nhân còn lại.
  • Sơ đồ giao tiếp (Communication Diagram) và Sơ đồ trạng thái (State Diagram): Mô tả cơ chế đăng nhập và quản lý hệ thống.

Chương III: Chạy thử nghiệm hệ thống

Trình bày kết quả kiểm thử toàn diện trên hai khía cạnh:

  • Thử nghiệm các API: Kiểm thử các điểm cuối API thông qua công cụ Postman, đảm bảo các yêu cầu HTTP nhận phản hồi đúng định dạng và mã trạng thái chuẩn xác.
  • Thử nghiệm hệ thống Front-end: Kiểm thử giao diện trên trình duyệt web qua các màn hình cụ thể: Trang đăng nhập, Trang thông tin khách hàng, Trang đặt quà, Trang giao diện Admin quản lý gói quà, Trang thêm gói quà mới, Trang Admin quản lý mặt hàng, Trang thêm mặt hàng mới, Trang Admin quản lý phụ kiện và Trang thêm phụ kiện mới.

Chương IV: Sử dụng GitHub

Báo cáo quá trình ứng dụng nền tảng GitHub trong quản trị dự án phần mềm. Hệ thống ghi nhận việc phân chia nhánh, quản lý mã nguồn tập trung, phối hợp giải quyết các xung đột và quản lý các lỗi/yêu cầu thay đổi thông qua hệ thống Issue của GitHub.

Chương V: Xác định vai trò của người quản lý dự án

Nội dung chương tập trung xác định nhân sự đảm nhiệm vị trí quản lý dự án trong nhóm, phân định rõ ràng vai trò và trách nhiệm của người quản lý trong việc phân chia công việc, điều phối tiến độ giữa các thành viên và tổng hợp bài báo cáo của người quản lý dự án.


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

Kết quả kỹ thuật chính

  • Xây dựng thành công hệ thống "Ứng dụng tặng quà" hoàn chỉnh với đầy đủ các tầng kiến trúc MVC và 3-tier.
  • Thiết kế và hiện thực hóa thành công hơn 40 API chức năng phục vụ toàn diện các nghiệp vụ từ quản lý khách hàng, kho hàng, gói quà (Giftpack), phụ kiện (AddOn), đơn hàng, giao vận đến tiếp nhận đánh giá/khiếu nại.
  • Xây dựng giao diện web Front-end trên nền tảng Vue.js cho phép người dùng và quản trị viên thực hiện đầy đủ các chức năng tương tác và kiểm thử hệ thống.
  • Thiết kế cơ sở dữ liệu trên Microsoft SQL Server đáp ứng quan hệ chặt chẽ giữa các thực thể, đảm bảo tính toàn vẹn dữ liệu.
  • Thiết lập tài liệu đặc tả yêu cầu chi tiết qua 4 phiên bản phát triển (v1.0 đến v3.0), xác định rõ ràng chỉ số đáp ứng tải đồng thời (1000 người dùng) và cơ chế sao lưu dữ liệu.

Giải pháp và quy trình nghiệp vụ do tác giả đề xuất

  • Mô hình hóa sản phẩm linh hoạt: Tách biệt rõ ràng giữa mặt hàng đơn lẻ, gói quà tặng kết hợp (Giftpack chứa nhiều mặt hàng) và phụ kiện đính kèm (AddOn - một món quà có thể gắn nhiều phụ kiện), giúp đáp ứng tối đa tính cá nhân hóa trong việc tặng quà.
  • Quy trình kiểm soát giao vận chặt chẽ: Thiết kế quy trình phân phối đơn hàng tự động cho shipper khả dụng; luân chuyển trạng thái rõ ràng ("đang chuẩn bị" $\rightarrow$ "đang giao" $\rightarrow$ "đã giao") và bắt buộc chụp ảnh minh chứng khi giao hàng thành công để cập nhật dữ liệu lên hệ thống.
  • Phân loại xử lý khiếu nại: Thiết lập cơ chế lọc và phân cấp phản hồi của khách hàng theo thang điểm từ 1 đến 5 sao để nhân viên chăm sóc khách hàng ưu tiên xử lý.

Đóng góp kỹ thuật tự nêu

  • Cung cấp một bộ API mở, có cấu trúc chuẩn mực và dễ tích hợp, giúp các cửa hàng kinh doanh quà tặng, đồ lưu niệm và hoa tươi quy mô vừa và nhỏ có thể nhanh chóng xây dựng hệ thống bán hàng trực tuyến với chi phí và nguồn lực tối thiểu.
  • Cung cấp một tài liệu thiết kế hệ thống và bộ kịch bản kiểm thử API hoàn chỉnh, làm tài liệu tham khảo cho việc phát triển các nền tảng thương mại điện tử chuyên biệt.

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

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

  • Hệ thống mới được triển khai và thử nghiệm trên môi trường máy chủ nội bộ của nhóm tác giả, chưa đưa vào vận hành trên môi trường mạng diện rộng thực tế.
  • Các tính năng liên kết dịch vụ giao hàng bên ngoài (như Grab, Be) và đăng nhập thông qua các nhà cung cấp định danh thứ ba (Google, Facebook) mới dừng lại ở mức thiết kế trong tài liệu đặc tả tiến hóa hệ thống, chưa hoàn thiện tích hợp API production thực tế.
  • Yêu cầu phi chức năng về an ninh mạng mới được mô hình hóa theo giả định xác suất tấn công (1 session trên 100 session), chưa triển khai các cơ chế phòng thủ chuyên sâu.

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

  • Triển khai tích hợp các phương thức đăng nhập mở rộng qua mạng xã hội (Google, Facebook).
  • Kết nối trực tiếp API với các đơn vị vận chuyển trung gian và dịch vụ giao hàng toàn quốc để tự động hóa hoàn toàn quy trình xử lý đơn vận.
  • Tiếp tục tối ưu hóa hiệu năng bộ API và cập nhật các tính năng quản trị nâng cao trong các phiên bản phần mềm tiếp theo.

Giá trị tham khảo

Báo cáo đồ án mang lại giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Công nghệ phần mềm và Công nghệ thông tin: Tài liệu là nguồn tham khảo trực quan về quy trình thực hiện một đồ án công nghệ phần mềm hoàn chỉnh, từ khâu đặc tả yêu cầu đa phiên bản, thiết kế sơ đồ UML (đặc biệt là các sơ đồ tuần tự và sơ đồ ca sử dụng), đến cách tổ chức mã nguồn theo mô hình MVC kết hợp 3-tier.
  • Lập trình viên phát triển hệ thống Java/Spring: Cung cấp cấu trúc tham khảo về việc kết hợp Spring Boot, Jersey và Spring Data JPA với Hibernate để xây dựng hệ thống RESTful API kết nối cơ sở dữ liệu SQL Server.
  • Nhóm phát triển các ứng dụng thương mại điện tử quà tặng: Tham khảo mô hình phân rã thực thể sản phẩm linh hoạt (Item - Giftpack - AddOn) và quy trình quản lý giao vận có kèm bằng chứng xác nhận giao hàng.

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

1. Kiến trúc hệ thống và các công nghệ chính được sử dụng trong đồ án là gì?

Hệ thống được thiết kế theo mô hình kiến trúc MVC kết hợp mô hình 3 tầng (3-tier Architecture). Ngăn xếp công nghệ bao gồm: Tầng Front-end sử dụng HTML, CSS, JavaScript và Vue.js; Tầng Back-end sử dụng ngôn ngữ Java với nền tảng Spring Boot, thư viện Jersey và Spring Data JPA/Hibernate; Tầng cơ sở dữ liệu sử dụng Microsoft SQL Server với kỹ thuật ORM.

2. Các yêu cầu phi chức năng chính được xác định trong tài liệu đặc tả là gì?

Tài liệu đặc tả yêu cầu xác định các chỉ số phi chức năng bao gồm: Khả năng chịu tải đồng thời khoảng 1000 người dùng truy cập; kiểm soát nguy cơ bị tấn công (giả định 100 session thì có 1 session bị tấn công); đảm bảo tính toàn vẹn dữ liệu; và khả năng khôi phục dữ liệu nhanh chóng khi có sự cố nhờ hệ thống sao lưu định kỳ.

3. Khái niệm "AddOn" và "Giftpack" trong hệ thống được định nghĩa và quản lý như thế nào?

Trong hệ thống, Giftpack là gói quà chứa tập hợp nhiều mặt hàng (Item) khác nhau trong kho. Trong khi đó, AddOn là các phụ kiện đính kèm vào món quà chính; hệ thống cho phép một món quà có thể gắn kèm nhiều phụ kiện và cung cấp đầy đủ các API để thêm, sửa, xóa, lấy số lượng phụ kiện cũng như gắn phụ kiện vào đơn hàng.

4. Quy trình xử lý và theo dõi vận chuyển đơn hàng diễn ra như thế nào?

Khi khách đặt hàng, đơn hàng mang trạng thái "đang chuẩn bị". Hệ thống quản lý giao vận sẽ phân phối đơn hàng cho shipper đang rảnh để chuyển trạng thái sang "đang giao". Khi shipper giao hàng thành công đến địa chỉ người nhận, shipper phải chụp hình minh chứng để hệ thống cập nhật trạng thái "đã giao" và đồng bộ lên lịch sử đơn hàng của khách hàng. Nếu giao không thành công, thông tin sẽ được chuyển về bộ phận quản lý để xử lý.

5. Hệ thống xác định những tác nhân (Actor) nào tham gia vào các ca sử dụng?

Hệ thống xác định các tác nhân chính bao gồm: Khách vãng lai (Guest), Khách hàng đã có tài khoản (Customer user), Quản trị viên hệ thống (System Admin), Nhân viên xử lý khiếu nại (Complaint settlement staff), Hệ thống giao vận/Người giao hàng (Delivery system / Shipper) và Người thủ kho.


Kết luận

Đồ án "Ứng dụng tặng quà" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã giải quyết trọn vẹn bài toán xây dựng nền tảng hỗ trợ chuyển đổi số cho các cửa hàng kinh doanh quà tặng và đồ lưu niệm. Đề tài đã hoàn thành việc đặc tả yêu cầu chi tiết qua 4 phiên bản tiến hóa, thiết kế kiến trúc phân tầng MVC kết hợp 3-tier và xây dựng hệ sinh thái hơn 40 API trên nền tảng Spring Boot và SQL Server. Kết quả thử nghiệm trên Postman và giao diện Vue.js đã khẳng định tính đúng đắn của thiết kế và khả năng ứng dụng thực tiễn của giải pháp trong quản lý đơn hàng, phân loại gói quà và điều phối giao vận.