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

Trong bối cảnh ngành du lịch và nhu cầu di chuyển ngày càng gia tăng, hoạt động cho thuê xe du lịch truyền thống bộc lộ nhiều hạn chế đáng kể. Các phương thức vận hành cũ chủ yếu dựa trên liên lạc qua điện thoại hoặc giao dịch trực tiếp tại điểm thuê, dẫn đến quy trình xử lý thủ công, tốn kém thời gian và dễ phát sinh sai sót như trùng lịch đặt xe (double bookings). Đồng thời, việc thiếu hụt cơ chế cập nhật tình trạng xe trống theo thời gian thực (real-time availability) khiến trải nghiệm của khách hàng bị giảm sút. Du khách, đặc biệt là những người chưa quen thuộc với ngôn ngữ và địa bàn địa phương, gặp nhiều trở ngại khi tiếp cận các dịch vụ này.

Vấn đề cốt lõi được tác giả xác định là sự thiếu vắng một giải pháp kỹ thuật số tích hợp toàn diện. Các nền tảng hiện có trên thị trường thường thiếu các tính năng hỗ trợ thiết yếu như hệ thống nhắn tin trực tiếp (real-time chat), giao diện tối ưu trải nghiệm người dùng, cổng thanh toán bảo mật và kênh hỗ trợ khách hàng tức thời. Về phía đơn vị hoặc cá nhân cho thuê xe, việc không có hệ thống quản lý tập trung gây khó khăn trong việc quản lý đội xe, theo dõi hành trình đơn hàng và phân tích dữ liệu kinh doanh. Đề tài "Xây Dựng Website và Ứng Dụng Di Động Cho Thuê Xe Du Lịch" (tiếng Anh: Building a Website and Mobile Application for Tourist Vehicles Rental) được thực hiện nhằm giải quyết các tồn tại trên thông qua nền tảng đa phương tiện kết nối người thuê xe và chủ sở hữu phương tiện.

Mục tiêu nghiên cứu và phát triển của đề tài bao gồm:

  1. Vận dụng kiến thức chuyên ngành Công nghệ Thông tin vào quy trình phân tích, thiết kế và phát triển dự án thực tế.
  2. Xây dựng hệ thống website và ứng dụng di động thân thiện với người dùng (user-friendly).
  3. Hỗ trợ người dùng tra cứu, xem thông tin và thực hiện quy trình thuê xe một cách thuận tiện.
  4. Cập nhật nhanh chóng thông tin xe mới và hồ sơ của chủ xe.
  5. Thiết kế hệ thống quản lý vận hành gian hàng/đội xe dễ thao tác cho đối tác sở hữu xe.
  6. Đảm bảo tính bảo mật và an toàn cho dữ liệu người dùng.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ thuê xe du lịch tự lái/tiện ích, mô hình kết nối khách thuê xe (Car renter) và chủ xe (Car owner), cùng các công nghệ phát triển ứng dụng web và di động.
  • Phạm vi không gian: Triển khai trên môi trường Web (ReactJS) và ứng dụng di động (React Native, Expo) phục vụ thị trường cho thuê xe du lịch.
  • Phạm vi thời gian: Đồ án tốt nghiệp khóa 2020 – 2024 tại Trường Đại học Sư phạm Kỹ thuật TP.HCM; thời gian giao nhận đề tài từ ngày 04/03/2024 và nộp báo cáo hoàn thiện vào ngày 15/06/2024.

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

Đồ án kết hợp giữa phương pháp nghiên cứu tài liệu kỹ thuật, khảo sát so sánh hiện trạng các hệ thống thực tế và phương pháp kỹ thuật phần mềm để thiết kế, xây dựng và kiểm thử hệ thống.

1. Khảo sát và phân tích hiện trạng

Nhóm tác giả tiến hành khảo sát chức năng, ưu điểm và nhược điểm của các hệ thống cho thuê xe đang vận hành trên thị trường, bao gồm cả nền tảng web và ứng dụng di động:

Tên ứng dụng / Nền tảng Chức năng chính Ưu điểm Hạn chế
Mioto (Website & Mobile App) Hiển thị xe, xem thông tin chủ xe, đăng tin cho thuê xe, đặt xe, thanh toán, tìm xe theo thành phố/thời gian. Giao diện đơn giản, thân thiện; hỗ trợ đa dạng phương thức thanh toán. Quy trình đặt thuê xe còn tương đối phức tạp.
Thuexesaigon (Website) Hiển thị danh sách xe, đặt xe, thanh toán, tìm xe theo tuyến đường/thành phố/thời gian. Đa dạng mẫu mã và mức giá; hỗ trợ nhiều tuyến đường và hình thức thuê. Giao diện phức tạp, rườm rà; chỉ hỗ trợ hình thức thanh toán trực tiếp.
Chungxe (Website) Hiển thị xe, xem thông tin đối tác, đăng ký làm chủ xe, tìm kiếm theo thành phố và thời gian. Giao diện đẹp mắt, tinh gọn; hỗ trợ nhiều tỉnh thành. Quy trình đăng ký đối tác còn phức tạp.
Sigo (Mobile App) Hiển thị xe, đặt xe, thanh toán, đăng ký chủ xe, tìm xe theo địa điểm/thời gian. Hỗ trợ thuê xe tại nhiều tỉnh thành. Giao diện chưa bắt mắt; chỉ hỗ trợ thanh toán trực tiếp.
Holacar (Mobile App) Hiển thị xe, xem thông tin chủ xe, đăng xe cho thuê, đặt xe, tìm xe theo thời gian/địa điểm. Hỗ trợ nhiều thành phố; giao diện trực quan, dễ thao tác. Quy trình đăng ký xe của chủ xe phức tạp.

2. Nền tảng công nghệ sử dụng

Hệ thống được phát triển dựa trên ngăn xếp công nghệ JavaScript toàn diện (Full-stack JavaScript):

  • MongoDB: Cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), lưu trữ dữ liệu dưới định dạng BSON tương tự JSON. CSDL này giúp truy vấn nhanh, lược đồ dữ liệu linh hoạt và lưu trữ đệm dữ liệu trên RAM.
  • Node.js & ExpressJS: Nền tảng backend xử lý bất đồng bộ non-blocking I/O, sử dụng hệ thống Middleware để quản lý xác thực, định tuyến API RESTful và nén dữ liệu.
  • ReactJS: Thư viện giao diện người dùng phía frontend web từ Facebook, sử dụng cú pháp JSX, luồng dữ liệu một chiều (single-way data flow) và Redux để quản lý trạng thái tập trung.
  • React Native & Expo: Framework phát triển ứng dụng di động đa nền tảng cho hệ điều hành iOS và Android từ một cơ sở mã nguồn JavaScript duy nhất.
  • JSON Web Token (JWT): Giao thức xác thực và phân quyền cho hệ thống API.
  • Google Maps API: Đồng bộ hóa dữ liệu vị trí xe, hiển thị bản đồ tương tác, tra cứu thông tin xe theo vị trí thực tế và hỗ trợ chỉ đường.

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

1. Phân quyền và tác nhân hệ thống (Actors)

