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

Lý do chọn đề tài và bối cảnh thực tiễn

Đề tài đồ án môn học "Xây dựng website cho thuê xe ô tô Online Car Rental" được thực hiện trong bối cảnh dịch bệnh Covid-19 diễn biến phức tạp tại Việt Nam (thời điểm tháng 07/2021). Báo cáo phân tích rằng trước đại dịch, thói quen du lịch của người dân gắn liền với các hoạt động khám phá đô thị đông đúc, chợ truyền thống và quán ăn địa phương. Khi dịch bệnh xuất hiện, nhu cầu an toàn sức khỏe trở thành ưu tiên hàng đầu, dẫn đến sự dịch chuyển sang xu hướng du lịch giãn cách xã hội. Du khách có xu hướng lựa chọn các phương tiện tự lái để đến các địa điểm gần nơi sinh sống nhằm chủ động lộ trình và hạn chế tiếp xúc.

Song song đó, hành vi tiêu dùng của khách hàng cũng chuyển dịch mạnh mẽ sang hình thức trực tuyến. Việc mua sắm và đặt dịch vụ online mang lại lợi thế tiết kiệm thời gian, không cần di chuyển trực tiếp đến cửa hàng, đồng thời cho phép người dùng dễ dàng so sánh, nghiên cứu thông tin sản phẩm và chủ động lựa chọn. Nhằm nắm bắt nhu cầu thuê xe tự lái gia tăng và hỗ trợ chuyển đổi số mô hình kinh doanh truyền thống, nhóm tác giả đã đề xuất xây dựng hệ thống website cho thuê xe ô tô trực tuyến.

Mục tiêu và nhiệm vụ của bài toán

Mục tiêu tổng quát của đồ án là xây dựng một trang web thương mại dịch vụ giúp khách hàng thực hiện việc thuê xe thuận tiện, minh bạch, đồng thời hỗ trợ cửa hàng quản lý và quảng bá thương hiệu. Cụ thể, bài toán đặt ra bao gồm các nhiệm vụ:

  1. Thiết kế giao diện website trực quan, thu hút, dễ sử dụng cho khách hàng khi tìm kiếm và đặt xe.
  2. Xây dựng phân hệ người dùng hỗ trợ đăng ký, đăng nhập, tìm kiếm phương tiện, gửi yêu cầu đặt xe, gửi phản hồi và viết đánh giá.
  3. Xây dựng phân hệ quản trị (Admin) giúp cửa hàng kiểm soát tập trung danh mục xe, thương hiệu, đơn đặt thuê, thông tin tài khoản người dùng, các nội dung tĩnh và tương tác của khách hàng.
  4. Đảm bảo tính năng bảo mật thông tin cá nhân của khách hàng khi giao dịch trên môi trường mạ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ụ cho thuê xe ô tô tự lái và việc ứng dụng công nghệ phần mềm mã nguồn mở để tin học hóa quy trình này.
  • Phạm vi không gian: Áp dụng cho mô hình cửa hàng/doanh nghiệp kinh doanh dịch vụ cho thuê xe ô tô trực tuyến (Online Car Rental).
  • Phạm vi thời gian: Đồ án môn học Phát triển phần mềm mã nguồn mở được thực hiện và hoàn thành vào tháng 07/2021 tại Viện Kỹ thuật Công nghệ – Trường Đại học Thủ Dầu Một.

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

Khung lý thuyết và công nghệ sử dụng

Đề tài xây dựng trên nền tảng các công nghệ mã nguồn mở phục vụ phát triển ứng dụng web, bao gồm:

Tên công nghệ / Nền tảng Vai trò trong hệ thống Đặc điểm kỹ thuật tác giả đề cập
PHP (Hypertext Preprocessor) Ngôn ngữ kịch bản phía máy chủ (Server-side) Mã nguồn mở, miễn phí, độc lập nền tảng (chạy trên UNIX, Linux, Windows), kết nối cơ sở dữ liệu nhanh, hỗ trợ lập trình hướng đối tượng (OOP từ phiên bản 5 trở lên).
Laravel Framework Khung phát triển ứng dụng web PHP Kiến trúc MVC (Model – View – Controller), giấy phép MIT; kế thừa thành phần từ Symfony; hỗ trợ kỹ thuật ORM qua PDO chống SQL Injection, cơ chế bảo vệ CSRF và hệ thống Migration quản lý cơ sở dữ liệu.
XAMPP Môi trường máy chủ cục bộ (Localhost) Tích hợp sẵn Apache Web Server, PHP, MySQL, phpMyAdmin; hỗ trợ đa nền tảng (Cross-platform) giúp chạy thử nghiệm ứng dụng không cần thuê hosting/VPS.
MySQL Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Mô hình Client-Server, mã nguồn mở, tốc độ thực thi cao, chi phí thấp, hỗ trợ truy vấn chuẩn SQL, quản lý cấu trúc bảng quan hệ chặt chẽ.

