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

Khóa luận tốt nghiệp "Xây dựng trang web đặt xe bus với công nghệ Laravel Framework" được thực hiện bởi sinh viên Đặng Minh Tuấn (ngành Kỹ thuật Phần mềm, Khóa K44, Trường Đại học Khoa học – Đại học Huế) dưới sự hướng dẫn của thầy Lê Văn Tường Lân vào tháng 6 năm 2024. Đề tài thuộc lĩnh vực Công nghệ thông tin và Kỹ thuật phần mềm, tập trung vào việc thiết kế và phát triển ứng dụng web thương mại điện tử phục vụ dịch vụ vận tải công cộng.

Bối cảnh thực tiễn được tác giả nêu rõ xuất phát từ sự phát triển kinh tế và nhu cầu du lịch, di chuyển liên tỉnh của người dân Việt Nam ngày càng tăng cao. Trong các loại hình giao thông, xe bus và xe khách là phương tiện phổ biến nhờ chi phí thấp và tính thuận tiện. Tuy nhiên, hoạt động vận tải hành khách thực tế vẫn bộc lộ nhiều bất cập: hành khách không nắm được thời gian cụ thể giữa các chuyến, vị trí điểm đến cách xa bến đỗ, và quy trình mua vé truyền thống buộc người dân phải trực tiếp ra bến để hỏi thông tin và giao dịch. Tác giả tham chiếu mô hình đặt vé trực tuyến tại các quốc gia phát triển ở Châu Âu và nhận định việc số hóa dịch vụ đặt xe bus qua trang web là xu hướng tất yếu nhằm hỗ trợ khách hàng tiếp cận dịch vụ thuận tiện hơn.

Mục tiêu nghiên cứu của đồ án được xác định cụ thể như sau:

  1. Ứng dụng công nghệ thông tin nhằm hỗ trợ các doanh nghiệp vận hành xe khách liên tỉnh tối ưu hóa quy trình quản lý và vận hành.
  2. Đơn giản hóa quy trình đặt chỗ cho hành khách, giảm thiểu các lỗi vận hành cơ bản trong mạng lưới xe bus công cộng, nâng cao chất lượng dịch vụ và năng suất đặt xe.
  3. Tiết kiệm thời gian giao dịch: cho phép hành khách tra cứu lịch trình, lựa chọn chuyến xe và thời gian di chuyển trực tiếp trên hệ thống mà không cần đến bến xe.
  4. Tối ưu hóa công tác giám sát: cung cấp công cụ quản lý số lượng chuyến được đặt để doanh nghiệp làm căn cứ điều chỉnh giá vé phù hợp.
  5. Về mặt học thuật cá nhân: nghiên cứu chuyên sâu các công nghệ web gồm ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu MySQL, thư viện giao diện Bootstrap và Laravel Framework, đồng thời rèn luyện kỹ năng giải quyết nghiệp vụ phần mềm đặt vé.

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

  • Đối tượng nghiên cứu: Người dân Việt Nam và khách du lịch có nhu cầu sử dụng dịch vụ vận tải hành khách bằng xe bus.
  • Phạm vi nghiên cứu: Khảo sát và triển khai hệ thống dịch vụ trên phạm vi toàn quốc.

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

Khóa luận áp dụng phương pháp luận phát triển phần mềm theo quy trình phân tích, thiết kế và hiện thực hóa hệ thống thông tin. Tác giả sử dụng các khung lý thuyết, công nghệ và tiêu chuẩn kỹ thuật sau:

1. Khung lý thuyết kiến trúc phần mềm

  • Mô hình MVC (Model – View – Controller): Phân tách ứng dụng thành ba thành phần độc lập nhằm tối ưu hóa việc quản lý mã nguồn.
    • Model: Chịu trách nhiệm lưu trữ toàn bộ dữ liệu, là cầu nối xử lý logic dữ liệu giữa cơ sở dữ liệu và Controller.
    • View: Giao diện người dùng, hiển thị dữ liệu và tiếp nhận tương tác trực quan. View không giao tiếp trực tiếp với Model mà thông qua Controller.
    • Controller: Đóng vai trò điều phối, tiếp nhận yêu cầu từ client qua giao thức HTTP, điều hướng xử lý dữ liệu với Model và trả kết quả về View.
    • Tác giả phân tích ưu điểm của MVC gồm: tiết kiệm băng thông (không sử dụng viewstate), dễ kiểm thử và bảo trì mã nguồn, hỗ trợ phân công nhiều lập trình viên làm việc song song. Nhược điểm của mô hình là cấu trúc cồng kềnh đối với các dự án nhỏ và đòi hỏi thời gian thiết lập ban đầu.

