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

Trong bối cảnh công nghệ thông tin và thương mại điện tử phát triển mạnh mẽ, dịch vụ vận chuyển (shipping) nhanh chóng, chính xác và tiện lợi đã trở thành yếu tố cốt lõi quyết định đến sự thành bại trong kinh doanh của các doanh nghiệp bán lẻ trực tuyến cũng như các sàn thương mại điện tử. Thời gian giao hàng và chất lượng trải nghiệm vận chuyển ảnh hưởng trực tiếp đến quyết định mua sắm của người tiêu dùng. Tuy nhiên, qua khảo sát thực tế, tác giả Phan Công Tú (ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh) đã chỉ ra 3 hạn chế chính đang tồn tại trong hoạt động giao nhận hiện nay:

  1. Quy trình vận chuyển chưa được tối ưu hóa: Nhiều đơn vị vẫn quản lý việc giao nhận theo phương thức thủ công, dẫn đến lãng phí thời gian và làm giảm hiệu quả vận hành.
  2. Thiếu tính minh bạch trong thông tin hành trình: Người mua và người gửi gặp nhiều trở ngại khi theo dõi trạng thái đơn hàng theo thời gian thực, gây suy giảm trải nghiệm sử dụng dịch vụ.
  3. Hạn chế trong khả năng tích hợp hệ thống: Các giải pháp vận chuyển hiện hành chưa hỗ trợ tốt việc đồng bộ với các nền tảng thương mại điện tử, làm gia tăng sự phức tạp trong quản trị và phát sinh chi phí vận hành.

Trước thực trạng đó, đồ án tốt nghiệp kỹ sư với đề tài "Xây dựng Website Logistic (Shipping)" được triển khai dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung. Khóa luận đặt ra 4 nhiệm vụ nghiên cứu cụ thể được đánh số như sau:

  1. Tìm hiểu công nghệ Java – Spring Boot và Angular.
  2. Tìm hiểu các website logistic (shipping) hiện hành.
  3. Xây dựng website logistic (shipping) với các chức năng cơ bản nhằm tối ưu quy trình đặt - giao hàng và cung cấp thông tin minh bạch.
  4. Hiểu được quy trình, cách thức hoạt động và xử lý nghiệp vụ của một website vận chuyển.

Về đối tượng nghiên cứu, đề tài tập trung vào bộ công nghệ phát triển web hiện đại gồm Angular, Java, Spring Boot, kiến trúc RESTful API, hệ quản trị cơ sở dữ liệu MySQL, thư viện giao diện Tailwind CSS và các mẫu thiết kế phần mềm (Design Pattern).

Về phạm vi nghiên cứu, không gian khảo sát thực tiễn của đề tài là thị trường dịch vụ logistics tại Việt Nam thông qua hai nền tảng Shopee (phần giao hàng) và J&T Express. Không gian kỹ thuật giới hạn ở việc xây dựng một hệ thống website quản lý quy trình giao nhận nội địa nhiều chặng (từ người gửi qua kho tiếp nhận, trung chuyển liên kho đến kho đích và phát tới người nhận). Về mặt thời gian, đồ án được tiến hành trong 14 tuần, từ ngày 01/09/2024 đến ngày 10/12/2024.

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

