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

Trong bối cảnh chuyển đổi số và sự phát triển của thương mại điện tử, nhu cầu sử dụng dịch vụ đặt vé máy bay trực tuyến của khách hàng ngày càng gia tăng. Theo số liệu thống kê năm 2022 được trích dẫn trong văn bản, lượng vé máy bay bán ra hàng ngày tại các cảng hàng không quốc tế ở Việt Nam ghi nhận sự tăng trưởng rõ rệt:

  • Sân bay quốc tế Tân Sơn Nhất (TP.HCM): Đạt mức tiêu thụ trung bình hơn 40.000 vé máy bay mỗi ngày.
  • Sân bay quốc tế Nội Bài (Hà Nội): Đạt mức tiêu thụ trung bình hơn 30.000 vé máy bay mỗi ngày.

Phương thức mua vé truyền thống tại các quầy giao dịch trực tiếp bộc lộ nhiều hạn chế về mặt thời gian và tạo ra sự bất tiện cho hành khách. Trong khi đó, các kênh phân phối trực tuyến hiện hữu tại một số đại lý bán vé còn gặp vấn đề về hiệu năng tải trang, giao diện chưa tối ưu và thiếu tính liên kết đa dịch vụ. Việc phát triển một hệ thống quản lý và đặt vé máy bay trực tuyến không chỉ giải quyết bài toán tối ưu hóa quy trình phân phối vé cho doanh nghiệp lữ hành mà còn mở rộng cơ hội kinh doanh các dịch vụ bổ trợ.

Mục tiêu nghiên cứu:

  1. Nắm vững quy trình nghiệp vụ phát triển một ứng dụng web cho phép quản lý việc đặt vé máy bay và các dịch vụ liên quan.
  2. Tối ưu hóa trải nghiệm người dùng trên mọi thiết bị, từ máy tính để bàn (PC) đến thiết bị di động.
  3. Triển khai và cài đặt ứng dụng vào môi trường thực tế.

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

  • Đối tượng nghiên cứu: Công tác quản lý quy trình đặt vé máy bay, phân tích và thiết kế hệ thống thông tin phục vụ hoạt động bán vé và dịch vụ du lịch phụ trợ.
  • Phạm vi khảo sát thực tế: Công ty Cổ phần Du lịch và Xây dựng Nam Thanh (đại lý phân phối vé cho hãng hàng không Vietjet Air, cung cấp dịch vụ khách sạn, taxi, visa, cho thuê xe).
  • Phạm vi công nghệ: Xây dựng hệ thống web application dựa trên hệ sinh thái JavaScript với nền tảng Node.js, framework Express.js cho backend; thư viện React.js kết hợp Redux, Tailwind CSS cho frontend; và hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB.

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

Khung kiến trúc và nền tảng công nghệ

Hệ thống được xây dựng dựa trên các mô hình kiến trúc chuẩn và công nghệ web hiện đại:

  • Mô hình MVC (Model - View - Controller): Đảm bảo sự phân tách độc lập giữa ba thành phần cốt lõi:
    • Model: Chịu trách nhiệm tương tác cơ sở dữ liệu, trích lọc, cập nhật và lưu trữ dữ liệu.
    • View: Thành phần giao diện hiển thị cho người dùng.
    • Controller: Tiếp nhận các yêu cầu từ phía người dùng, điều hướng và xử lý logic (trong môi trường Node.js, hệ thống các routes đảm nhận vai trò của Controller).
  • Kiến trúc RESTful API: Chuẩn giao tiếp giữa frontend và backend thông qua giao thức HTTP với các phương thức chuẩn: GET, POST, PUT, DELETE. Mỗi tài nguyên hệ thống được định danh thông qua các URI cụ thể.
  • Node.js và Express.js: Node.js là môi trường runtime chạy JavaScript hướng sự kiện (event-driven), non-blocking I/O dựa trên V8 JavaScript Engine. Express.js đóng vai trò framework định tuyến, hỗ trợ triển khai các tầng Middleware xử lý logic trung gian (Auth, CORS, CSRF, kiểm tra tính hợp lệ dữ liệu).
  • React.js & Redux: React.js chịu trách nhiệm xây dựng giao diện người dùng đơn trang (Single Page Application - SPA) dựa trên Virtual DOM và cấu trúc Component tái sử dụng. Thư viện Redux được tích hợp để quản lý và dự đoán trạng thái (state management) tập trung trong ứng dụng.
  • Tailwind CSS: Utility-first CSS framework hỗ trợ tùy biến giao diện nhanh chóng và tương thích đa màn hình.
  • Hệ cơ sở dữ liệu MongoDB: Cơ sở dữ liệu NoSQL hướng tài liệu (Document-oriented), dữ liệu lưu trữ dưới dạng JSON/BSON, tổ chức theo Collection. Cung cấp cơ chế mở rộng linh hoạt (Sharding, Replication) và xử lý truy vấn nhanh.
  • Ngôn ngữ mô hình hóa UML: Sử dụng để trực quan hóa, đặc tả và thiết kế hệ thống thông tin hướng đối tượng.

