LỜI CẢM ƠNThầy Nguyễn Quốc Trung, với kinh nghiệm nhiều năm trong giảng dạy và nghiên cứu, đã truyền đạt cho nhóm những kiến thức vô giá về phân tích hệ thống, thiết kế giao diện người d
KHỞI ĐỘNG DỰ ÁN
Xác định mục tiêu
Dự án "Lapras - Hệ thống vận hành nhà xe cơ bản" nhằm mô phỏng nghiệp vụ hoạt động của nhà xe khách dịch vụ, bao gồm các chức năng dành cho khách hàng và nhà xe Hệ thống hỗ trợ đặt vé xe, quản lý tuyến đường, quản lý người dùng, theo dõi doanh thu và vận hành các nghiệp vụ liên quan đến dịch vụ vận tải hành khách Mục tiêu chính của dự án là phát triển nền tảng giúp tối ưu hóa hoạt động của nhà xe, nâng cao trải nghiệm khách hàng và tăng hiệu quả quản lý vận hành.
Trang web được thiết kế với hệ thống phân quyền rõ ràng, chia thành hai nhóm đối tượng chính: Khách hàng và Nhà xe (Admin) Khách hàng có thể dễ dàng đăng ký tài khoản, đăng nhập, đặt chỗ trước, thực hiện thanh toán giả lập, khôi phục mật khẩu, gửi phản hồi qua email và tham gia các hoạt động tương tác như mini-game để nâng cao trải nghiệm Phía Nhà xe có khả năng quản lý toàn diện nền tảng, bao gồm đăng nhập hệ thống, phân quyền tài khoản quản trị, quản lý dữ liệu tuyến xe, khách hàng, hóa đơn, và theo dõi biểu đồ doanh thu theo thời gian Ngoài ra, hệ thống còn hỗ trợ xuất dữ liệu thống kê giúp nhà xe dễ dàng phân tích và đưa ra quyết định kinh doanh chính xác.
Dự án áp dụng mô hình kiến trúc nhiều lớp (Layered Architecture) kết hợp với Laravel theo mô hình MVC để đảm bảo tính linh hoạt và dễ bảo trì của hệ thống Sử dụng Server-Side Rendering giúp tối ưu hóa hiệu suất xử lý và hiển thị dữ liệu một cách hiệu quả Ngoài ra, các công nghệ hỗ trợ như PhpSpreadsheet, ChartJS, và PHPMailer được tích hợp nhằm mở rộng chức năng và nâng cao tính thực tiễn của hệ thống, đáp ứng tốt các yêu cầu về xử lý dữ liệu, trực quan hóa và gửi email tự động.
Thực hiện dự án này giúp nhóm thành viên áp dụng thành thạo kỹ năng lập trình PHP trong môi trường thực tiễn, từ thiết kế giao diện người dùng đến xử lý nghiệp vụ phía máy chủ Đây không chỉ là một dự án học thuật mà còn là một sản phẩm hoàn chỉnh, có khả năng triển khai và thử nghiệm trong hoạt động của một nhà xe hiện đại.
Việc xác định và nỗ lực đạt được các mục tiêu đã giúp nhóm phát triển khả năng lập trình PHP và làm quen với framework Laravel một cách sâu sắc Nhóm đã tích lũy kiến thức về các thư viện chuyên dụng, tạo nền tảng vững chắc cho việc triển khai các hệ thống nghiệp vụ quy mô vừa và nhỏ Đặc biệt, điều này đóng vai trò quan trọng trong lĩnh vực vận tải, nâng cao hiệu quả và độ tin cậy của các ứng dụng logistics.
Bảng phân cấp công việc
Bảng 1 Phân cấp công việc
Bảng 2 Kế hoạch và ước tinh thời gian các công việc
O (Optimistic): Đây là thời gian ước lượng ngắn nhất mà một công việc có thể hoàn thành trong điều kiện lý tưởng hoặc với tài nguyên dồi dào.
R (Realistic): Đây là thời gian ước lượng mà một công việc có thể hoàn thành với tài nguyên và điều kiện làm việc bình thường.
Thời gian P (Bi quan) đề cập đến khoảng thời gian ước lượng dài nhất để hoàn thành một công việc trong điều kiện xấu nhất hoặc khi gặp phải các rủi ro và trở ngại không mong muốn Đây là yếu tố quan trọng trong quản lý dự án giúp đánh giá khả năng xử lý các tình huống khắc nghiệt và lập kế hoạch phù hợp Hiểu rõ thời gian P giúp các nhà quản lý có cái nhìn thực tế về khả năng hoàn thành công việc trong những tình huống khó khăn nhất.
Biểu đồ Gantt
TÍCH HỆ THỐNG
Danh sách những chức năng dự án cần đáp ứng
2.1.1 Chức năng dành cho khách hàng (người dùng)
STT Tên chức năng chính
Phân rã chức năng chi tiết
1 Đăng ký, đăng nhập tài khoản Đăng ký bằng email Đăng nhập bằng email và mật khẩu
2 Tìm kiếm tuyến xe Tìm kiếm bằng ngày/tháng/năm
3 Xem lịch để đặt xe
4 Liên hệ và phản hồi
Gửi phản hồi, yêu cầu hỗ trợ, hoặc góp ý kiến
5 Xem tuyến đặt Xem chi tiết (điểm đón, điểm đến, thời gian khởi hành, giá vé, liên hệ)
Nhập email đã đăng ký tài khoản
7 Xem tài khoản Xem những tuyến xe đã đặt Chỉnh sửa thông tin
Vô hiệu hóa tài khoản
8 Mini game Tham gia game nhận quà hoặc mã giảm giá
9 Đặt tuyến xe Xem chi tiết tuyến xeThanh toán trực tuyến để hỏi thông tin
11 Quên mật khẩu Gửi yêu cầu lấy lại mật khẩu cho admin
2.1.2 Chức năng dành cho quản trị viên (Admin)
STT Chức năng chính Phân rã chức năng chi tiết
1 Quản lý lịch sử chuyến xe
Xem chuyến xe hiện hàng
Gán tài xế Gán phương tiện Chỉnh sửa thời gian
Báo cáo trạng thái cuối cùng
2 Quản lý các tuyến cố định
Xem dữ liệu tuyến xe
3 Quản lý tài xế Xem tài xế
Vô hiệu tài xếSửa thông tin tài xế
6 Quản lý Blog Xem danh sách
Blog Thêm Blog mới Xóa Blog
7 Quản lý doanh thu Xem thống kê doanh thu Xuất file excel báo cáo doanh thu
2.1.3 Danh sách chức năng dự án không làm
STT Chức năng chính Phân rã chức năng chi tiết
2 Chatbot tự vấn dự động
3 Hủy vé hoàn tiền tự động
4 Giao diện đa ngôn ngữ
5 Theo dõi vị trí xe theo thời gian thựcGPS
Công nghệ và công cụ dùng để làm dự án
Ngôn ngữ sử dụng: Laravel (PHP), MySQL, Bootstrap, Css, Javascript
Công nghệ: MVC, xuất file EXCEL, Hiển thị biểu đồ (ChartJS), SMTP (Hệ thống gửi mail)
Cấu hình phần cứng tối thiểu để chạy được dự án
Thành phần Yêu cầu tối thiểu Ghi chú
CPU Intel Core i3 thế hệ
6 trở lên / AMD tương đương Đảm bảo xử lý được composer, npm và PHP
RAM 4GB 8GB khuyến nghị để chạy mượt IDE + webserver Ổ cứng 10-20GB trống Ưu tiên SSD để tăng tốc độ xử lý
Hỗ trợ PHP, Composer, Laravel
Cấu hình phần mềm tối thiểu để chạy được sản phẩm của dự án
Apache: Phiên bản mới nhất, hỗ trợ mod_rewrite
Cơ sở dữ liệu: MySQL 5.7 trở lên
Trình quản lý gói và Framework
Composer (bản mới nhất), Nodejs (≥ v14.x (khuyên dùng v16.x)
Các biểu đồ usecase của dự án
2.5.1 Sơ đồ use case tổng quát
Hình 2.5.1 Sơ đồ usecase tổng quát
2.5.2 Sơ đồ use case người quản trị (Admin)
Hình 2.5.2.1 Sơ đồ usecase quản lý tuyến xe cố định
Hình 2.5.2.2 Sơ đồ usecase Quản lý lịch sử chuyến xe
Hình 2.5.2.3 Sơ đồ usecase Quản lý tài xế
Hình 2.5.2.4 Sơ đồ usecase Quản lý phương tiện
Hình 2.5.2.5 Sơ đồ usecase Quản lý Blog
Hình 2.5.2.6 Sơ đồ usecase Quản lý khách hàng
Hình 2.5.2.7 Sơ đồ usecase Quản lý tài khoản admin
2.5.3 Sơ đồ use case khách hàng (người dùng )
Hình 2.5.3.1 Sơ đồ usecase Xem lịch đặt xe
Hình 2.5.3.2 Sơ đồ usecase Tìm kiếm chuyến xe
Hình 2.5.3 3 Sơ đồ usecase Đặt vé xe và thanh toán
Hình 2.5.3.4 Sơ đồ usecase Xem thông tin tài khoản
THIẾT KẾ HỆ THỐNG
Bảng quản trị viên
is_active varchar(10) No Trạng thái hoạt động is_master varchar(10) No Trạng thái master
Bảng tuyến xe
Field Name Data Type Null Key Description
MaTuyenXe varchar(13) No PK Mã tuyến xe
DiemDau varchar(100) No Điểm đầu tuyến
DiemDen varchar(100) No Điểm đến tuyến
NgayKhoiHanh varchar(10) No Ngày khởi hành ThangKhoiHan h varchar(10) No Tháng khởi hành
GioKhoiHanh varchar(10) No Giờ khởi hành
GioToiNoi varchar(10) No Giờ đến nơi
GiaVe varchar(20) No Giá vé status varchar(20) No Trạng thái tuyến xe
Bảng lịch sử tuyến xe
Field Name Data Type Nul l
MaLichSuChuyenXe varchar(13) No PK Mã lịch sử chuyến xe
MaTuyenXe varchar(13) No Mã tuyến xe
NgayKhoiHanh varchar(10) No Ngày khởi hành
ThangKhoiHanh varchar(10) No Tháng khởi hành
GioKhoiHanh varchar(10) No Giờ khởi hành
GioToiNoi varchar(10) No Giờ đến nơi status varchar(20) No Trạng thái chuyến xe
NguoiCapNhat varchar(50) No Người cập nhật
ThoiDiemCapNhat varchar(20) No Thời điểm cập nhật Bảng lịch sử chuyến xe
Bảng phản hồi
Field Name Data Type Nul l
MaFeedback varchar(13) No PK Mã phản hồi addressFrom varchar(150
No Địa chỉ gửi phản hồi feedbackConten t varchar(500 )
No Nội dung phản hồiBảng phản hồi
Bảng phương tiện
Field Name Data Type Nul l
MaSoXe varchar(13) No PK Mã số xe
Field Name Data Type Nul l
MaThanhToan varchar(13) No PK Mã thanh toán matuyenxe varchar(13) No Mã tuyến xe giave varchar(20) No Giá vé ghichu varchar(200
No Ghi chú thanh toán name varchar(50) No Tên người thanh toán email varchar(50) No Email người thanh toán diemdau varchar(100
No Điểm đầu diemden varchar(100
No Điểm đến paymentMetho d varchar(50) No Phương thức thanh toán timeUpdt varchar(20) No Thời gian cập nhật
Bảng dữ liệu thanh toán
3.2.7 Bảng dữ liệu số khách đặt
Field Name Data Type Nul l
MaGioHan g varchar(13) No PK Mã giỏ hàng email varchar(50) No Email người đặt
MaTuyenX e varchar(13) No Mã tuyến xe
GiaVe int No Giá vé
TimeUpdt varchar(20) No Thời gian cập nhật
Bảng dữ liệu số khách đặt
Field Name Data Type Nul l
MaTaiXe varchar(13) No PK Mã tài xế
Xe varchar(50) No Họ tên tài xế status varchar(20) No Trạng thái tài xế
Field Name Data Type Null Key Description
Bảng dữ liệu bao gồm các trường chính như Mã doanh thu, mã tuyến xe, giá vé, ghi chú và tên người liên quan Mã doanh thu và mã tuyến xe có độ dài tối đa lần lượt là 13 ký tự, trong khi đó mã giá vé là 20 ký tự Trường ghi chú cho phép ghi rõ các thông tin bổ sung với phạm vi tối đa 200 ký tự, giúp quản lý dữ liệu một cách rõ ràng và chi tiết Các trường này đóng vai trò quan trọng trong việc theo dõi doanh thu và các thông tin liên quan đến tuyến xe, đảm bảo hệ thống quản lý hoạt động hiệu quả và chính xác.
Field Name Data Type Null Key Description
MaRestoration varchar(13) No PK Mã khôi phục
Email varchar(50) No Email khôi phục
Code varchar(50) No Mã code khôi phục
InitTimePoint varchar(20) No Thời điểm khởi tạo status varchar(20) No Trạng thái khôi phục
3.3 Mô tả giao diện sản phẩm dự án
Hình 3.3.1.1 Giao diện thêm nhà quản trị
Hình 3.3.1.3 Giao diện sửa thông tin phương tiện
Hình 3.3.1.4 Giao diện nhận thêm phương tiện
Hình 3.3.1.5 Giao diện sửa thông tin tài xế
Hình 3.3.1.6 Giao diện thêm mới tài xế
Hình 3.3.1.7 Giao diện nhập chuyến xe
Hình 3.3.1.8 Giao diện quản lý lịch sử chuyến xe của người dùng
Hình 3.3.1.9 Giao diện thống kê & doanh thu xuất dạng file excel
Hình 3.3.1.10 Giao diện thống kê theme dark color
Hình 3.3.1.11 Giao diện đăng nhập quyền quản trị viên
Hình 3.3.1.12 Giao diện khôi phục tài khoản người dùng
Hình 3.3.2.4 Giao diện đăng nhập
Hình 3.3.2.5 Giao diện đăng ký
Hình 3.3.2.6, 3.3.2.7 Giao diện lịch đặt xe
Hình 3.3.2.11 Giao diện khôi phục tài khoản
Hình 3.3.2.12 Giao diện phản hồi ý kiến từ người dùng
Hình 3.3.2.13, 3.3.2.14 Giao diện đặt xe tuyến Đà Lạt sáng/tối
Hình 3.3.2.15 Giao diện xem tài khoản
Hình 3.3.2.18 Giao diện cập nhật thông tin cá nhân của người dùng
Hình 3.3.2.19 Giao diện vô hiệu hóa tài khoản người dùng nếu muốn
Hình 3.3.2.20 Giao diện đặt vé
Hình 3.3.2.2.21 Giao diện thanh toán
Hình 3.3.2.23 Giao diện thanh toán thành công
Bảng dữ liệu số khách đặt
Field Name Data Type Nul l
MaGioHan g varchar(13) No PK Mã giỏ hàng email varchar(50) No Email người đặt
MaTuyenX e varchar(13) No Mã tuyến xe
GiaVe int No Giá vé
TimeUpdt varchar(20) No Thời gian cập nhật
Bảng dữ liệu số khách đặt
Bảng tài xế
Field Name Data Type Nul l
MaTaiXe varchar(13) No PK Mã tài xế
Xe varchar(50) No Họ tên tài xế status varchar(20) No Trạng thái tài xế
Bảng doanh thu
Field Name Data Type Null Key Description
Mã doanh thu (MaDoanhThu) là mã định danh duy nhất cho các giao dịch thu tiền, giúp quản lý doanh thu hiệu quả Mã tuyến xe (matuyenxe) liên kết với hệ thống vận chuyển để xác định tuyến đường cụ thể, hỗ trợ theo dõi doanh thu theo từng tuyến Giá vé (giave) là mức phí áp dụng cho mỗi chuyến đi, đảm bảo minh bạch và chính xác trong việc tính toán doanh thu Ghi chú (ghichu) cung cấp thông tin bổ sung hoặc lưu trữ các ghi chú liên quan đến các khoản thu, giúp dễ dàng theo dõi và quản lý Tên người liên quan (name) là tên của người phụ trách hoặc liên quan đến giao dịch thu tiền, góp phần nâng cao tính rõ ràng trong quản lý doanh thu.
Bảng blog
Field Name Data Type Null Key Description
MaRestoration varchar(13) No PK Mã khôi phục
Email varchar(50) No Email khôi phục
Code varchar(50) No Mã code khôi phục
InitTimePoint varchar(20) No Thời điểm khởi tạo status varchar(20) No Trạng thái khôi phục
Mô tả giao diện sản phẩm dự án
Hình 3.3.1.1 Giao diện thêm nhà quản trị
Hình 3.3.1.3 Giao diện sửa thông tin phương tiện
Hình 3.3.1.4 Giao diện nhận thêm phương tiện
Hình 3.3.1.5 Giao diện sửa thông tin tài xế
Hình 3.3.1.6 Giao diện thêm mới tài xế
Hình 3.3.1.7 Giao diện nhập chuyến xe
Hình 3.3.1.8 Giao diện quản lý lịch sử chuyến xe của người dùng
Hình 3.3.1.9 Giao diện thống kê & doanh thu xuất dạng file excel
Hình 3.3.1.10 Giao diện thống kê theme dark color
Hình 3.3.1.11 Giao diện đăng nhập quyền quản trị viên
Hình 3.3.1.12 Giao diện khôi phục tài khoản người dùng
Hình 3.3.2.4 Giao diện đăng nhập
Hình 3.3.2.5 Giao diện đăng ký
Hình 3.3.2.6, 3.3.2.7 Giao diện lịch đặt xe
Hình 3.3.2.11 Giao diện khôi phục tài khoản
Hình 3.3.2.12 Giao diện phản hồi ý kiến từ người dùng
Hình 3.3.2.13, 3.3.2.14 Giao diện đặt xe tuyến Đà Lạt sáng/tối
Hình 3.3.2.15 Giao diện xem tài khoản
Hình 3.3.2.18 Giao diện cập nhật thông tin cá nhân của người dùng
Hình 3.3.2.19 Giao diện vô hiệu hóa tài khoản người dùng nếu muốn
Hình 3.3.2.20 Giao diện đặt vé
Hình 3.3.2.2.21 Giao diện thanh toán
Hình 3.3.2.23 Giao diện thanh toán thành công
ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN
Kết quả đạt được
Dự án Lapras đã hoàn thiện hệ thống vận hành nhà xe cơ bản với đầy đủ các chức năng thiết yếu cho khách hàng và nhà xe Hệ thống cho phép khách hàng đăng ký, đăng nhập, đặt xe, khôi phục mật khẩu và phản hồi dịch vụ qua email, trong khi quản trị viên có thể phân quyền, quản lý các tuyến xe, theo dõi doanh thu qua biểu đồ và xuất dữ liệu ra Excel Giao diện được thiết kế đơn giản, dễ sử dụng, đảm bảo trải nghiệm người dùng rõ ràng Hệ thống ứng dụng công nghệ Laravel, PHPMailer, ChartJS và PhpSpreadsheet, xây dựng trên nền tảng ổn định và có khả năng mở rộng trong tương lai.
Những khó khăn và hạn chế trong quá trình thực hiện dự án
Trong quá trình phát triển, nhóm gặp phải một số thách thức về cấu hình môi trường làm việc do yêu cầu tương thích giữa PHP, Composer và hệ điều hành Việc tích hợp thư viện như PHPMailer và ChartJS đôi khi gặp lỗi do thiếu tài nguyên hoặc sai phiên bản, ảnh hưởng đến quá trình phát triển Giao diện dự án chủ yếu dựa trên HTML cơ bản, còn thiếu tính thẩm mỹ và khả năng thích nghi cao với các thiết bị khác nhau Do dự án chưa tích hợp cổng thanh toán thực tế, chức năng thanh toán chỉ mới dược mô phỏng nhằm nhập thông tin Hệ thống chưa hoàn thiện các chức năng phản hồi nâng cao như chatbot, cùng với việc chưa có hệ thống đánh giá hoặc theo dõi hành vi người dùng để nâng cao trải nghiệm dịch vụ khách hàng.
Hướng phát triển của của dự án
Trong giai đoạn tiếp theo, nhóm tập trung nâng cấp giao diện hệ thống bằng các thư viện CSS hiện đại nhằm tăng cường tính tương tác và cải thiện trải nghiệm người dùng Đồng thời, hệ thống sẽ tích hợp các cổng khách hàng để nâng cao dịch vụ, cùng với việc áp dụng công nghệ học máy để đề xuất tuyến xe phù hợp dựa trên nhu cầu của từng người dùng.