Video: https://youtu.be/0WWv82OsUTw
Một hệ thống vận hành theo nghiệp vụ Xe khách dịch vụ
- Các chủ thể: Khách hàng & Nhà xe
- Kiến trúc phần mềm: Layered Architecture - Server-Side Rendering - Laravel (MVC)
- Tài liệu: https://laravel.com/
- Tham khảo: ChatGPT (https://chat.openai.com/), StackOverFlow (https://stackoverflow.com/), Laracasts (https://laracasts.com/)
2. Xuất Excel (PhpSpreadsheet):
- Tài liệu: https://phpspreadsheet.readthedocs.io/en/latest/
- Tham khảo: https://youtu.be/F3uPQyc08jA
3. Hiển thị biểu đồ (ChartJS):
- Tài liệu: https://www.chartjs.org/
- Tham khảo: https://www.chartjs.org/docs/latest/getting-started/integration.html
4. SMTP - Hệ thống gửi e-mail (PHPMailer):
- Bạn có thể sử dụng MailPit (có sẵn trong Laravel) để thiết lập hệ thống SMTP
- Tài liệu: https://github.com/PHPMailer/PHPMailer
- Tham khảo: https://github.com/PHPMailer/PHPMailer
1. Đăng nhập, đăng ký, đăng xuất (Sử dụng Session để lưu phiên đăng nhập người dùng)
2. Khôi phục mật khẩu
3. Đặt xe trước (tương tự tính năng Giỏ hàng trên các Website thương mại điện tử)
4. Thanh toán nhập thông tin thẻ (Giả chức năng - do chưa tích hợp cổng thanh toán bên thứ 3 (như MoMo, VNPay, ...))
5. Gửi e-mail phản hồi (sử dụng PHPMailer)
6. Mini-game
Ngoài ra còn có hiển thị thông tin các tuyến xe, tìm kiếm tuyến theo thời gian, ... 1. Đăng nhập, đăng xuất (Sử dụng Session để lưu phiên đăng nhập người dùng)
2. Phân loại Người quản trị (Admin thường và Admin Master, với tài khoản Admin Master sẽ có nhiều quyền hơn)
3. Xem và quản lý các nghiệp vụ của một nhà xe
4. Xem dữ liệu doanh thu (sử dụng ChartJS) và xuất dữ liệu doanh thu (sử dụng PhpSpreadsheet)
-
Trên máy tính (Test/Dev/Server) đã cài đặt XAMPP (có sẵn MySQL, PHP, Apache, ....)
-
Kiểm tra PHP đã cài đặt chưa. Mở Command line: chạy lệnh
php --version
, yêu cầu phiên bản PHP phải lớn hơn 8.2Nếu chạy lệnh
php --version
trả về lỗi, hãy tự tìm cách để thiết lập biến môi trường Windows cho PHP (Gợi ý từ khóa: set environment variable for windows) -
Đã cài đặt Composer (https://getcomposer.org/download/). Composer khi cài đặt phải nhận phiên bản PHP đang có trên máy
-
Các bạn hãy tự thiết lập lại các cấu hình để sử dụng SMTP với Google App Password (trong các Controllers:
FeedbackController
,HomeController
vàUserRestorationController
).Thiết lập App Password để gửi e-mail với tài khoản Google của bạn
- Chạy XAMPP với quyền admin, khởi động 2 dịch vụ: Apache và MySQL
- Thực hiện
git clone
source về, trong hệ quản trị CSDL MySQL (PHPMyAdmin : truy cập bằng trình duyệt với địa chỉ: 127.0.0.1:80/phpmyadmin) -> tạo 1 CSDL mới, đặt tên gì cũng được (VD: webdatxe) - Mở command line: cd <tên thư mục chứa source>, chạy lệnh
composer update
(nếu ko được thìcomposer install
) - Copy file .env.example thành 1 file mới, và đổi tên file mới này thành .env
- Mở file .env mới tạo, tìm tới dòng DB_DATABASE=project và thay thế 'project' thành tên cơ sở dữ liệu được tạo trong MySQL (webdatxe)
- Chạy lệnh
php artisan key:generate
để tạo khóa truy cập cho localhost (Laravel) - Chạy lệnh
php artisan migrate
để ánh xạ từ model lên cơ sở dữ liệu MySQL. Nếu lỗi xảy ra, hãy migrate file2024_05_10_060200_update_database.php
trong thư mục BackupDB vào MySQL.
(Kiểm tra dữ liệu trong CSDL) - Nếu sử dụng cách thức migrate vào CSDL, hãy vào MySQL để thêm một vài dữ liệu test. - Còn nếu import file backup thì không cần
- Chạy lệnh
php artisan serve --port 4401
. Lúc này ứng dụng sẽ chạy trên 127.0.0.1:4401, mở trình duyệt và truy cập bằng địa chỉ này
2. Chạy lệnh `php artisan serve --port 4401`. Lúc này ứng dụng sẽ chạy trên 127.0.0.1:4401, mở trình duyệt và truy cập bằng địa chỉ này
127.0.0.1 chính là địa chỉ localhost
Các bạn nếu thích dự án này, mong muốn có thêm tính năng mới (mở rộng dự án) hoặc chỉ đơn giản là muốn donate cho tôi ☕☕☕; hãy liên hệ với tôi qua Telegram: @trhgtung hoặc comment tại video bất kỳ với nội dung bạn mong muốn trên kênh Youtube: @TungSupport
Xin cảm ơn! 😍😍😍
- Các bạn muốn báo cáo lỗi: Hãy vào phần `Issues`
- Các bạn muốn đóng góp thêm tính năng: Hãy vào phần `Pull requests`
- Các bạn muốn báo cáo lỗi và tự sửa lỗi đó luôn: Thì làm như 2 mục trên 😆😆😆 và các bạn quá tuyệt vời 😎😎😎
Tại sao dự án có tên là Lapras?
... Đây là tên của một loài Pokémon có các đặc tính cũng như chiêu thức thích hợp với việc chở người / vận chuyển (Lapras Express)
Đây là dự án đầu tiên của tôi áp dụng việc lấy tên của các Pokémon làm tên dự án.