Phương pháp nghiên cứu

Nhóm tác giả đã triển khai nghiên cứu qua các bước cụ thể:

  1. Phương pháp khảo sát thực tế: Tìm kiếm, khảo sát và phân tích các website kinh doanh cho thuê xe ô tô hiện có trên công cụ Google để định hình các tính năng cần thiết.
  2. Phương pháp thu thập yêu cầu: Phân tích nhu cầu của khách hàng thuê xe và yêu cầu quản lý của chủ cửa hàng.
  3. Phương pháp phân tích và thiết kế hệ thống: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để thiết kế sơ đồ ca sử dụng (Use Case Diagram), sơ đồ tuần tự (Sequence Diagram), sơ đồ hoạt động (Activity Diagram) và sơ đồ liên kết trang.
  4. Phương pháp thiết kế dữ liệu: Xây dựng mô hình thực thể quan hệ và thiết kế chi tiết các bảng dữ liệu trên MySQL.

Thiết kế và triển khai

Kiến trúc phân hệ và sơ đồ Use Case

Hệ thống được thiết kế phân định rõ ràng giữa hai tác nhân chính (Actors): Khách hàng (Client) và Quản trị viên (Admin).

Tác nhân (Actor) Nhóm chức năng chính Danh sách Use Case cụ thể
Khách hàng (User) Quản lý tài khoản cá nhân, xem thông tin xe, thực hiện đặt dịch vụ và tương tác. Đăng nhập (UC-1.1), Đăng ký (UC-1.2), Đổi mật khẩu (UC-1.3), Cập nhật thông tin (UC-1.4), Đánh giá (UC-1.5), Xem thông tin đánh giá (UC-1.6), Đặt xe (UC-1.7), Xem thông tin đặt xe (UC-1.8), Phản hồi (UC-1.9), Theo dõi trang (UC-1.10), Xem thông tin xe (UC-1.11).
Quản trị viên (Admin) Quản lý toàn bộ dữ liệu hệ thống, duyệt đơn và nội dung trang web. Đăng nhập Admin, Đổi mật khẩu Admin, Thêm thương hiệu (UC-1.12), Quản lý thương hiệu (UC-1.13), Đăng thông tin xe (UC-1.14), Quản lý thông tin xe (UC-1.15), Quản lý người dùng (UC-1.16), Quản lý đơn đặt (UC-1.17), Quản lý theo dõi (UC-1.18), Quản lý phản hồi (UC-1.19), Quản lý nội dung (UC-1.20), Quản lý đánh giá (UC-1.21).

Thiết kế cơ sở dữ liệu

Hệ thống sử dụng cơ sở dữ liệu quan hệ MySQL bao gồm 10 bảng dữ liệu chính để quản lý toàn bộ thực thể:

STT Tên bảng CSDL Tên bảng trong văn bản Chức năng lưu trữ dữ liệu
1 Bảng người dùng tblusers Lưu trữ thông tin tài khoản khách hàng đăng ký (họ tên, email, số điện thoại, mật khẩu, địa chỉ...).
2 Bảng quản trị viên admin Lưu trữ thông tin đăng nhập và quyền hạn của tài khoản Admin.
3 Bảng đặt xe tblbooking Lưu trữ các đơn đặt xe của khách hàng (mã xe, ngày đặt, ngày trả, lời nhắn, trạng thái xử lý).
4 Bảng thương hiệu tblbrands Lưu danh mục các hãng/thương hiệu xe ô tô (Toyota, Honda, Hyundai...).
5 Bảng phản hồi tblContactusquery Lưu trữ các ý kiến đóng góp, thắc mắc do khách hàng gửi qua biểu mẫu liên hệ.
6 Bảng trang nội dung tblpages Lưu trữ nội dung của các trang thông tin tĩnh (ví dụ: Trang "Về chúng tôi - About Us").
7 Bảng người theo dõi tblsubscribers Lưu trữ danh sách địa chỉ email đăng ký nhận bản tin/theo dõi trang web.
8 Bảng đánh giá tbltestimonial Lưu trữ các nhận xét, đánh giá chất lượng dịch vụ của khách hàng để hiển thị lên trang chủ.
9 Bảng danh sách xe tblvehicles Lưu trữ thông tin chi tiết từng xe (tên xe, thương hiệu, giá thuê, thông số kỹ thuật, hình ảnh).
10 Bảng tổng quan Lược đồ tổng quan Cấu trúc quan hệ logic liên kết giữa các thực thể trong hệ thống.

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