Công cụ phát triển và kiểm thử

  • StarUML: Công cụ mô hình hóa các biểu đồ phân tích thiết kế hệ thống (Use Case, Sequence Diagram, Activity Diagram, Class Diagram).
  • Visual Studio Code: Môi trường tích hợp phát triển mã nguồn (IDE).
  • MongoDB Compass: Giao diện trực quan hỗ trợ quản lý cấu trúc, thực thi truy vấn và theo dõi dữ liệu MongoDB.
  • Postman: Công cụ gửi yêu cầu HTTP và kiểm thử các điểm cuối (endpoints) của RESTful API.

Phương pháp nghiên cứu và thu thập dữ liệu

Tác giả áp dụng phương pháp khảo sát thực tế qua phỏng vấn trực tiếp tại đơn vị thực nghiệm:

Đối tượng phỏng vấn Chức vụ Thời gian khảo sát Nội dung thu thập chính
Lê Đình Dũng Giám đốc Công ty Nam Thanh 06/01/2022 Nhu cầu quản lý khách hàng, lịch trình bay hãng Vietjet Air; yêu cầu tính năng lọc/so sánh giá; khắc phục tình trạng tải trang chậm; yêu cầu kênh thông báo (email, số điện thoại, mạng xã hội); nhu cầu mở rộng dịch vụ bán kèm (taxi, khách sạn tại thị trường nước ngoài).
Nguyễn Thúy Nga Trưởng phòng QL bán vé & CSKH 09/01/2022 Ràng buộc nghiệp vụ: Chưa có tính năng chọn chỗ ngồi trước; yêu cầu dữ liệu Căn cước công dân (CCCD); thời gian đặt vé tối thiểu 6 giờ (thanh toán ngay) hoặc 12 giờ (thanh toán sau) trước giờ bay; quy trình hoàn vé qua nhân viên; phương thức thanh toán quốc tế qua Visa Card, Master Card.

Thiết kế và triển khai

Vai trò người dùng và phân quyền tác nhân (Actors)

Hệ thống xác định 3 tác nhân chính tham gia vào các luồng nghiệp vụ:

  1. Quản lý (Admin): Quản trị toàn bộ hoạt động hệ thống, phân quyền và cấp/hủy tài khoản nhân viên, quản lý thông tin chuyến bay, máy bay, sân bay, khách sạn, taxi, banner quảng cáo, tin tức và theo dõi thống kê doanh thu.
  2. Nhân viên: Thực hiện các nghiệp vụ quản trị danh mục (máy bay, địa điểm bay, chuyến bay, khách sạn, xe taxi), quản lý đơn đặt vé và xử lý thông tin khách hàng.
  3. Khách hàng: Tìm kiếm thông tin chuyến bay, tra cứu giá vé, tra cứu tình trạng vé đã đặt, thực hiện quy trình đặt chỗ và thanh toán trực tuyến, sử dụng dịch vụ phụ trợ (đặt phòng khách sạn/homestay, đặt xe đưa đón sân bay), đọc và tương tác với tin tức.

Thiết kế Use Case và luồng sự kiện chi tiết

