I. Tổng quan về đồ án xây dựng ứng dụng đặt vé xe online
Đồ án xây dựng ứng dụng đặt vé xe online là một dự án thực tiễn nhằm phát triển nền tảng công nghệ hiện đại để cách mạng hóa cách khách hàng đặt vé xe tại Việt Nam. Đây là một đề tài khóa luận tốt nghiệp ngành Công nghệ Thông tin được thực hiện tại Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh. Ứng dụng này được xây dựng nhằm giải quyết các bài toán trong ngành vận tải hành khách, từ việc quản lý vé xe, lịch trình xe cho đến quy trình thanh toán trực tuyến. Với sự phát triển của công nghệ web và mobile, ứng dụng đặt vé xe online không chỉ mang lại tiện ích cho người dùng mà còn giúp các công ty vận tải nâng cao hiệu quả kinh doanh. Dự án này được hướng dẫn bởi ThS. Mai Tuấn Khôi, kết hợp các công nghệ hiện đại nhất để tạo ra một hệ thống quản lý đặt vé hoàn chỉnh và chuyên nghiệp.
1.1. Định nghĩa và mục đích của ứng dụng đặt vé xe online
Ứng dụng đặt vé xe online là một nền tảng số hóa cho phép người dùng tìm kiếm, so sánh và đặt vé xe thông qua các thiết bị điện tử. Mục đích chính của dự án là xây dựng một hệ thống quản lý vé xe toàn diện bao gồm website quản trị cho admin, ứng dụng mobile cho khách hàng, và cơ sở dữ liệu mạnh mẽ. Ứng dụng này giúp tối ưu hóa quá trình đặt vé, giảm thời gian chờ đợi, cải thiện trải nghiệm khách hàng, và cung cấp công cụ quản lý hiệu quả cho nhà cung cấp dịch vụ.
1.2. Ý nghĩa thực tiễn trong ngành vận tải
Trong bối cảnh ngành vận tải hành khách Việt Nam đang tăng trưởng mạnh mẽ, ứng dụng đặt vé xe online đóng vai trò quan trọng trong quá trình số hóa dịch vụ. Nó giúp khách hàng dễ dàng truy cập thông tin lịch trình, giá vé, và tính năng đặt vé từ bất cứ đâu. Đối với nhà cung cấp dịch vụ, ứng dụng cung cấp công cụ quản lý hiệu quả về doanh thu, lịch trình xe, và thông tin hành khách, từ đó nâng cao cạnh tranh và tạo lợi thế kinh doanh bền vững.
II. Công nghệ và công cụ phát triển ứng dụng
Để xây dựng một ứng dụng đặt vé xe online chuyên nghiệp, dự án sử dụng một bộ công nghệ hiện đại và đáng tin cậy. Phía frontend được phát triển bằng React cho website quản trị và React Native cho ứng dụng mobile, giúp tạo ra giao diện người dùng thân thiện và responsive. Phía backend sử dụng Node.js kết hợp với Express.js để xây dựng API mạnh mẽ. Cơ sở dữ liệu được quản lý bằng MongoDB với Mongoose làm ODM (Object Document Mapper). Bộ công cụ này cho phép đội phát triển tạo ra một hệ thống hoàn chỉnh, an toàn và có khả năng mở rộng cao. Lựa chọn công nghệ này dựa trên nhu cầu thực tế của ngành vận tải và khả năng tích hợp các dịch vụ thanh toán trực tuyến.
2.1. Frontend React và React Native
React được sử dụng để phát triển website quản trị hệ thống dành cho admin, cung cấp giao diện quản lý vé, lịch trình xe, tài khoản người dùng, và báo cáo doanh thu. React Native được dùng để phát triển ứng dụng mobile đa nền tảng (iOS/Android), cho phép khách hàng dễ dàng đặt vé, thanh toán, và theo dõi lịch trình trực tiếp trên điện thoại thông minh. Cả hai công nghệ đều hỗ trợ tạo giao diện hiện đại, mịn màng và cải thiện trải nghiệm người dùng.
2.2. Backend Node.js Express.js MongoDB
Node.js cung cấp nền tảng runtime JavaScript phía server cho phép xử lý yêu cầu từ client một cách nhanh chóng và hiệu quả. Express.js là framework web giúp xây dựng RESTful API dễ dàng và quản lý routing hiệu quả. MongoDB là cơ sở dữ liệu NoSQL linh hoạt, lưu trữ dữ liệu người dùng, vé xe, lịch trình, thanh toán, và Mongoose giúp định nghĩa schema và quản lý dữ liệu một cách có cấu trúc và an toàn.
III. Thiết kế giao diện và kiến trúc hệ thống
Thiết kế giao diện của ứng dụng đặt vé xe online tuân theo nguyên tắc user-centric design với mục đích cung cấp trải nghiệm người dùng tối ưu. Hệ thống được chia thành ba phần chính: giao diện dành cho khách hàng thông thường (Guest/User), giao diện quản trị dành cho nhân viên quản lý (Admin), và cơ sở dữ liệu hỗ trợ toàn bộ hoạt động. Kiến trúc hệ thống sử dụng mô hình client-server, với các endpoint API được thiết kế để xử lý các nghiệp vụ chính: tìm kiếm vé, đặt vé, hủy vé, thanh toán, và quản lý thông tin hành khách. Sơ đồ luồng dữ liệu (Data Flow Diagram) được xây dựng để minh họa chi tiết các quá trình xử lý và tương tác giữa các thành phần hệ thống, đảm bảo tính consistency và security của dữ liệu.
3.1. Giao diện người dùng cho khách hàng
Giao diện người dùng (Guest/User interface) bao gồm các màn hình chính như trang chủ, tìm kiếm vé, chi tiết vé, giỏ hàng, thanh toán, và lịch sử đặt vé. Mỗi màn hình được thiết kế thân thiện, dễ sử dụng với các chức năng tìm kiếm nhanh, lọc theo tiêu chí (thời gian, giá, nhà xe), xem chi tiết xe, chọn chỗ ngồi, và thực hiện thanh toán an toàn. Giao diện được tối ưu hóa cho cả desktop và mobile, đảm bảo khách hàng có thể đặt vé mọi lúc, mọi nơi với trải nghiệm mượt mà.
3.2. Giao diện quản trị cho admin
Giao diện admin cung cấp các công cụ quản lý toàn diện bao gồm: quản lý nhà xe, quản lý tuyến đường, quản lý lịch trình, quản lý vé, quản lý khách hàng, và xem báo cáo doanh thu. Admin có thể tạo, chỉnh sửa, xóa các thông tin về xe, lịch trình chạy, giá vé, và theo dõi tình trạng booking từng chuyến xe. Giao diện này được thiết kế với mục tiêu tối ưu hóa hiệu suất quản lý và cung cấp các dashboard trực quan giúp admin đưa ra quyết định kinh doanh nhanh chóng.
IV. Quy trình phát triển và kết quả thực hiện
Quy trình phát triển ứng dụng đặt vé xe online được thực hiện theo phương pháp agile, bao gồm các giai đoạn: phân tích yêu cầu, thiết kế kiến trúc, lập trình, kiểm thử, và triển khai. Đội phát triển bao gồm hai sinh viên: Phạm Ngọc Diêu (16110291) và Nguyễn Thanh Tân (16110541), dưới sự hướng dẫn của ThS. Mai Tuấn Khôi. Quá trình thực hiện bao gồm khảo sát các ứng dụng tiêu biểu, thu thập yêu cầu từ người dùng thực tế, xây dựng mô hình dữ liệu chi tiết, và lập trình các module chính. Kết quả cuối cùng là một ứng dụng hoàn chỉnh gồm website quản trị, ứng dụng mobile, và cơ sở dữ liệu mạnh mẽ, sẵn sàng đáp ứng nhu cầu thực tế của ngành vận tải hành khách.
4.1. Khảo sát hiện trạng và phân tích yêu cầu
Khảo sát hiện trạng bao gồm việc phân tích các ứng dụng đặt vé xe tiêu biểu hiện có tại Việt Nam và quốc tế, từ đó xác định những tiêu chí mà ứng dụng cần hướng tới. Các tiêu chí này bao gồm: giao diện thân thiện, tính năng tìm kiếm mạnh mẽ, bảo mật dữ liệu, thanh toán linh hoạt, và hỗ trợ khách hàng tốt. Đội phát triển cũng tương tác với người dùng thực tế để hiểu rõ nhu cầu, đau điểm, và mong muốn của họ, từ đó thiết kế một giải pháp đáp ứng chính xác yêu cầu thực tiễn.
4.2. Mô hình hóa yêu cầu và thiết kế cơ sở dữ liệu
Mô hình hóa yêu cầu sử dụng các biểu đồ UML như use case diagram để minh họa các chức năng chính của hệ thống dành cho Guest, User, Admin, và Staff. Thiết kế cơ sở dữ liệu sử dụng MongoDB với các collection cho người dùng, vé xe, lịch trình, thanh toán, đánh giá, và quản lý hệ thống. Sơ đồ ERD (Entity Relationship Diagram) được xây dựng để mô hình hóa các mối quan hệ giữa các đối tượng dữ liệu, đảm bảo tính toàn vẹn và hiệu quả truy vấn dữ liệu.