CHƯƠNG I. PHÂN TÍCH VÀ XÁC ĐỊNH YÊU CẦU

Chương này tập trung làm rõ căn cứ thực tiễn và yêu cầu kỹ thuật của đề tài:

  • Phân tích yêu cầu đề tài: Trình bày lý do chọn đề tài xuất phát từ sự bùng nổ của mua sắm trực tuyến và nhu cầu thuê xe ô tô tự lái an toàn, tiết kiệm thời gian trong giai đoạn dịch bệnh năm 2021.
  • Ý nghĩa thực tiễn: Ứng dụng công nghệ thông tin vào thương mại dịch vụ; giúp cửa hàng mở rộng kênh quảng bá và quản lý tập trung, đồng thời bảo mật thông tin cá nhân của người thuê.
  • Phương pháp nghiên cứu: Tiến hành khảo sát thị trường trên Google, xác định nhu cầu người dùng, lựa chọn công cụ phần mềm nguồn mở phù hợp.
  • Tổng quan bài toán và danh sách chức năng: Liệt kê đầy đủ 17 nhóm chức năng cho hai đối tượng người dùng và quản trị viên, bao gồm các chức năng cốt lõi như đăng ký, đăng nhập, đặt xe, quản lý xe, quản lý thương hiệu, quản lý đơn đặt hàng và quản lý nội dung.
  • Công nghệ sử dụng: Giới thiệu chi tiết lý thuyết, ưu nhược điểm của 4 thành phần công nghệ nền tảng: ngôn ngữ PHP, framework Laravel, phần mềm giả lập máy chủ XAMPP và hệ quản trị cơ sở dữ liệu MySQL.

CHƯƠNG II. PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương này thể hiện toàn bộ quá trình thiết kế hệ thống bằng mô hình hóa trực quan và đặc tả chi tiết:

  • Đặc tả Use Case chi tiết (từ UC-1.1 đến UC-1.21): Mỗi ca sử dụng được mô tả đầy đủ các trường thông tin: Mã (Use Case ID), Tên, Mô tả, Tác nhân (Actor), Mức độ ưu tiên (Must Have / Can Have), Điều kiện kích hoạt (Trigger), Tiền điều kiện (Pre-Conditions), Hậu điều kiện (Post-Conditions), Luồng sự kiện chính (Basic Flow), Luồng ngoại lệ (Exception Flow) và Quy tắc nghiệp vụ (Business Rules, từ BR1.1-1 đến BR1.1-10).
    • Ví dụ quy tắc nghiệp vụ: BR1.1-2 yêu cầu định dạng email phải hợp lệ (chứa ký tự '@'); BR1.1-3 yêu cầu phải xác thực mật khẩu cũ chính xác khi đổi mật khẩu; BR1.1-6 yêu cầu nhập đúng định dạng ngày tháng năm khi đặt xe.
  • Hệ thống sơ đồ UML:
    • Sơ đồ tuần tự (Sequence Diagrams - Hình 6 đến Hình 23): Thể hiện trình tự tương tác giữa tác nhân, giao diện và cơ sở dữ liệu cho từng thao tác cụ thể (Đăng nhập, đăng ký, đổi mật khẩu, cập nhật thông tin, đánh giá, đặt xe, phản hồi, theo dõi trang, thêm/quản lý thương hiệu, đăng/quản lý thông tin xe, quản lý người dùng, quản lý đơn đặt, quản lý theo dõi, quản lý phản hồi, quản lý nội dung, quản lý đánh giá).
    • Sơ đồ hoạt động (Activity Diagrams - Hình 24 đến Hình 41): Mô tả luồng xử lý nghiệp vụ, các bước rẽ nhánh điều kiện logic của từng tính năng.
    • Sơ đồ liên kết trang (Hình 43): Thể hiện luồng chuyển hướng giao diện và mối liên kết điều hướng giữa các trang.
  • Thiết kế cơ sở dữ liệu: Thiết kế chi tiết cấu trúc 10 bảng dữ liệu (tblusers, admin, tblbooking, tblbrands, tblContactusquery, tblpages, tblsubscribers, tbltestimonial, tblvehicles và bảng tổng quan).

CHƯƠNG III. XÂY DỰNG WEBSITE