2. Nền tảng công nghệ và tiêu chuẩn kỹ thuật

  • Ngôn ngữ lập trình PHP: Ngôn ngữ kịch bản phía máy chủ (Hypertext Preprocessor), mã nguồn mở, nhúng trực tiếp vào HTML để xử lý dữ liệu động, tệp tin và cơ sở dữ liệu. Tác giả chỉ ra nhược điểm của PHP nguyên bản là vấn đề an ninh do mã nguồn mở dễ bị dò quét lỗ hổng và hiệu suất chưa tối ưu nếu không có khung hỗ trợ.
  • Laravel Framework: Được Taylor Otwell phát triển từ tháng 6 năm 2011 nhằm thay thế CodeIgniter. Laravel cung cấp các công cụ:
    • Eloquent ORM: Thao tác cơ sở dữ liệu quan hệ qua cú pháp hướng đối tượng.
    • Artisan CLI: Giao diện dòng lệnh hỗ trợ sinh mã, cấu hình và quản trị ứng dụng.
    • Migrations & Seeders: Quản lý phiên bản cấu trúc bảng và dữ liệu mẫu.
    • Cơ chế an ninh: Sử dụng PDO để chống tấn công SQL Injection, token ẩn CSRF để chống tấn công giả mạo yêu cầu, và tự động escape biến trong Blade template để ngăn ngừa lỗi XSS.
    • SwiftMailer API: Hỗ trợ gửi thư điện tử qua môi trường đám mây hoặc cục bộ.
  • Hệ quản trị cơ sở dữ liệu MySQL: Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở của tập đoàn Oracle, sử dụng ngôn ngữ SQL. Tác giả lưu ý hạn chế của MySQL khi số lượng bản ghi tăng cao cần áp dụng giải pháp phân tải cơ sở dữ liệu hoặc tạo bộ đệm (cache).
  • Kiến trúc REST API và giao thức HTTP: Ứng dụng tiêu chuẩn truyền tải trạng thái tài nguyên qua các phương thức HTTP cơ bản:
    • GET: Truy vấn danh sách hoặc chi tiết tài nguyên.
    • POST: Khởi tạo tài nguyên mới.
    • PUT/PATCH: Cập nhật tài nguyên hiện có.
    • DELETE: Xóa bỏ tài nguyên.
Mã trạng thái HTTP Tên chuẩn Ý nghĩa nghiệp vụ trong hệ thống
200 OK Yêu cầu thực thi thành công (GET, PUT, PATCH, DELETE).
201 Created Tài nguyên mới đã được tạo thành công (POST).
204 No Content Yêu cầu xóa tài nguyên thành công, không trả về nội dung.
304 Not Modified Client tái sử dụng dữ liệu bộ đệm (cache), máy chủ không đổi.
400 Bad Request Cú pháp yêu cầu từ client không hợp lệ.
401 Unauthorized Yêu cầu cần thông tin xác thực danh tính.
403 Forbidden Máy chủ từ chối cấp quyền truy cập tài nguyên.
404 Not Found Không tìm thấy tài nguyên tương ứng với URI.
405 Method Not Allowed Phương thức HTTP không được hỗ trợ cho tài nguyên hiện tại.
410 Gone Tài nguyên đã bị xóa vĩnh viễn và không còn khả dụng.
415 Unsupported Media Type Định dạng dữ liệu gửi lên không được hỗ trợ.
422 Unprocessable Entity Dữ liệu không vượt qua khâu kiểm tra hợp lệ (validation).
429 Too Many Requests Yêu cầu bị chặn do vượt quá giới hạn tần suất truy cập.