Khung lý thuyết của đề tài được xây dựng trên các công nghệ phần mềm tiêu chuẩn trong phát triển ứng dụng web doanh nghiệp:

  • Framework Spring Boot (Backend): Khung ứng dụng mã nguồn mở xây dựng trên nền tảng Spring Framework của Java, hoạt động theo triết lý "Convention over Configuration". Công nghệ này tích hợp sẵn web server nhúng (Tomcat, Jetty), hỗ trợ cơ chế quản lý gói phụ thuộc tự động qua Spring Boot Starter (Maven/Gradle), cấu hình linh hoạt qua tệp application.properties/application.yml, đồng thời tích hợp các module chức năng như Spring Data và Spring Security.
  • Framework Angular (Frontend): Khung phát triển ứng dụng giao diện web mã nguồn mở do Google phát triển, hoạt động theo mô hình MVC/MVVM và phát triển trên nền tảng ngôn ngữ TypeScript. Các khái niệm cốt lõi được áp dụng gồm ràng buộc dữ liệu hai chiều (Two-Way Data Binding), cơ chế tiêm phụ thuộc (Dependency Injection), kiến trúc thành phần (Component-Based Architecture), biểu mẫu phản ứng (Reactive Forms/Template-Driven Forms), cơ chế điều hướng SPA (Routing) và thư viện lập trình phản ứng RxJS.
  • Hệ quản trị cơ sở dữ liệu MySQL: RDBMS mã nguồn mở quản lý dữ liệu theo mô hình quan hệ bảng, tuân thủ các tính chất ACID (Atomicity, Consistency, Isolation, Durability) nhằm bảo đảm tính toàn vẹn và độ tin cậy của các giao dịch chuyển trạng thái đơn hàng.
  • Tiêu chuẩn RESTful API: Mô hình giao tiếp phi trạng thái giữa client (Angular) và server (Spring Boot).

Phương pháp nghiên cứu thực tế được tác giả triển khai bao gồm:

  • Phương pháp khảo sát và phân tích hiện trạng: Đánh giá thực nghiệm giao diện, tính năng và luồng xử lý đơn hàng trên hai hệ thống vận chuyển thực tế tại Việt Nam là Shopee và J&T Express.
  • Phương pháp phân tích yêu cầu phần mềm: Phân loại và lập danh mục yêu cầu chức năng, yêu cầu phi chức năng; xây dựng mô hình ca sử dụng (Use Case) cho 6 tác nhân.
  • Phương pháp thiết kế hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ ca sử dụng (Use Case Diagram), sơ đồ tuần tự (Sequence Diagram), sơ đồ lớp và mô hình thực thể liên kết (ERD).
  • Nguồn dữ liệu: Dữ liệu giao diện thực tế thu thập từ ứng dụng Shopee và website J&T Express; bộ dữ liệu giả lập về thông tin tài khoản, danh mục kho hàng và đơn hàng logistics được tác giả thiết lập để phục vụ kiểm thử hệ thống.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc phân tầng tách rời giữa Frontend và Backend thông qua cổng giao tiếp RESTful API:

[Giao diện Client: Angular + Tailwind CSS] <--- HTTP/RESTful API ---> [Máy chủ Backend: Spring Boot] <---> [Cơ sở dữ liệu: MySQL]

Cơ sở dữ liệu quan hệ của hệ thống được tổ chức thành 5 bảng thực thể chính:

  1. user_profiles: Lưu trữ thông tin cá nhân, định danh, trạng thái xác thực và quyền hạn của các nhóm người dùng.
  2. refresh_tokens: Lưu trữ chuỗi khóa làm mới token phục vụ cơ chế xác thực và bảo mật phiên làm việc.
  3. notifications: Lưu trữ các bản ghi thông báo biến động trạng thái gửi đến người dùng và nhân sự hệ thống.
  4. warehouses: Lưu trữ thông tin danh mục mạng lưới kho bãi (tên kho, tọa độ, địa chỉ, trạng thái hoạt động).
  5. shipments: Bảng nghiệp vụ cốt lõi lưu trữ dữ liệu đơn hàng, thông tin địa chỉ lấy/giao, mã định danh, người thực hiện giao nhận, trạng thái vận chuyển và thông tin thanh toán.

Phần mềm thiết lập ma trận tương tác phân quyền cho 6 nhóm tác nhân: Khách (Guest), Người dùng (User), Người quản trị (Admin), Người quản lý kho (Warehouse Manager), Người lấy/giao hàng (Shipper) và Người vận chuyển (Transporter).