Chương này trình bày giao diện thực tế của website sau khi hiện thực hóa từ bản thiết kế:

  • Giao diện người dùng (User Interface): Minh họa và trình bày các màn hình chức năng dành cho khách hàng: Trang chủ (Hình 44), Trang đăng nhập (Hình 45), Trang đăng ký (Hình 46), Trang đổi mật khẩu (Hình 47), Trang đặt xe (Hình 48), Trang đánh giá (Hình 49), Trang xem lại đánh giá (Hình 50), Trang chi tiết xe (Hình 51), Trang về chúng tôi (Hình 52), Trang danh sách xe (Hình 53), Trang phản hồi (Hình 54).
  • Giao diện người quản trị (Admin Interface): Trình bày màn hình điều hành hệ thống: Trang chủ Admin (Hình 55), Trang đăng nhập Admin (Hình 56), Trang đổi mật khẩu Admin (Hình 57), Trang tạo thương hiệu (Hình 58), Trang quản lý thương hiệu (Hình 59), Trang thêm loại xe (Hình 60), Trang quản lý xe (Hình 61), Trang quản lý thông tin người dùng (Hình 62), Trang quản lý đơn đặt xe (Hình 63), Trang quản lý đánh giá (Hình 64), Trang quản lý phản hồi (Hình 65), Trang quản lý người theo dõi (Hình 66).
  • Kết quả đạt được và Hướng phát triển trong tương lai: Đánh giá mức độ hoàn thành hệ thống và định hướng nâng cấp.

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

Kết quả chính đạt được

  1. Phân tích thiết kế hoàn chỉnh: Xây dựng đầy đủ tài liệu phân tích nghiệp vụ hệ thống gồm 21 ca sử dụng (Use Case), 18 sơ đồ tuần tự, 18 sơ đồ hoạt động, sơ đồ liên kết trang và thiết kế chi tiết 10 bảng cơ sở dữ liệu quan hệ trên MySQL.
  2. Xây dựng phân hệ người dùng (Khách hàng): Cung cấp giao diện trực quan cho phép khách hàng thực hiện tìm kiếm xe theo danh mục/thương hiệu, xem chi tiết thông số xe, thực hiện gửi đơn đặt thuê xe trực tuyến, quản lý lịch sử đặt xe cá nhân ("My Booking"), gửi đánh giá (Testimonial) và gửi thông tin phản hồi.
  3. Xây dựng phân hệ quản trị (Admin): Thiết lập trung tâm điều hành cho phép chủ cửa hàng thêm mới/chỉnh sửa danh mục thương hiệu xe, đăng tải thông tin chi tiết xe kèm hình ảnh, tiếp nhận và thay đổi trạng thái đơn đặt xe, quản lý danh sách tài khoản khách hàng, kiểm duyệt đánh giá và quản lý danh sách đăng ký theo dõi.

Đóng góp thực tiễn của đề tài

  • Ứng dụng thành công các công nghệ phần mềm mã nguồn mở phổ biến (PHP, Laravel, XAMPP, MySQL) vào bài toán số hóa quy trình kinh doanh dịch vụ cho thuê xe ô tô.
  • Cung cấp mô hình tham khảo về tài liệu đặc tả yêu cầu phần mềm và thiết kế hệ thống theo chuẩn UML cho các ứng dụng web thương mại dịch vụ quy mô vừa và nhỏ.

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

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

  • Hệ thống được xây dựng và kiểm thử trong môi trường máy chủ cục bộ (Localhost thông qua XAMPP), chưa triển khai thực tế trên máy chủ Internet (Hosting/Cloud).
  • Nghiệp vụ thanh toán trực tuyến chưa được tích hợp chi tiết trong các Use Case (việc đặt xe mới dừng ở bước tạo đơn và chuyển trạng thái cho Admin xử lý).
  • Căn cứ theo văn bản, hệ quản trị MySQL có những hạn chế nội tại về độ tin cậy trong các giao dịch lớn phức tạp và hiệu năng truy xuất khi dữ liệu tăng cao (cần giải pháp phân tải hoặc bộ nhớ đệm bổ sung).

Hướng phát triển trong tương lai

Căn cứ theo mục "Hướng phát triển trong tương lai" tại Chương III, hệ thống có thể mở rộng các hướng:

  • Tích hợp cổng thanh toán trực tuyến để tự động hóa toàn bộ quy trình đặt cọc và thanh toán tiền thuê xe.
  • Phát triển thêm các thuật toán lọc và tìm kiếm nâng cao (theo khoảng giá, địa điểm nhận xe, tình trạng xe trống theo thời gian thực).
  • Triển khai ứng dụng trên môi trường máy chủ thực tế và tối ưu hóa cơ sở dữ liệu khi lượng người dùng gia tăng.