Hệ thống phân định 4 nhóm tác nhân với các nhóm use case rõ ràng:

  • Khách vãng lai (Guest): Xem danh sách xe, tra cứu/lọc xe theo ngày và địa điểm trên bản đồ, xem thông tin chi tiết xe và chủ xe, đăng ký tài khoản mới, xác thực tài khoản qua OTP/Email, khôi phục mật khẩu.
  • Khách thuê xe (Car renter): Đăng nhập, chỉnh sửa hồ sơ cá nhân, xác thực số điện thoại và giấy phép lái xe (GPLX), quản lý danh sách xe yêu thích (Favorite list), thực hiện đặt chuyến (Book a trip), thanh toán trực tuyến qua cổng VNPay, xem lịch sử chuyến đi, đánh giá/bình luận sau chuyến đi, chat trực tiếp với chủ xe, gửi yêu cầu nâng cấp tài khoản thành chủ xe.
  • Chủ xe (Car owner): Quản lý hồ sơ gian hàng, thêm/sửa/xóa thông tin xe cho thuê, duyệt/hủy chuyến đi, xác nhận chuyến đi hoàn thành, quản lý và phản hồi đánh giá của khách hàng, chat với khách thuê, xuất hợp đồng thuê xe, xem biểu đồ thống kê doanh thu chi tiết từng xe và tổng doanh thu.
  • Quản trị viên (Admin): Quản trị danh mục xe (Category), quản lý toàn bộ tài khoản người dùng, quản lý thông tin xe đăng tải, tiếp nhận và duyệt/từ chối yêu cầu đăng ký làm chủ xe, quản lý các chuyến đi và đánh giá, thống kê doanh thu và báo cáo tăng trưởng người dùng toàn hệ thống.

2. Kế hoạch triển khai kỹ thuật (Implementation Plan)

Dự án được thực hiện qua 7 giai đoạn cụ thể theo kế hoạch:

Giai đoạn Thời gian Nội dung công việc
1 14/03/2024 – 23/03/2024 Khảo sát ứng dụng thực tế; thiết kế use case và đặc tả kỹ thuật dự án.
2 23/03/2024 – 30/03/2024 Nghiên cứu chuyên sâu thư viện ReactJS, nền tảng NodeJS và framework React Native.
3 30/03/2024 – 05/04/2024 Nghiên cứu JWT cho phân quyền API; thiết lập cơ sở dữ liệu MongoDB.
4 06/04/2024 – 03/05/2024 Tích hợp Google Maps API; xây dựng giao diện người dùng (UI) cho hệ thống.
5 04/05/2024 – 08/06/2024 Tích hợp giao diện Frontend, hệ thống API Backend và Cơ sở dữ liệu; hoàn thiện chức năng.
6 09/06/2024 – 18/06/2024 Thực hiện kiểm thử hệ thống (testing) và khắc phục lỗi (bug fixing).
7 19/06/2024 – 20/06/2024 Viết báo cáo tốt nghiệp và hoàn tất tài liệu đồ án.

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

Chương 1: Giới thiệu tổng quan (Introduction)

Chương 1 làm rõ lý do hình thành đề tài, định nghĩa bài toán về sự bất cập của mô hình thuê xe truyền thống và mục tiêu xây dựng giải pháp số hóa. Tác giả xác lập phạm vi nghiên cứu xoay quanh việc phát triển đồng thời cả phiên bản website (ReactJS) và ứng dụng di động (React Native, Expo) kết nối với hệ quản trị MongoDB. Ý nghĩa khoa học và thực tiễn của đề tài được thể hiện qua việc tích hợp các công nghệ mới để giải quyết bài toán kết nối cộng đồng, nâng cao năng lực phân tích và thiết kế phần mềm của sinh viên.

Chương 2: Khảo sát hiện trạng và đánh giá ứng dụng (Application Review and Current Survey)

Chương này đi sâu phân tích 5 hệ thống thực tế (Mioto web/app, Thuexesaigon, Chungxe, Sigo, Holacar), rút ra điểm mạnh về giao diện, tính năng và chỉ ra hạn chế về quy trình thuê/đăng ký xe rườm rà hoặc thiếu phương thức thanh toán điện tử. Từ đó, nhóm đề xuất giải pháp tích hợp các ưu điểm vào hệ thống mới. Ngoài ra, chương 2 cung cấp cơ sở lý thuyết chi tiết về các công nghệ được lựa chọn:

  • Đặc tính NoSQL và cơ chế bộ nhớ đệm của MongoDB.
  • Khả năng xử lý đa luồng I/O bất đồng bộ của Node.js kết hợp framework ExpressJS.
  • Mô hình luồng dữ liệu 1 chiều, Virtual DOM, JSX của ReactJS và thư viện Redux.
  • Tính năng chia sẻ mã nguồn đa nền tảng (cross-platform) của React Native.
  • Cơ chế tích hợp Google Maps API để đồng bộ và hiển thị dữ liệu tọa độ xe.

