Xây Dựng Hệ Thống Quản Lý Bán Vé Xe Khách Cho Nhà Xe RedBus

[Mã code 54094]
  1 Đánh giá    Viết đánh giá
 0      16      0
Phí tải: 50 Xu (1Xu = 1.000đ)
Danh mục
Thể loại
Nhóm code
Ngày đăng
28-6-2026
Loại file
Full code
Dung lượng
23,3 KB
Code đã kiểm thử
Không chứa mã độc
Có demo thực tế
Có hướng dẫn cài đặt

RedBus là hệ thống website quản lý và bán vé xe khách trực tuyến, xây dựng trên nền Spring Boot (backend) và ReactJS + Vite (frontend), kết nối cơ sở dữ liệu MySQL qua MyBatis


MÔ TẢ CHI TIẾT

GIỚI THIỆU

RedBus là hệ thống website quản lý và bán vé xe khách trực tuyến, phù hợp làm đồ án tốt nghiệp, đề tài web full-stack hoặc tham khảo xây dựng sản phẩm thực tế cho nhà xe vừa và nhỏ.

Hệ thống gồm 2 phần: giao diện khách hàng (đặt vé, thanh toán, quản lý vé) và khu quản trị (vận hành tuyến, chuyến, ghế, đơn đặt, báo cáo). Kiến trúc Client – Server, frontend và backend tách biệt, giao tiếp qua REST API.

CÔNG NGHỆ SỬ DỤNG

Backend

  • Java 17, Spring Boot 3.2
  • Spring Security + JWT (phân quyền)
  • MyBatis + MySQL 8
  • Tích hợp PayOS (thanh toán online)
  • Spring Mail (OTP, thông báo email)
  • Tác vụ nền: tự hủy vé quá hạn thanh toán

Frontend

  • React 19 + TypeScript
  • Vite, React Router, Axios
  • Recharts (biểu đồ báo cáo)
  • Leaflet (bản đồ lộ trình)
  • QR vé điện tử

CHỨC NĂNG KHÁCH HÀNG

  • Đăng ký, đăng nhập, quên mật khẩu (OTP email)
  • Tìm chuyến theo tuyến, ngày, loại xe, khoảng giá
  • Xem sơ đồ ghế realtime, chọn nhiều ghế
  • Nhập mã khuyến mãi, xem giá sau giảm trước khi đặt
  • Đặt vé (trạng thái chờ thanh toán, giữ ghế theo thời gian quy định)
  • Thanh toán tiền mặt hoặc PayOS (đơn lẻ / gộp nhiều vé)
  • Vé của tôi: xem, thanh toán, hủy vé
  • Vé điện tử / mã QR
  • Tra cứu vé công khai (mã vé + SĐT, không cần đăng nhập)
  • Đổi ghế, đổi chuyến (trước giờ khởi hành)
  • Hủy vé đã thanh toán + yêu cầu hoàn tiền (nhập STK ngân hàng)
  • Đánh giá chuyến sau khi đi
  • Hồ sơ cá nhân, lịch sử thanh toán
  • Thông báo, chat hỗ trợ
  • Xem tin tức / khuyến mãi

CHỨC NĂNG QUẢN TRỊ (ADMIN / STAFF)

  • Tổng quan hệ thống, báo cáo doanh thu (biểu đồ)
  • Quản lý tuyến đường, điểm dừng, loại xe, xe khách
  • Quản lý chuyến xe: thêm/sửa, gen lịch hàng loạt, phân trang danh sách
  • Quản lý ghế theo xe (trống / khóa / đã bán)
  • Danh sách đơn đã đặt (theo dõi vé toàn hệ thống)
  • Quản lý khách hàng
  • Quản lý khuyến mãi, tin tức
  • Xử lý yêu cầu hoàn tiền
  • Hỗ trợ chat khách hàng
  • Phân quyền: Admin (đầy đủ), Staff (vận hành, không xóa một số danh mục)

DỮ LIỆU MẪU (SEED)

  • Tài khoản sẵn khi chạy lần đầu:
    • Admin: admin / Admin@123
    • Staff: staff / Staff@123
    • Khách demo: khach1 … khach5
  • Có sẵn tuyến, xe, chuyến, khuyến mãi mẫu (VD: REDBUS10, TET2026)

YÊU CẦU CÀI ĐẶT

  • JDK 17+, Maven 3.8+
  • Node.js 18+, npm
  • MySQL 8.0+
  • (Tùy chọn) Tài khoản PayOS, Gmail App Password để dùng thanh toán online và gửi mail

Chạy nhanh:

  1. Tạo database redbus, cấu hình application.yml
  2. cd backend → mvn spring-boot:run → API: http://localhost:8080/api
  3. cd frontend → npm install → npm run dev → Web: http://localhost:5173