Giá trị tham khảo

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

  • Sinh viên ngành Kỹ thuật phần mềm, Công nghệ thông tin: Là tài liệu tham khảo trực tiếp cho các học phần như Phát triển phần mềm mã nguồn mở, Phân tích thiết kế hệ thống thông tin, Lập trình Web với PHP/Laravel.
  • Người học cần tài liệu mẫu về thiết kế UML: Phần đặc tả Use Case (Chương II) từ UC-1.1 đến UC-1.21 được viết rất chuẩn mực, đi kèm sơ đồ tuần tự và sơ đồ hoạt động tương ứng, rất thích hợp để làm mẫu viết báo cáo đồ án kỹ thuật.
  • Lập trình viên xây dựng hệ thống quản lý web dạng CRUD: Cung cấp mô hình phân quyền cơ bản giữa User và Admin cùng cấu trúc bảng dữ liệu điển hình cho các website dịch vụ/thương mại.

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

1. Đồ án sử dụng những công nghệ và phần mềm mã nguồn mở nào?

Hệ thống được phát triển dựa trên ngôn ngữ lập trình PHP kết hợp với Laravel Framework (mô hình MVC). Môi trường máy chủ thử nghiệm cục bộ sử dụng phần mềm XAMPP (chứa Apache, PHP, phpMyAdmin) và cơ sở dữ liệu quan hệ MySQL.

2. Có bao nhiêu bảng cơ sở dữ liệu được thiết kế trong hệ thống?

Theo danh mục bảng và nội dung Chương II, hệ thống thiết kế tổng cộng 10 bảng/lược đồ dữ liệu: tblusers (người dùng), admin (quản trị), tblbooking (đơn đặt xe), tblbrands (thương hiệu), tblContactusquery (phản hồi), tblpages (nội dung trang), tblsubscribers (người theo dõi), tbltestimonial (đánh giá), tblvehicles (thông tin xe) và lược đồ tổng quan.

3. Quy trình đặt xe của khách hàng diễn ra như thế nào?

Theo đặc tả Use Case UC-1.7 và sơ đồ tuần tự Hình 11: Khách hàng đăng nhập vào hệ thống, chọn phương tiện muốn thuê, điền thông tin về ngày thuê/trả cùng lời nhắn yêu cầu, sau đó nhấn nút "Đặt ngay". Hệ thống sẽ xác thực thông tin và chuyển dữ liệu đơn đặt vào bảng tblbooking để quản trị viên xử lý trạng thái.

4. Phân hệ quản trị (Admin) có những quyền hạn quản lý nào?

Admin có quyền quản lý toàn diện hệ thống bao gồm: thêm/sửa danh mục thương hiệu xe (tblbrands), đăng bài/chỉnh sửa thông tin xe (tblvehicles), duyệt và thay đổi trạng thái đơn đặt xe (tblbooking), xem danh sách khách hàng đăng ký (tblusers), quản lý phản hồi liên hệ (tblContactusquery), cập nhật nội dung các trang tĩnh (tblpages), quản lý đánh giá (tbltestimonial) và xóa email người theo dõi (tblsubscribers).

5. Khách hàng xem lại trạng thái các đơn xe đã đặt ở đâu?

Theo Use Case UC-1.8 ("Xem thông tin đặt xe"), sau khi đăng nhập, khách hàng truy cập vào trang cá nhân và chọn mục "My Booking". Hệ thống sẽ truy xuất dữ liệu từ bảng tblbooking và hiển thị danh sách các xe đã đặt cùng trạng thái xử lý tương ứng.


Kết luận

Đồ án "Xây dựng website cho thuê xe ô tô Online Car Rental" của nhóm sinh viên Nguyễn Hoàng Duy Khang và Đỗ Mỹ Hạnh (Trường Đại học Thủ Dầu Một) đã hoàn thành việc nghiên cứu, phân tích thiết kế và hiện thực hóa một hệ thống web cho thuê xe trực tuyến hoàn chỉnh. Đề tài giải quyết tốt bài toán kinh doanh dịch vụ thuê xe tự lái trong bối cảnh chuyển dịch số và yêu cầu an toàn sức khỏe năm 2021. Báo cáo cung cấp hệ thống tài liệu phân tích UML chi tiết, cấu trúc dữ liệu rõ ràng và giao diện hoạt động trực quan cho cả phân hệ người dùng lẫn quản trị viên.