Chương 3: Đặc tả yêu cầu hệ thống (Requirement Specification)

Chương 3 trình bày toàn bộ các biểu đồ use case tổng quát và chi tiết cho từng tác nhân (Guest, Car renter, Car owner, Admin). Mỗi use case đều được mô tả cấu trúc chặt chẽ gồm: Tên use case, Mô tả, Điều kiện tiên quyết (Pre-conditions), Điều kiện kết thúc (Post-conditions), Luồng sự kiện chính (Event streams/Basic flow) và Luồng ngoại lệ (Exception/Failed). Chương này cũng thiết lập các yêu cầu phi chức năng (Non-functional requirements) nhằm đảm bảo hiệu năng và tính ổn định.

Chương 4: Thiết kế hệ thống (System Design)

Chương 4 tập trung vào việc mô hình hóa hệ thống thông qua:

  • Sơ đồ thực thể quan hệ (Entity Relational Diagram - ERD) và cấu trúc các Collection trong MongoDB (như Car owner collection, User collection, Car collection, Trip collection, Review collection...).
  • Chuỗi biểu đồ tuần tự (Sequence Diagrams) cho các chức năng trọng yếu: Đăng ký, Đăng nhập, Tìm xe, Quên mật khẩu, Xác thực SĐT, Đặt chuyến, Thanh toán, Nâng cấp chủ xe, Nhắn tin (Chat), Quản lý xe, Duyệt yêu cầu đối tác và Thống kê doanh thu.
  • Thiết kế giao diện thực tế của Website và Mobile App từ trang chủ, danh sách xe, tìm kiếm xe trên bản đồ, chi tiết xe, giỏ hàng/thanh toán VNPay, trang quản lý của chủ xe đến bảng điều khiển (Dashboard) của quản trị viên.

Chương 5: Kiểm thử và triển khai (Validation and Deployment)

Chương 5 xây dựng bộ kịch bản kiểm thử (Test case design) chi tiết cho từng đối tượng người dùng (Admin, Car owner, Car renter, Guest) nhằm xác minh tính đúng đắn của các luồng nghiệp vụ. Đồng thời, tài liệu mô tả chi tiết quy trình triển khai hệ thống (Deployment process) bao gồm việc cấu hình, đóng gói và quản lý triển khai cho cả khối Frontend và Backend.

Chương 6: Kết luận (Conclusion)

Tổng kết lại quá trình nghiên cứu, đánh giá mức độ hoàn thành các mục tiêu đã đề ra ban đầu và định hình danh mục tài liệu tham khảo (References).


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

  • Sản phẩm kỹ thuật: Xây dựng thành công hệ thống phần mềm hoàn chỉnh gồm Website và Ứng dụng di động đáp ứng đầy đủ các chức năng cốt lõi của dịch vụ cho thuê xe du lịch.
  • Tính năng nổi bật:
    • Quy trình tìm kiếm và hiển thị xe trực quan thông qua bản đồ tích hợp Google Maps API.
    • Tích hợp cổng thanh toán trực tuyến VNPay giúp thanh toán nhanh chóng, an toàn.
    • Chức năng trò chuyện trực tiếp (Chat) giữa người thuê xe và chủ xe giúp giải quyết yêu cầu trao đổi thông tin tức thời.
    • Module quản lý chuyến đi, xác thực giấy phép lái xe và công cụ tạo/xuất hợp đồng thuê xe cho chủ xe.
    • Hệ thống thống kê doanh thu trực quan bằng biểu đồ cho cả chủ xe và ban quản trị.
  • Quy trình kiểm thử và đóng gói: Hoàn thiện kịch bản kiểm thử cho 4 nhóm tác nhân và thiết lập quy trình triển khai độc lập cho cả dịch vụ Frontend và Backend.

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

  • Hạn chế kỹ thuật:
    • Cơ sở dữ liệu MongoDB lưu trữ dữ liệu dạng phi cấu trúc, thiếu các ràng buộc toàn vẹn quan hệ chặt chẽ và không có cơ chế giao dịch phức tạp chuyên dụng như các hệ thống ngân hàng tài chính lớn.
    • Việc phụ thuộc nhiều vào bộ nhớ RAM của MongoDB đòi hỏi tài nguyên phần cứng tương ứng khi hệ thống mở rộng.
    • Ứng dụng di động xây dựng trên nền tảng lai (React Native) có thể chịu giới hạn về hiệu năng so với các ứng dụng thuần bản địa (Native app) khi xử lý các tác vụ đồ họa hoặc tính toán nặng.
  • Hướng phát triển: Tối ưu hóa hiệu năng truy vấn, nâng cao cơ chế bảo mật cho các giao dịch thanh toán và tiếp tục hoàn thiện giao diện cũng như trải nghiệm người dùng dựa trên phản hồi thực tế.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyê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 hoặc đồ án tốt nghiệp về các đề tài thương mại điện tử, dịch vụ chia sẻ xe (Car sharing/Car rental).
  • Các nhà phát triển muốn tham khảo mô hình kiến trúc ứng dụng Full-stack JavaScript kết hợp giữa ReactJS, React Native, Node.js, ExpressJS và MongoDB.
  • Tài liệu mẫu về phương pháp đặc tả yêu cầu phần mềm, thiết kế use case, xây dựng biểu đồ tuần tự (Sequence diagram) và quy trình kiểm thử hệ thống.

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