3. Phương pháp nghiên cứu và thiết kế

Tác giả sử dụng phương pháp phân tích yêu cầu nghiệp vụ hệ thống thông tin:

  • Khảo sát quy trình nghiệp vụ đặt xe khách liên tỉnh thực tế.
  • Mô hình hóa chức năng bằng sơ đồ ca sử dụng tổng quát và chi tiết (Use Case Diagram).
  • Xây dựng kịch bản ca sử dụng chi tiết gồm luồng sự kiện chính (Basic Flow) và luồng rẽ nhánh (Alternative Flows).
  • Mô hình hóa tiến trình xử lý thông qua sơ đồ hoạt động (Activity Diagram).
  • Thiết kế mô hình dữ liệu quan hệ logic và vật lý trên MySQL.

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

1. Kiến trúc phần mềm và cấu trúc mã nguồn Laravel

Hệ thống được tổ chức theo cấu trúc thư mục tiêu chuẩn của Laravel Framework:

  • app/: Chứa toàn bộ mã nguồn nghiệp vụ của ứng dụng.
    • Console/: Định nghĩa các lệnh Artisan tùy biến.
    • Exceptions/: Quản lý và xử lý ngoại lệ phát sinh; chứa tệp Handler.php.
    • Http/: Chứa các bộ điều khiển (Controllers) xử lý request và Middleware kiểm soát luồng truy cập.
    • Models/: Chứa các lớp thực thể Eloquent ORM ánh xạ tới bảng trong cơ sở dữ liệu.
    • Providers/: Chứa các Service Provider đăng ký dịch vụ và khởi tạo vòng đời ứng dụng.
  • bootstrap/: Chứa tệp app.php khởi tạo khung làm việc và thư mục bộ đệm tối ưu hóa định tuyến, cấu hình.
  • config/: Chứa toàn bộ các tệp cấu hình về cơ sở dữ liệu, bộ nhớ đệm, phiên làm việc.
  • database/: Chứa các tệp di chuyển cấu trúc bảng (migrations) và khởi tạo dữ liệu (seeders).
  • public/: Thư mục gốc công khai chứa tệp index.php tiếp nhận mọi request, cùng các tài nguyên tĩnh (CSS, JavaScript, hình ảnh).
  • resources/: Chứa các mẫu giao diện Blade view và tệp giao diện thô chưa biên dịch.
  • routes/: Định nghĩa các tuyến đường dẫn của ứng dụng, gồm web.php và channels.php.
  • storage/: Lưu trữ nhật ký lỗi (logs), phiên làm việc (sessions), bộ đệm giao diện đã biên dịch.
  • tests/: Chứa các kịch bản kiểm thử tự động dựa trên PHPUnit.
  • vendor/: Chứa các gói thư viện phụ thuộc được quản lý bởi Composer.

Yêu cầu môi trường vận hành hệ thống:

  • Phiên bản PHP tối thiểu: PHP >= 5.9.
  • Các phần mở rộng PHP bắt buộc: OpenSSL, PDO, Mbstring, Tokenizer.
  • Công cụ máy chủ cục bộ: XAMPP, OpenServer.
  • Lệnh cài đặt khung làm việc qua Composer: composer global require "laravel/installer" hoặc composer create-project --prefer-dist laravel/laravel blog.

2. Phân rã tác nhân và ma trận chức năng hệ thống

Hệ thống nhận diện 3 nhóm tác nhân chính với các thẩm quyền phân định rõ:

  1. Khách vãng lai (Guest): Người dùng chưa có tài khoản, được phép tìm kiếm chuyến xe, xem thông tin chuyến đi và đăng ký tài khoản mới.
  2. Người dùng thành viên (User): Hành khách đã có tài khoản, được phép đăng nhập, tìm kiếm chuyến xe, thực hiện đặt chỗ, quản lý danh sách đặt chỗ cá nhân ("Đặt chỗ của tôi"), cập nhật thông tin cá nhân và thay đổi mật khẩu.
  3. Quản trị viên (Admin): Người quản trị toàn bộ hệ thống, phụ trách quản lý danh mục xe, quản lý địa điểm đón/trả, quản lý tuyến đường, quản lý chuyến đi, quản lý và phê duyệt đặt chỗ của hành khách, theo dõi thống kê số liệu các chuyến đi được đặt nhiều nhất, cập nhật hồ sơ cá nhân và đổi mật khẩu quản trị.