Nhóm chức năng Tác nhân thực hiện Luồng xử lý chính Ràng buộc & Ngoại lệ
Đăng nhập Quản lý, Nhân viên, Khách hàng 1. Chọn đăng nhập tại giao diện.
2. Nhập username, password.
3. Hệ thống kiểm tra dữ liệu.
4. Xác thực thành công và cấp quyền truy cập.
- Bắt buộc nhập đầy đủ các trường.
- Sai thông tin: Hệ thống báo lỗi và yêu cầu nhập lại.
Tìm kiếm chuyến bay Khách hàng 1. Nhập thông tin điểm đi, điểm đến, ngày bay.
2. Nhấn tìm kiếm.
3. Hệ thống hiển thị danh sách chuyến bay phù hợp kèm giá vé.
- Bắt buộc nhập đủ các trường tìm kiếm.
- Địa điểm không hợp lệ: Báo lỗi trên giao diện.
Quản lý chuyến bay Quản lý, Nhân viên 1. Chọn phân hệ Quản lý chuyến bay.
2. Thực hiện Thêm mới / Cập nhật / Xóa chuyến bay.
3. Xem danh sách vé khách hàng đã đặt theo từng chuyến bay qua biểu tượng lịch.
- Kiểm tra định dạng dữ liệu đầu vào.
- Xóa chuyến bay: Yêu cầu hộp thoại xác nhận trước khi cập nhật CSDL.
Quản lý máy bay & Địa điểm bay Quản lý, Nhân viên 1. Truy cập danh mục tương ứng.
2. Thêm mới, chỉnh sửa thông tin hoặc xóa bản ghi.
3. Dữ liệu đồng bộ trực tiếp vào cơ sở dữ liệu.
- Dữ liệu không được để trống.
- Cảnh báo định dạng không hợp lệ.
Quản lý khách sạn & Taxi Quản lý, Nhân viên 1. Thiết lập thông tin danh mục khách sạn, loại phòng homestay.
2. Cập nhật bảng thông tin các tuyến taxi đưa đón sân bay.
- Đảm bảo dữ liệu sẵn sàng cho khách hàng chọn kèm khi đặt vé.
Báo cáo thống kê Quản lý 1. Chọn phân hệ thống kê báo cáo.
2. Chọn mục thống kê doanh thu.
3. Hệ thống truy vấn và hiển thị báo cáo doanh số chi tiết.
- Yêu cầu tài khoản có quyền Quản lý đã đăng nhập thành công.

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

Giới thiệu tổng quan

Chương mở đầu xác lập tính cấp thiết của đề tài xuất phát từ sự bùng nổ nhu cầu di chuyển bằng đường hàng không và xu hướng mua sắm trực tuyến. Tác giả chỉ rõ mục tiêu nghiên cứu là hoàn thiện quy trình nghiệp vụ cho hệ thống đặt vé máy bay tích hợp dịch vụ du lịch (xe đưa đón, khách sạn), đảm bảo khả năng tối ưu hóa giao diện trên các loại màn hình khác nhau và triển khai cài đặt ứng dụng thực tế. Giới hạn đề tài tập trung vào việc áp dụng ngăn xếp công nghệ JavaScript (Node.js, Express.js, React.js, MongoDB) để giải quyết bài toán của đại lý bán vé.

Kiến thức nền tảng

Chương này tổng hợp cơ sở lý thuyết về các công nghệ, mô hình kiến trúc và công cụ sử dụng trong đồ án:

  • Kiến trúc MVC & RESTful API: Phân tích nguyên lý phân tách thành phần xử lý logic, dữ liệu và giao diện; cách thức thiết kế các endpoint dựa trên các phương thức HTTP.
  • Môi trường Node.js & Framework Express.js: Làm rõ cơ chế đơn luồng (single-thread), vòng lặp sự kiện (event loop), mô hình I/O không chặn (non-blocking) và cách hoạt động của hệ thống Middleware trong việc tiền xử lý yêu cầu (xác thực, kiểm tra dữ liệu, bảo mật).
  • Cơ sở dữ liệu MongoDB: Trình bày đặc tính lưu trữ hướng tài liệu BSON/JSON, cơ chế phi cấu trúc lược đồ linh hoạt, khả năng mở rộng quy mô thông qua kỹ thuật Sharding và Replication, cùng lưu ý về cơ chế đồng bộ dữ liệu từ RAM xuống đĩa cứng (chu kỳ 60 giây).
  • Thư viện React.js, Redux & Tailwind CSS: Trình bày nguyên lý Virtual DOM, cơ chế quản lý state tập trung, kiến trúc Redux DevTools và khả năng xây dựng giao diện đáp ứng nhanh (Responsive Web Design).
  • Hệ thống công cụ: Giới thiệu chức năng của StarUML, Visual Studio Code, MongoDB Compass và Postman.