Hệ thống giao diện được thiết kế chi tiết gồm 28 màn hình và pop-up chức năng. Quá trình kiểm thử ứng dụng được tiến hành từ ngày 21/11/2024 đến 25/11/2024, tập trung kiểm tra độ ổn định của các chức năng giao diện, kiểm tra ràng buộc nghiệp vụ và sự đồng bộ dữ liệu giữa Frontend và Backend trên các bộ dữ liệu mô phỏng.

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

Phần mở đầu và Chương 1: Nghiên cứu công nghệ nền tảng

Tác giả làm rõ cơ sở lý luận về các công cụ phát triển phần mềm, đánh giá chi tiết đặc điểm kỹ thuật cùng ưu điểm và nhược điểm của từng công nghệ lựa chọn:

Công nghệ Khái niệm & Đặc điểm chính Ưu điểm theo tác giả Nhược điểm theo tác giả
Spring Boot Framework Java mã nguồn mở, hoạt động theo triết lý "Convention over Configuration", tích hợp server nhúng (Tomcat, Jetty). Dễ sử dụng, tự động hóa cấu hình, chạy ứng dụng độc lập, quản lý cấu hình linh hoạt, tích hợp mạnh mẽ với hệ sinh thái Spring. Tiêu tốn tài nguyên hệ thống, kích thước ứng dụng lớn, độ phức tạp cao khi tùy chỉnh sâu các cấu hình mặc định, phụ thuộc Spring.
Angular Framework frontend của Google viết bằng TypeScript, theo mô hình Component-Based, hỗ trợ Two-Way Data Binding, DI, Routing. Tính tái sử dụng cao, hỗ trợ TypeScript an toàn kiểu dữ liệu, hệ thống routing mạnh mẽ, hỗ trợ tốt công cụ kiểm thử Jasmine/Karma. Đường cong học tập dốc (khó tiếp cận với RxJS, DI), dung lượng ứng dụng lớn, hiệu suất chưa tối ưu cho các website quy mô nhỏ.
MySQL Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở của Oracle, quản lý dữ liệu dạng bảng, tuân thủ ACID. Miễn phí, hiệu suất xử lý truy vấn cao, dễ cấu hình và sử dụng, bảo mật tốt, tương thích đa nền tảng và hỗ trợ replication. Khả năng mở rộng cho Big Data kém hơn NoSQL, hỗ trợ kiểu dữ liệu phi cấu trúc hạn chế, quản lý giao dịch phức tạp tốn tài nguyên.

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Chương này tập trung đánh giá hai hệ thống giao hàng thực tế tại thị trường Việt Nam nhằm rút ra bài học thiết kế cho hệ thống mới:

Hệ thống khảo sát Ưu điểm ghi nhận Hạn chế ghi nhận
Shopee (phần giao hàng) Giao diện đơn giản, dễ thao tác; dễ dàng theo dõi; phân loại đơn hàng theo trạng thái rõ ràng; thông tin hiển thị đầy đủ. Thời gian dự kiến giao hàng chưa hoàn toàn chính xác; thông tin trạng thái chi tiết của hành trình đơn hàng còn thiếu cụ thể.
J&T Express Giao diện đầy đủ, đẹp mắt; phong cách thiết kế chuyên nghiệp; phân loại đơn hàng theo các trạng thái trực quan. Tồn tại nhiều chi tiết thừa trên màn hình hiển thị; cấu trúc điều hướng còn tương đối phức tạp đối với người dùng thông thường.