Phân hệ chức năng Tác nhân thực hiện Thao tác và nghiệp vụ chi tiết
Đăng ký tài khoản Khách vãng lai Nhập thông tin biểu mẫu; hệ thống kiểm tra tính hợp lệ và sự tồn tại của email.
Đăng nhập hệ thống Admin, User Xác thực tài khoản bằng Email và Mật khẩu.
Chỉnh sửa cá nhân Admin, User Cập nhật thông tin cá nhân; đổi mật khẩu (xác minh mật khẩu cũ, mật khẩu mới và mật khẩu nhập lại).
Tìm kiếm chuyến xe Khách vãng lai, User Tra cứu chuyến đi dựa trên điểm xuất phát và điểm đến cụ thể.
Đặt chỗ & Xem đặt chỗ User Chọn chuyến xe cần đi, gửi yêu cầu đặt chỗ; theo dõi lại các phiếu đặt trong "Đặt chỗ của tôi".
Quản lý xe Admin Thêm mới, xem chi tiết, chỉnh sửa thông tin, tìm kiếm và xóa thông tin xe khách.
Quản lý địa điểm Admin Thêm mới, chỉnh sửa, xóa và kiểm tra tính khả dụng của các địa điểm/bến đỗ trên tuyến.
Quản lý tuyến đường Admin Thiết lập và quản lý các tuyến lộ trình kèm theo định lượng thời gian di chuyển.
Quản lý chuyến đi Admin Tạo lập chuyến xe cụ thể theo ngày giờ, tuyến đường, điều chỉnh trạng thái chuyến đi.
Quản lý đặt chỗ Admin Theo dõi danh sách phiếu đặt vé của hành khách, thực hiện phê duyệt hoặc hủy đặt chỗ.
Thống kê báo cáo Admin Tổng hợp và hiển thị biểu đồ/báo cáo các chuyến đi được đặt nhiều nhất qua các tháng.

3. Đặc tả kịch bản ca sử dụng và luồng xử lý rẽ nhánh

Các ca sử dụng trọng tâm của hệ thống được xây dựng đầy đủ luồng ngoại lệ nhằm kiểm soát lỗi:

  • Ca sử dụng "Đăng ký": Điều kiện tiên quyết là người dùng có email hợp lệ. Luồng chính tiếp nhận biểu mẫu và chuyển hướng về trang chủ. Luồng rẽ nhánh: A1 thông báo dữ liệu không hợp lệ nếu người dùng nhập sai định dạng; A2 thông báo lỗi nếu email đã tồn tại trong cơ sở dữ liệu.
  • Ca sử dụng "Đăng nhập": Tiếp nhận email và mật khẩu. Luồng rẽ nhánh: A1 hiển thị cảnh báo thông tin đăng nhập không hợp lệ và hoàn trả về form đăng nhập nếu xác thực thất bại.
  • Ca sử dụng "Tìm kiếm chuyến xe": Tiếp nhận điểm đi và điểm đến. Luồng rẽ nhánh: A1 phát thông báo không tìm thấy kết quả nếu điểm người dùng nhập không nằm trong danh mục tuyến đường đã khai báo.
  • Ca sử dụng "Chỉnh sửa cá nhân": Cung cấp 2 nhánh nghiệp vụ: cập nhật thông tin cá nhân và đổi mật khẩu. Luồng đổi mật khẩu kiểm soát 3 nhánh ngoại lệ: A1 thông báo mật khẩu nhập lại không chính xác; A2 yêu cầu mật khẩu mới phải khác mật khẩu hiện tại; A3 cảnh báo mật khẩu xác nhận không khớp với mật khẩu mới.
  • Ca sử dụng quản trị danh mục (Xe, Địa điểm, Tuyến đường, Chuyến đi):
    • Quản lý xe: Luồng rẽ nhánh A1 chặn việc tạo mới nếu tên xe/biển số xe đã tồn tại.
    • Quản lý địa điểm: Luồng rẽ nhánh A1 cảnh báo nếu địa điểm đã tồn tại hoặc không tìm thấy trên bản đồ.
    • Quản lý tuyến đường: Luồng rẽ nhánh A1 từ chối nếu lộ trình thiết lập bị trùng lặp.
    • Quản lý chuyến đi: Luồng rẽ nhánh A1 xử lý trường hợp chuyến đi đã được khởi tạo hoặc chuyến đi đã hết hiệu lực hoạt động.
    • Quản lý đặt chỗ: Luồng rẽ nhánh A1 thông báo khi bản ghi đặt chỗ không tồn tại trong hệ thống.
    • Thống kê: Kiểm soát truy cập trang thống kê; luồng rẽ nhánh A1 từ chối hiển thị và yêu cầu đăng nhập lại nếu phiên xác thực của Admin không chính xác.

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