Phân tích và thiết kế hệ thống

Chương 3 trình bày toàn bộ kết quả khảo sát thực tế và hồ sơ phân tích thiết kế:

  • Khảo sát đơn vị: Khảo sát chi tiết tại Công ty Cổ phần Du lịch và Xây dựng Nam Thanh (51 Đào Duy Từ, Hà Nội - đại lý Vietjet Air). Ghi nhận các yêu cầu nghiệp vụ thực tế qua phỏng vấn Ban Giám đốc và Bộ phận Chăm sóc khách hàng.
  • Xác định yêu cầu hệ thống: Phân loại chi tiết các yêu cầu chức năng (quản lý chuyến bay, máy bay, đặt vé, đặt phòng, taxi, thanh toán) và yêu cầu phi chức năng (giao diện đơn giản, tốc độ xử lý nhanh, khả năng sao lưu dữ liệu).
  • Mô hình hóa hệ thống bằng UML: Xây dựng hệ thống biểu đồ hoàn chỉnh gồm:
    • Biểu đồ Use Case: Use case tổng quát, use case đăng nhập, quản lý tài khoản, quản lý chuyến bay, quản lý máy bay, quản lý địa điểm bay, quản lý khách sạn, quản lý taxi, báo cáo thống kê.
    • Đặc tả Use Case: Đặc tả chi tiết các luồng sự kiện chính, luồng sự kiện phụ và điều kiện biên cho từng chức năng.
    • Biểu đồ tuần tự (Sequence Diagram): Biểu diễn luồng tương tác thời gian cho các chức năng: đăng nhập, đăng ký, xem chi tiết tin tức, đặt vé máy bay, xóa tài khoản người dùng, tìm kiếm chuyến bay đã đặt.
    • Biểu đồ hoạt động (Activity Diagram): Mô hình hóa tiến trình đăng nhập, đăng ký, thêm/sửa/xóa tài khoản, tìm kiếm chuyến bay, đặt vé máy bay.
    • Biểu đồ lớp chi tiết (Class Diagram): Thiết kế cấu trúc các đối tượng dữ liệu trong hệ thống.
  • Thiết kế cơ sở dữ liệu: Xây dựng các bảng/collection lưu trữ: Bảng sân bay, Bảng chuyến bay, Bảng khách sạn, Danh sách vé đã đặt.

Giao diện chương trình

Chương 4 thể hiện kết quả hiện thực hóa phần mềm qua hệ thống giao diện thực tế của 2 phân hệ:

  • Phân hệ Trang quản trị (Admin):
    • Giao diện đăng nhập trang quản trị.
    • Giao diện bảng điều khiển trang chủ quản trị (Dashboard).
    • Giao diện thêm mới, chỉnh sửa thông tin chuyến bay.
    • Giao diện quản lý banner quảng cáo và tin tức.
  • Phân hệ Trang đặt vé (Người dùng):
    • Giao diện trang chủ tìm kiếm và đặt vé trực tuyến.
    • Giao diện đăng nhập / đăng ký dành cho khách hàng.
    • Giao diện kết quả tìm kiếm chuyến bay và bộ lọc theo tiêu chí.
    • Giao diện tra cứu thông tin chuyến bay đã đặt.

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

Kết quả hệ thống đạt được