Từ kết quả khảo sát, tác giả xây dựng bảng phân tích yêu cầu nghiệp vụ theo 6 nhóm tác nhân:

  • Khách: Đăng ký tài khoản; tra cứu và theo dõi đơn hàng bằng mã vận đơn.
  • Người dùng: Đăng nhập/đăng xuất, quên mật khẩu; quản lý hồ sơ và đổi mật khẩu; tạo đơn hàng mới, chỉnh sửa đơn hàng; theo dõi đơn hàng của tôi.
  • Người quản trị: Quản lý hệ sinh thái kho bãi (tạo, cập nhật, xóa, vô hiệu hóa, kích hoạt kho); phân quyền tài khoản; chỉ định quản lý kho; chỉ định nhân viên lấy/giao hàng cho từng kho.
  • Quản lý kho: Xác nhận đơn hàng đang chờ tiếp nhận; phân công shipper lấy/giao hàng; chỉ định người vận chuyển liên kho tới kho đích.
  • Người lấy/giao hàng: Xác nhận trạng thái đang lấy/đã lấy hàng; xác nhận trạng thái đang giao/đã giao hàng và thu tiền.
  • Người vận chuyển: Quản lý danh sách hàng hóa chuyển tiếp; xác nhận đang vận chuyển và đã vận chuyển đơn hàng liên kho.

Yêu cầu phi chức năng được xác định gồm 4 tiêu chuẩn: giao diện thân thiện dễ sử dụng; tốc độ phản hồi thao tác nhanh chóng và chính xác; hệ thống vận hành ổn định với độ bảo mật dữ liệu cao; mã nguồn được tổ chức khoa học để dễ dàng bảo trì và nâng cấp.

Chương 3: Mô hình hóa yêu cầu và thiết kế phần mềm

Nội dung trọng tâm của khóa luận thể hiện qua hệ thống sơ đồ Use Case và bảng đặc tả chi tiết 25 ca sử dụng chính:

  • Nhóm xác thực và người dùng (UC-3.1 đến UC-3.8): Đăng ký (ràng buộc mật khẩu 8-20 ký tự, username 6-16 ký tự); Đăng nhập bằng tên tài khoản hoặc email đã xác thực; Đăng xuất; Quên mật khẩu qua email; Xác thực email bằng mã OTP; Đổi email (email mới lưu tạm chờ xác thực nếu email cũ đã kích hoạt); Đổi địa chỉ qua bản đồ tìm kiếm; Đổi mật khẩu.
  • Nhóm quản trị hạ tầng kho bãi và tài khoản (UC-3.9 đến UC-3.15): Tạo mới, cập nhật thông tin, vô hiệu hóa và kích hoạt lại kho hàng; Cập nhật quyền hạn người dùng; Chỉ định người quản lý cho kho hàng (yêu cầu hệ thống phải có sẵn nhân sự quản lý); Thêm người lấy/giao hàng cho kho (chỉ được gán nhân viên đang rảnh, không trong tiến trình đi đơn).
  • Nhóm quản lý đơn hàng của khách (UC-3.16 đến UC-3.18): Tạo đơn hàng mới (hệ thống kiểm tra nếu địa chỉ gửi hoặc nhận không nằm trong vùng kho hỗ trợ thì lập tức từ chối và cảnh báo lỗi); Chỉnh sửa đơn hàng (chỉ cho phép khi đơn chưa được quản lý kho xác nhận); Tìm kiếm đơn hàng qua mã vận đơn.
  • Nhóm điều phối và xử lý vận chuyển (UC-3.19 đến UC-3.25): Xác nhận đơn hàng (Quản lý kho gán người lấy hàng); Chọn người vận chuyển đơn hàng liên kho tới kho đích; Xác nhận đang lấy và đã lấy hàng (kèm xác thực trạng thái thanh toán trước); Xác nhận đang giao và đã giao hàng (bật pop-up xác nhận thu tiền nếu đơn chưa thanh toán); Xác nhận đang vận chuyển và đã vận chuyển liên kho.

Chương này cũng mô tả chi tiết 5 bảng CSDL và cấu trúc của 28 giao diện/pop-up tương ứng với từng vai trò tác nhân.

Chương 4 và Chương 5: Cài đặt, kiểm thử và kết luận

Chương 4 ghi nhận kết quả kiểm thử chức năng giao diện, kiểm tra các luồng xử lý cơ bản và ngoại lệ của hệ thống từ ngày 21/11/2024 đến 25/11/2024. Chương 5 tổng kết lại toàn bộ các mục tiêu đã hoàn thành của đồ án tốt nghiệp kỹ sư và định hướng mở rộng hệ thống.

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