Khóa luận được cấu trúc thành 3 chương chính với các nội dung chi tiết:

Lời mở đầu

Trình bày tổng quan về tính cấp thiết của đề tài, lý do lựa chọn Laravel Framework kết hợp PHP và MySQL để xây dựng giải pháp đặt xe bus liên tỉnh; xác định mục tiêu giải quyết bất cập trong việc mua vé tại bến; phân định đối tượng nghiên cứu là người dân và du khách, phạm vi triển khai trên toàn quốc.

Chương 1: Tổng quan công nghệ sử dụng

Hệ thống hóa toàn bộ các kiến thức công nghệ nền tảng được tác giả áp dụng trong đồ án:

  • Phân tích cú pháp, ưu điểm và nhược điểm của ngôn ngữ lập trình PHP.
  • Khái niệm về Framework và PHP Framework; kiến trúc MVC với cơ chế phân tách Model, View, Controller và sơ đồ luồng dữ liệu tương tác giữa người dùng và máy chủ.
  • Lịch sử ra đời của Laravel từ phiên bản đầu tiên của Taylor Otwell (tháng 6/2011); đánh giá các ưu điểm nổi bật (hỗ trợ tính năng PHP mới, bảo mật PDO, token CSRF, bảo vệ XSS, cấu hình gửi mail) và nhược điểm (kích thước tải nặng cho ứng dụng di động, thiếu liên kết phiên bản khi nâng cấp mã nguồn).
  • Giới thiệu các công cụ hỗ trợ của Laravel gồm Composer, Eloquent ORM, RESTful API, Artisan, Migrations, Authentication và Unit Testing.
  • Hướng dẫn cài đặt Laravel qua Laravel Installer và Composer; phân tích chi tiết chức năng của 10 thư mục cốt lõi trong hệ thống tệp tin Laravel.
  • Giới thiệu hệ quản trị cơ sở dữ liệu MySQL, đánh giá ưu điểm mã nguồn mở, độ ổn định và nhược điểm suy giảm hiệu năng khi kích thước bản ghi lớn.
  • Khái quát kiến trúc REST API, phương thức xử lý HTTP và bảng mã trạng thái HTTP chuẩn.

Chương 2: Phân tích và thiết kế hệ thống