1. Đề tài này do ai thực hiện và thuộc đơn vị đào tạo nào?

Đề tài được thực hiện bởi hai sinh viên Trần Tiến Thành (MSSV: 20110567) và Ngô Thanh Phú (MSSV: 20110541), dưới sự hướng dẫn của ThS. Nguyễn Đức Khoan (M.IT Nguyen Duc Khoan) tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE), khóa học 2020 – 2024.

2. Hệ thống hỗ trợ những nhóm đối tượng người dùng nào?

Hệ thống phân quyền cho 4 nhóm tác nhân chính: Khách vãng lai (Guest), Khách thuê xe (Car renter), Chủ xe (Car owner) và Quản trị viên (Admin).

3. Công nghệ nào được sử dụng để xây dựng hệ thống?

Hệ thống sử dụng ngăn xếp công nghệ:

  • Frontend Web: ReactJS, JSX, Redux.
  • Mobile App: React Native, Expo.
  • Backend: Node.js, ExpressJS framework.
  • Cơ sở dữ liệu: MongoDB (định dạng BSON/JSON).
  • Dịch vụ & Tiện ích: Google Maps API (đồng bộ vị trí xe và bản đồ), JWT (xác thực/phân quyền API) và VNPay (cổng thanh toán).

4. Những hệ thống thực tế nào đã được nhóm tác giả khảo sát trước khi thiết kế?

Nhóm tác giả đã tiến hành khảo sát và đánh giá 5 hệ thống thực tế gồm: Mioto (cả website và mobile app), Thuexesaigon (website), Chungxe (website), Sigo (mobile app) và Holacar (mobile app).


Kết luận

Đồ án tốt nghiệp "Xây Dựng Website và Ứng Dụng Di Động Cho Thuê Xe Du Lịch" của nhóm sinh viên Trần Tiến Thành và Ngô Thanh Phú đã hoàn thành toàn diện quy trình kỹ thuật phần mềm từ phân tích nghiệp vụ, khảo sát hiện trạng, thiết kế hệ thống, đến lập trình và kiểm thử. Việc ứng dụng linh hoạt ngăn xếp công nghệ Full-stack JavaScript kết hợp cùng các dịch vụ mở rộng như Google Maps API và VNPay đã giải quyết hiệu quả các rào cản của mô hình thuê xe truyền thống. Đây là công trình đồ án có cấu trúc hoàn chỉnh, đáp ứng chuẩn mực yêu cầu tốt nghiệp đại học ngành Công nghệ Thông tin.