Phân hệ Danh mục chức năng đã hoàn thành
Website Quản trị (Admin) - Quản lý tài khoản người dùng và phân quyền nhân viên.
- Quản lý thông tin chuyến bay, máy bay, sân bay và địa điểm bay.
- Quản lý danh mục khách sạn và phòng lưu trú.
- Quản lý thông tin tuyến xe taxi đưa đón.
- Quản lý hệ thống banner quảng cáo và bài viết tin tức.
- Thống kê doanh thu theo kỳ.
Website Người dùng (Client) - Tìm kiếm chuyến bay theo địa điểm và thời gian.
- Đặt vé máy bay trực tuyến và tra cứu vé đã đặt.
- Đặt xe đưa đón tại sân bay.
- Tìm kiếm và đặt phòng khách sạn, homestay.
- Đọc bài viết, bình luận và thêm bài viết vào danh mục yêu thích.
- Hỗ trợ thanh toán trực tuyến qua Internet Banking và thẻ tín dụng quốc tế (Visa Card, Master Card).

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

  1. Khảo sát và số hóa nghiệp vụ thực tế: Đề tài bám sát quy trình hoạt động của một đại lý vé máy bay thực tế (Công ty Nam Thanh), chuyển hóa các quy định bán vé của Vietjet Air thành các quy tắc nghiệp vụ rõ ràng trên nền tảng web.
  2. Tích hợp chuỗi dịch vụ du lịch liên kết: Khác với các hệ thống chỉ bán vé máy bay đơn thuần, đồ án đã mở rộng và tích hợp thành công các dịch vụ bổ trợ quan trọng trong chuỗi trải nghiệm của hành khách (đặt xe taxi sân bay, đặt phòng khách sạn/homestay).
  3. Ứng dụng ngăn xếp công nghệ hiện đại: Khai thác hiệu quả kiến trúc RESTful API kết hợp backend Node.js/Express.js và frontend React.js/Redux, giúp cải thiện tốc độ phản hồi trang, khắc phục nhược điểm về hiệu năng của hệ thống cũ mà doanh nghiệp phản ánh.

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

Hạn chế

  • Chưa có tính năng chọn chỗ ngồi trực tiếp: Dựa trên kết quả khảo sát thực tế tại thời điểm thực hiện, website chưa hỗ trợ hành khách chọn vị trí ghế ngồi cụ thể trên sơ đồ khoang máy bay khi đặt vé.
  • Quy trình hoàn vé chưa tự động hóa: Nghiệp vụ hoàn vé vẫn phụ thuộc vào điều kiện từng hạng vé và yêu cầu khách hàng phải liên hệ trực tiếp với nhân viên hỗ trợ để xử lý thủ công.
  • Ràng buộc cơ sở dữ liệu: Việc sử dụng MongoDB đòi hỏi cơ chế quản lý dữ liệu chặt chẽ ở tầng ứng dụng do thiếu các ràng buộc toàn vẹn khóa ngoại như cơ sở dữ liệu quan hệ (RDBMS), đồng thời cần lưu ý độ trễ ghi dữ liệu từ RAM xuống ổ cứng (chu kỳ 60 giây).

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

  • Xây dựng module hỗ trợ hành khách xem sơ đồ trực quan và chọn chỗ ngồi theo thời gian thực (real-time seat selection).
  • Tích hợp cổng API trực tiếp với nhiều hãng hàng không trong nước và quốc tế khác ngoài Vietjet Air để tự động hóa hoàn toàn quy trình xuất vé và đối soát.
  • Nâng cấp hệ thống thông báo đa kênh tự động (gửi mã vé, thông tin chuyến bay và nhắc lịch qua SMS Brandname, Email và mạng xã hội).
  • Hoàn thiện quy trình xử lý hoàn/hủy vé tự động theo chính sách điều kiện vé trực tiếp trên cổng thanh toán trực tuyến.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên ngành Hệ thống thông tin và Công nghệ thông tin: Là tài liệu mẫu hữu ích về quy trình xây dựng đồ án tốt nghiệp hoàn chỉnh từ bước khảo sát doanh nghiệp, thu thập yêu cầu, mô hình hóa hệ thống bằng chuẩn UML đến lập trình triển khai ứng dụng web Full-stack.
  • Lập trình viên phát triển ứng dụng Web Thương mại điện tử / Du lịch: Cung cấp tài liệu tham khảo chi tiết về cách thiết kế API, cấu trúc cơ sở dữ liệu NoSQL (MongoDB) và tổ chức mã nguồn bằng React.js, Redux và Node.js Express.
  • Nhà quản lý tại các đại lý lữ hành và bán vé máy bay: Cung cấp góc nhìn thực tiễn về cấu trúc một hệ thống quản lý tích hợp vé máy bay và dịch vụ phụ trợ nhằm chuyển đổi số quy trình kinh doanh.