BỘ SOURCE GỒM

  • Mã nguồn backend + frontend đầy đủ
  • File SQL schema tự tạo bảng khi khởi động
  • File cấu hình mẫu (.env, application-local.yml.example)
  • README hướng dẫn cài đặt

LƯU Ý

  • Mã nguồn dùng cho học tập, đồ án, tham khảo; người mua tự triển khai và cấu hình môi trường.
  • PayOS/Gmail cần tự đăng ký và điền key; có thể demo bằng thanh toán tiền mặt không cần PayOS.
  • Giao diện responsive, hỗ trợ tiếng Việt.


XEM THÊM ==> Hướng dẫn cài đặt chi tiết

 

HÌNH ẢNH DEMO

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Spring,Mybatis,React,Vite,PayOs

Nguồn: Sharecode.vn



HƯỚNG DẪN CÀI ĐẶT

1. Yêu cầu

  • JDK 17 trở lên
  • Maven 3.8+
  • Node.js 18+ và npm
  • MySQL 8.0+
  • IDE: IntelliJ IDEA / VS Code (tùy chọn)

2. Cài đặt MySQL

  1. Cài và khởi động MySQL Server.
  2. Tạo database (hoặc để backend tự tạo khi chạy):
CREATE DATABASE redbus CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. Ghi nhớ: host, port (3306), user, password.

3. Cấu hình & chạy Backend

  1. Giải nén source, mở thư mục backend.

  2. Cấu hình database trong src/main/resources/application.yml:

spring:
datasource:
url: jdbc:mysql://localhost:3306/redbus?useSSL=false&serverTimezone=Asia/Ho_Chi_Minh&characterEncoding=utf8
username: root # đổi theo máy bạn
password: 12345678 # đổi theo máy bạn

Hoặc dùng biến môi trường: DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD.

  1. (Tùy chọn) PayOS + Gmail — sao chép file mẫu:
application-local.yml.example → application-local.yml

Điền client-id, api-key, checksum-key PayOS và Gmail App Password.
Không bắt buộc nếu chỉ demo bằng thanh toán tiền mặt.

  1. Chạy backend:
cd backend
mvn spring-boot:run

Đợi log Started → API: http://localhost:8080/api

Lần chạy đầu: tự tạo bảng (schema.sql) và dữ liệu mẫu (tuyến, xe, chuyến, tài khoản demo).

4. Cấu hình & chạy Frontend

  1. Mở terminal mới, vào thư mục frontend.

  2. Cài package:

npm install
  1. Tạo file .env (sao từ .env.example):
VITE_API_URL=http://localhost:8080/api
  1. Chạy:
npm run dev

Truy cập: http://localhost:5173

5. Tài khoản demo

Vai trò Tài khoản Mật khẩu
Quản trị
admin
Admin@123
Nhân viên
staff
Staff@123
Khách hàng
khach1 … khach5
(theo seed / đăng ký mới)
  • Quản trị: http://localhost:5173/quan-tri
  • Đặt vé: http://localhost:5173/dat-ve

6. Thứ tự chạy khi demo

  1. Bật MySQL
  2. Chạy backend (mvn spring-boot:run)
  3. Chạy frontend (npm run dev)
  4. Mở trình duyệt → http://localhost:5173

7. Lỗi thường gặp

 

 

Lỗi Cách xử lý
Không kết nối MySQL
Kiểm tra MySQL đang chạy; đúng user/password trong application.yml
mvn không nhận lệnh
Cài Maven, thêm PATH; hoặc chạy bằng IntelliJ
Frontend không gọi được API
Backend phải chạy trước; kiểm tra VITE_API_URL=http://localhost:8080/api
Port 8080 / 5173 bị chiếm
Đổi port trong cấu hình hoặc tắt app đang dùng port
PayOS lỗi
Dùng Tiền mặt khi demo; hoặc cấu hình đủ key trong application-local.yml

 

 
 
LINK DOWNLOAD

redbus.zip [23,3 KB]

File đã được kiểm thử
     Báo vi phạm bản quyền
Pass giải nén (Nếu có):
sharecode.vn
DOWNLOAD
(50 Xu)
Bạn có code hay
ĐĂNG BÁN NGAY

BÌNH LUẬN



ĐÁNH GIÁ


ĐIỂM TRUNG BÌNH

5
1 Đánh giá
Code rất tốt (1)
Code tốt (0)
Code rất hay (0)
Code hay (0)
Bình thường (0)
Thành viên
Nội dung đánh giá
20:02 - 28/6/2026
Code rất tốt
Code rất tốt và phù hợp để phát triển

 HỖ TRỢ TRỰC TUYẾN