Là chương trọng tâm của khóa luận, phản ánh toàn bộ tiến trình kỹ thuật phần mềm:

  • Thiết lập sơ đồ ca sử dụng tổng quát (Use Case tổng quát) cho toàn bộ hệ thống với 3 nhóm tác nhân.
  • Xây dựng sơ đồ Use Case chi tiết cho tác nhân Admin (7 nhóm chức năng) và tác nhân User (5 nhóm chức năng).
  • Lập bảng đặc tả chi tiết kịch bản sử dụng cho từng ca sử dụng: Đăng ký, Đăng nhập, Tìm kiếm chuyến xe, Chỉnh sửa cá nhân, Quản lý xe, Quản lý địa điểm, Quản lý tuyến đường, Quản lý chuyến đi, Quản lý đặt chỗ và Thống kê.
  • Trình bày sơ đồ hoạt động (Activity Diagrams) cho 4 quy trình cốt lõi: đăng nhập, đăng ký, tìm kiếm chuyến xe và chỉnh sửa thông tin cá nhân.
  • Thiết kế lược đồ cơ sở dữ liệu quan hệ hoàn chỉnh của hệ thống đặt xe bus.
  • Trình bày kết quả hiện thực hóa qua hệ thống 23 giao diện chụp từ sản phẩm thực tế:
    • Phân hệ người dùng: Giao diện trang chủ, màn hình đăng nhập, màn hình đăng ký tài khoản, màn hình kết quả tìm kiếm chuyến xe, quy trình biểu mẫu đặt chỗ, trang quản lý "Đặt chỗ của tôi", trang cập nhật thông tin cá nhân.
    • Phân hệ quản trị: Trang chủ thống kê chuyến đi được đặt nhiều nhất, các biểu mẫu quản lý xe (danh sách, thêm xe, sửa thông tin xe), quản lý địa điểm (danh sách, tạo địa điểm, sửa địa điểm), quản lý tuyến đường (danh sách, tạo tuyến, sửa tuyến), quản lý chuyến đi (danh sách, tạo chuyến, sửa chuyến) và giao diện kiểm soát cập nhật trạng thái đặt chỗ của khách hàng.

Chương 3: Kết luận và hướng phát triển

Đánh giá tổng kết mức độ hoàn thành mục tiêu đề ra của khóa luận, khẳng định việc xây dựng thành công trang web đặt xe bus đáp ứng các nghiệp vụ cơ bản; đồng thời đề xuất các định hướng mở rộng nghiên cứu và nâng cấp sản phẩm trong tương lai.


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

1. Kết quả thực nghiệm đạt được

Khóa luận đã hoàn thành việc xây dựng ứng dụng web đặt xe bus với các phân hệ chức năng hoạt động đồng bộ:

  • Xây dựng thành công cơ sở dữ liệu quan hệ phục vụ lưu trữ thông tin về xe khách, bến/địa điểm, tuyến đường, chuyến đi, tài khoản người dùng và thông tin phiếu đặt vé.
  • Hoàn thiện giao diện tương tác người dùng gồm 8 màn hình chức năng: Trang chủ tra cứu, Đăng ký, Đăng nhập, Tìm kiếm chuyến xe theo điểm đi - điểm đến, Biểu mẫu đặt vé hai bước, Danh mục quản lý "Đặt chỗ của tôi" và Biểu mẫu đổi thông tin/mật khẩu cá nhân.
  • Hoàn thiện bảng điều khiển quản trị (Admin Dashboard) gồm 15 màn hình giao diện chuyên trách: Trang chủ tích hợp chức năng thống kê các chuyến đi có lượt đặt cao nhất qua các tháng; các phân hệ quản lý toàn diện (CRUD: Thêm, Xem, Sửa, Xóa, Tìm kiếm) dành cho Xe khách, Địa điểm dừng đỗ, Tuyến đường di chuyển, Lịch trình chuyến đi và module Phê duyệt/Cập nhật trạng thái phiếu đặt chỗ của khách hàng.
  • Xử lý thành công các luồng nghiệp vụ xác thực dữ liệu đầu vào và kiểm soát ngoại lệ đăng nhập, trùng lặp bản ghi theo đúng kịch bản phân tích.

2. Giải pháp và đóng góp của đề tài

  • Về giải pháp công nghệ: Ứng dụng thành công Laravel Framework và mô hình MVC trong việc xây dựng hệ thống quản lý vận tải, tận dụng cơ chế an ninh tích hợp (CSRF token, PDO) để bảo vệ hệ thống trước các nguy cơ tấn công web phổ biến (SQL Injection, XSS).
  • Về đóng góp nghiệp vụ: Cung cấp giải pháp số hóa quy trình mua vé xe khách liên tỉnh, giúp loại bỏ thủ tục mua vé trực tiếp tại bến xe, hỗ trợ hành khách chủ động tra cứu lộ trình, đồng thời cung cấp công cụ tập trung cho doanh nghiệp vận tải theo dõi tần suất đặt vé để điều chỉnh giá cước và bố trí phương tiện phù hợp.

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

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