Đồ án ghi nhận các kết quả kỹ thuật cụ thể đã hoàn thành theo kế hoạch:

  • Xây dựng thành công hệ thống website logistics hoàn chỉnh gồm 2 phần độc lập: backend viết bằng Java (Spring Boot) cung cấp RESTful API và frontend viết bằng Angular kết hợp Tailwind CSS.
  • Thiết kế hệ thống cơ sở dữ liệu quan hệ MySQL gồm 5 bảng dữ liệu thực thể chính: user_profiles, refresh_tokens, notifications, warehouses, shipments.
  • Xây dựng hoàn chỉnh mô hình hóa yêu cầu với 5 sơ đồ ca sử dụng, hệ thống sơ đồ tuần tự và 25 kịch bản đặc tả Use Case chi tiết (từ UC-3.1 đến UC-3.25).
  • Hiện thực hóa 28 giao diện màn hình và cửa sổ pop-up xử lý tương tác cho toàn bộ 6 nhóm tác nhân.
  • Tác giả đề xuất quy trình giao nhận logistics 5 bước chuẩn hóa: Tạo đơn và kiểm tra bán kính kho phủ sóng -> Quản lý kho tiếp nhận và điều phối shipper lấy hàng -> Đưa hàng về kho và phân công vận chuyển liên kho -> Tiếp nhận tại kho đích -> Phân công shipper giao hàng chặng cuối và thu tiền.

Đóng góp của khóa luận nằm ở việc số hóa quy trình logistics theo luồng nghiệp vụ chặt chẽ, giải quyết được sự thiếu minh bạch thông tin mà người dùng thường gặp phải ở các nền tảng thương mại điện tử, đồng thời cung cấp tài liệu đặc tả use case có cấu trúc nghiệp vụ rõ ràng cho bài toán phân quyền vận tải.

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

Theo nội dung trình bày và phạm vi thực hiện của đề tài, công trình còn tồn tại các hạn chế:

  • Thời gian nghiên cứu và thực hiện tương đối ngắn (khoảng 3 tháng, từ tháng 9 đến tháng 12 năm 2024), do đó hệ thống chỉ mới tập trung vào các chức năng cơ bản của dịch vụ giao nhận.
  • Phần khảo sát hiện trạng mới dừng lại ở mức độ phân tích giao diện người dùng bên ngoài của hai hệ thống Shopee và J&T Express.
  • Hoạt động kiểm thử mới tập trung vào kiểm tra giao diện và luồng hoạt động với bộ dữ liệu giả lập, chưa thực hiện kiểm thử tự động toàn diện (Unit Test, Integration Test) và chưa đánh giá tải lớn trong môi trường thực tế.

Hướng phát triển tiếp theo được xác định bao gồm:

  • Tích hợp thêm các thuật toán điều phối và tối ưu hóa tuyến đường vận chuyển tự động giữa các kho bãi.
  • Tích hợp các cổng thanh toán trực tuyến và dịch vụ bản đồ số thương mại để tính toán khoảng cách tự động.
  • Viết bổ sung các bài kiểm thử tự động với framework Jasmine/Karma ở frontend và JUnit ở backend để nâng cao độ tin cậy.

Giá trị tham khảo

Đồ án là nguồn tài liệu hữu ích cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm đang thực hiện khóa luận tốt nghiệp hoặc đồ án môn học liên quan đến lập trình web full-stack với cặp công nghệ Spring Boot và Angular.
  • Những người nghiên cứu và phát triển phần mềm muốn tìm hiểu quy trình phân tích ca sử dụng và thiết kế cơ sở dữ liệu cho hệ thống quản lý giao nhận hàng hóa nội địa.