Các nội dung đáng tham khảo nhất trong văn bản: Bảng câu hỏi và kết quả phỏng vấn nghiệp vụ thực tế; hệ thống đặc tả chi tiết các Use Case; và mô hình kiến trúc phân tầng kết hợp giữa Node.js Middleware và React Virtual DOM.


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

1. Đơn vị khảo sát thực tế của đồ án là doanh nghiệp nào và kinh doanh những lĩnh vực gì?
Hệ thống được khảo sát thực tế tại Công ty Cổ phần Du lịch và Xây dựng Nam Thanh (địa chỉ: 51 Đào Duy Từ, Hoàn Kiếm, Hà Nội và chi nhánh 442 Lạc Long Quân, Tây Hồ, Hà Nội). Doanh nghiệp kinh doanh trong các lĩnh vực: Lữ hành quốc tế và nội địa, Đại lý bán vé máy bay Vietjet Air, dịch vụ đặt phòng khách sạn toàn cầu, dịch vụ visa/hộ chiếu, cho thuê xe ô tô và vé tàu xe.

2. Quy định về thời gian đặt vé máy bay trước giờ khởi hành trên hệ thống được thiết lập như thế nào?
Theo thông tin thu thập từ Trưởng phòng quản lý bán vé và chăm sóc khách hàng, hành khách có thể đặt chỗ và mua vé máy bay tối thiểu 6 giờ trước giờ khởi hành đối với hình thức thanh toán ngay, và tối thiểu 12 giờ trước giờ khởi hành đối với hình thức thanh toán sau.

3. Kiến trúc kỹ thuật của hệ thống được xây dựng trên những nền tảng công nghệ nào?
Hệ thống sử dụng ngăn xếp công nghệ JavaScript toàn diện: backend xây dựng trên môi trường runtime Node.js với framework Express.js theo mô hình MVC và kiến trúc RESTful API; frontend phát triển bằng thư viện React.js kết hợp Redux để quản lý state và Tailwind CSS để tạo kiểu giao diện; cơ sở dữ liệu sử dụng MongoDB (NoSQL) quản lý qua MongoDB Compass.

4. Khách hàng sử dụng website có thể thanh toán vé máy bay và các dịch vụ qua những phương thức nào?
Hệ thống hỗ trợ khách hàng thanh toán trực tuyến qua dịch vụ ngân hàng điện tử (Internet Banking) và các loại thẻ tín dụng quốc tế bao gồm Visa Card và Master Card.

5. Phân hệ Quản trị (Admin) cung cấp những tính năng quản lý danh mục nào?
Quản trị viên có thể thực hiện quản lý tài khoản người dùng (cấp mới, phân quyền, hủy tài khoản nhân viên), quản lý chuyến bay, quản lý máy bay, quản lý địa điểm/sân bay, quản lý khách sạn và phòng homestay, quản lý dịch vụ xe taxi đưa đón, quản lý banner quảng cáo, tin tức và theo dõi báo cáo thống kê doanh thu.


Kết luận

Đồ án tốt nghiệp "Phân tích thiết kế và xây dựng Website Quản lý đặt vé máy bay" của sinh viên ngành Hệ thống thông tin, Trường Đại học Công nghệ Giao thông Vận tải đã giải quyết trọn vẹn bài toán số hóa quy trình quản lý và đặt vé máy bay cho đại lý lữ hành. Dựa trên dữ liệu khảo sát thực tế tại Công ty Cổ phần Du lịch và Xây dựng Nam Thanh, tác giả đã ứng dụng thành công bộ công nghệ Node.js, Express.js, React.js và MongoDB để xây dựng một hệ thống hoàn chỉnh, tích hợp đa dạng dịch vụ từ vé máy bay, khách sạn đến xe đưa đón. Kết quả nghiên cứu đáp ứng đầy đủ các yêu cầu nghiệp vụ đặt ra và cung cấp một bộ hồ sơ phân tích thiết kế hệ thống chuẩn mực có giá trị tham khảo học thuật cao.