Từ nội dung văn bản và phạm vi phân tích kỹ thuật của tác giả, khóa luận bộc lộ một số điểm hạn chế:

  • Về nền tảng công nghệ: Tác giả chỉ rõ PHP là mã nguồn mở nên tiềm ẩn các lỗ hổng bảo mật nếu không được cập nhật thường xuyên; Laravel Framework có dung lượng tương đối nặng đối với các nền tảng di động và có nguy cơ xung đột mã nguồn khi nâng cấp giữa các phiên bản framework khác nhau; hệ quản trị MySQL có thể suy giảm hiệu năng truy xuất dữ liệu khi số lượng bản ghi tích lũy quá lớn.
  • Về mặt tính năng nghiệp vụ: Hệ thống chưa tích hợp cổng thanh toán trực tuyến tự động; quy trình đặt vé dừng lại ở mức người dùng đăng ký chỗ và người quản trị duyệt thủ công trạng thái phiếu đặt; chưa có cơ chế thông báo tự động (qua SMS hoặc Email xác nhận lịch trình trực tiếp).
  • Về kiểm thử: Báo cáo chủ yếu tập trung vào việc mô tả giao diện và các ca sử dụng thành công/ngoại lệ; văn bản chưa cung cấp các số liệu định lượng về kiểm thử tải, kiểm thử hiệu năng chịu tải đồng thời hoặc kiểm thử an ninh chuyên sâu.

2. Hướng nghiên cứu và phát triển tiếp theo

Tác giả định hướng các nội dung nâng cấp tiếp theo tại Chương 3:

  • Tối ưu hóa hiệu năng hệ thống và cấu trúc truy vấn dữ liệu nhằm đáp ứng lượng người dùng lớn hơn.
  • Mở rộng và hoàn thiện các tính năng nghiệp vụ còn thiếu của hệ thống đặt vé.
  • Tiếp tục nghiên cứu các giải pháp khắc phục nhược điểm về hiệu năng của framework và cơ sở dữ liệu khi mở rộng quy mô hoạt động.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho các nhóm đối tượng sau:

  • Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Tài liệu là một mẫu đồ án tốt nghiệp tiêu biểu về phát triển ứng dụng web hướng nghiệp vụ; hữu ích cho sinh viên cần tài liệu tham khảo về quy trình phân tích ca sử dụng chuẩn, cách thức xây dựng sơ đồ use case tổng quát/chi tiết, sơ đồ hoạt động và lập bảng đặc tả kịch bản có luồng rẽ nhánh cụ thể.
  • Người học và lập trình viên Laravel mới bắt đầu: Phần tổng quan công nghệ cung cấp kiến thức nền tảng có hệ thống về cấu trúc thư mục của Laravel Framework, kiến trúc MVC, tiêu chuẩn thiết kế REST API và các quy tắc kiểm soát an ninh trong ứng dụng web.
  • Nhà phát triển hệ thống quản lý vận tải quy mô nhỏ: Khóa luận cung cấp mô hình thiết kế quan hệ logic giữa các thực thể: Xe – Tuyến đường – Địa điểm – Chuyến đi – Phiếu đặt chỗ, đóng vai trò là khung tham chiếu ban đầu cho các bài toán phần mềm quản lý vận tải hành khách liên tỉnh.

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

1. Khóa luận sử dụng phiên bản PHP nào và yêu cầu các phần mở rộng (extensions) cụ thể nào để cài đặt Laravel?
Theo công bố của tác giả tại Chương 1, hệ thống yêu cầu môi trường máy chủ đáp ứng phiên bản PHP tối thiểu là PHP >= 5.9. Đồng thời, cấu hình PHP bắt buộc phải kích hoạt 4 tiện ích mở rộng cốt lõi: OpenSSL PHP Extension, PDO PHP Extension, Mbstring PHP Extension và Tokenizer PHP Extension.