Các phần có giá trị tham khảo nổi bật trong tài liệu bao gồm:

  • Danh mục 25 kịch bản đặc tả Use Case chi tiết với các quy định nghiệp vụ thực tế (ràng buộc kiểm tra phạm vi kho bãi khi tạo đơn, ràng buộc trạng thái rảnh của shipper khi gán việc, cơ chế bảo vệ tài khoản khi đổi email).
  • Ma trận phân quyền tương tác giữa 6 nhóm tác nhân trong cùng một chuỗi cung ứng giao nhận.
  • Cấu trúc thiết kế 5 bảng cơ sở dữ liệu và quy trình điều hướng trạng thái đơn hàng.

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

1. Khóa luận phân chia hệ thống quản lý vận chuyển thành bao nhiêu nhóm tác nhân và gồm những vai trò nào? Văn bản phân chia hệ thống thành 6 nhóm tác nhân: Khách (Guest - chỉ tra cứu và đăng ký), Người dùng (User - tạo đơn, quản lý thông tin), Người quản trị (Admin - quản lý kho, tài khoản và phân quyền), Người quản lý kho (Warehouse Manager - duyệt đơn, phân công shipper và người vận chuyển liên kho), Người lấy/giao hàng (Shipper - xác nhận lấy và phát hàng), Người vận chuyển (Transporter - vận chuyển hàng hóa giữa các kho).

2. Khi người dùng tạo một đơn hàng mới (UC-3.16), hệ thống đặt ra quy định nghiệp vụ và điều kiện ngoại lệ gì? Quy định nghiệp vụ yêu cầu các trường thông tin đơn hàng không được bỏ trống. Về mặt ngoại lệ, nếu địa chỉ lấy hàng hoặc địa chỉ giao hàng của người dùng không nằm gần kho chứa hàng nào của hệ sinh thái, hệ thống sẽ từ chối tạo đơn và thông báo cho người dùng biết khu vực chưa được hỗ trợ.

3. Cơ chế thay đổi email tài khoản (UC-3.6) được thiết kế xử lý như thế nào để đảm bảo tính an toàn? Hệ thống quy định: nếu email cũ của tài khoản chưa từng được xác thực thì sẽ được đổi trực tiếp sang email mới; nếu email cũ đã được xác thực trước đó, email mới nhập vào sẽ chỉ được lưu tạm thời và chỉ chính thức thay thế email cũ sau khi người dùng thực hiện xác thực thành công.

4. Dữ liệu của hệ thống logistics này được lưu trữ trong những bảng cơ sở dữ liệu nào? Theo mục lục và danh mục bảng của đồ án, cơ sở dữ liệu MySQL bao gồm 5 bảng chính: user_profiles (hồ sơ người dùng), refresh_tokens (mã làm mới phiên đăng nhập), notifications (thông tin thông báo), warehouses (danh mục kho chứa hàng), và shipments (thông tin đơn hàng vận chuyển).

5. Người dùng có thể chỉnh sửa thông tin đơn hàng đã tạo trong trường hợp nào? Theo đặc tả Use Case UC-3.17, tiền điều kiện bắt buộc để người dùng có thể chỉnh sửa thông tin đơn hàng là đơn hàng đó chưa được xác nhận bởi người quản lý kho. Nếu đơn hàng đã được người quản lý tiếp nhận và điều phối, quyền chỉnh sửa sẽ bị khóa.

Kết luận

Đồ án tốt nghiệp "Xây dựng Website Logistic (Shipping)" của tác giả Phan Công Tú đã hoàn thành việc nghiên cứu và ứng dụng bộ công nghệ Spring Boot, Angular và MySQL vào bài toán quản lý dịch vụ giao nhận hàng hóa. Đề tài đã chuẩn hóa quy trình điều phối logistics qua mạng lưới kho bãi với 6 vai trò tác nhân, 25 kịch bản ca sử dụng chi tiết và 28 giao diện màn hình thao tác. Đây là công trình kỹ thuật phần mềm có tính thực tiễn cao, phản ánh đầy đủ chu trình phát triển một ứng dụng web full-stack phục vụ xu hướng chuyển đổi số trong lĩnh vực giao vận.