2. Hệ thống phân chia quyền hạn của ba nhóm tác nhân (Khách vãng lai, Users, Admin) như thế nào?

  • Khách vãng lai chỉ có quyền tìm kiếm chuyến xe, xem thông tin chuyến đi và thực hiện đăng ký tài khoản.
  • Users (Người dùng đã đăng ký) có quyền đăng nhập, chỉnh sửa thông tin cá nhân, đổi mật khẩu, tìm kiếm chuyến xe, tạo phiếu đặt chỗ và theo dõi lịch sử trong "Đặt chỗ của tôi".
  • Admin có toàn quyền quản trị: cập nhật hồ sơ admin, quản lý danh mục xe, quản lý địa điểm, quản lý tuyến đường, quản lý chuyến đi, quản lý và duyệt các đặt chỗ của khách hàng, cùng chức năng xem thống kê chuyến đi được đặt nhiều nhất qua các tháng.

3. Kịch bản ca sử dụng "Chỉnh sửa cá nhân" xử lý các tình huống rẽ nhánh (ngoại lệ) nào khi người dùng đổi mật khẩu?
Trong ca sử dụng "Chỉnh sửa cá nhân" (TH2: Thay đổi mật khẩu), hệ thống thiết lập 3 luồng rẽ nhánh:

  • Nhánh A1: Mật khẩu nhập lại không chính xác (hệ thống báo lỗi và quay lại bước nhập liệu).
  • Nhánh A2: Mật khẩu mới được nhập trùng với mật khẩu cũ (hệ thống thông báo mật khẩu mới bắt buộc phải khác mật khẩu cũ).
  • Nhánh A3: Mật khẩu mới và mật khẩu xác nhận không trùng khớp nhau (hệ thống báo lỗi không khớp và yêu cầu thao tác lại).

4. Laravel Framework cung cấp những giải pháp an ninh nào được tác giả đề cập để bảo vệ ứng dụng?
Tác giả chỉ rõ Laravel tích hợp sẵn 3 cơ chế bảo mật tiêu chuẩn:

  • Sử dụng thư viện PDO để ngăn chặn các cuộc tấn công tiêm mã SQL Injection.
  • Tự động sinh trường mã định danh token ẩn để phòng chống kiểu tấn công giả mạo yêu cầu chéo trang (CSRF).
  • Tự động thoát (escape) các biến dữ liệu trước khi đưa ra tầng hiển thị (View mặc định) nhằm triệt tiêu các cuộc tấn công qua lỗ hổng mã độc chéo trang (XSS).

5. Chức năng thống kê phía quản trị viên (Admin) cung cấp thông tin gì để hỗ trợ doanh nghiệp?
Chức năng thống kê được bố trí ngay tại trang chủ của quản trị viên (Admin Dashboard). Chức năng này cho phép người quản lý theo dõi và tổng hợp số liệu trong vòng các tháng qua để xác định chuyến đi nào có tần suất và số lượng được đặt chỗ nhiều nhất. Dữ liệu này giúp doanh nghiệp nắm bắt nhu cầu đi lại thực tế của hành khách để đưa ra quyết định điều chỉnh giá cước hoặc điều động phương tiện phù hợp.


Kết luận

Khóa luận tốt nghiệp của sinh viên Đặng Minh Tuấn đã hoàn thành mục tiêu xây dựng một ứng dụng web đặt xe bus liên tỉnh hoàn chỉnh dựa trên nền tảng Laravel Framework và hệ quản trị cơ sở dữ liệu MySQL. Báo cáo phản ánh quy trình phát triển phần mềm bài bản thông qua việc thiết lập cấu trúc mô hình MVC, chuẩn hóa kịch bản use case với các luồng rẽ nhánh chặt chẽ và triển khai đầy đủ các giao diện quản trị lẫn người dùng. Dù còn dư địa phát triển ở mảng tích hợp cổng thanh toán trực tuyến và kiểm thử tải quy mô lớn, đề tài là một tài liệu học thuật và kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên công nghệ thông tin trong việc nghiên cứu và triển khai các ứng dụng web quản lý vận tải thực tế.