Bus Ticket Booking System in PHP CodeIgniter with Source Code

A fully functional project based on Online Bus Ticket Booking System which uses PHP Language with CodeIgniter Web Framework. The following PHP CodeIgniter project contains all the essential features which can be in use by second-year IT students for their college projects. It has a number of features that will allow users to manage and book online bus tickets. This system as well as the web application’s concept is all clear. It’s the same as real-life scenarios and well-implemented on it. To download a free bus ticket booking system project in PHP with source code files, please scroll down to the bottom of this post for the Download button.

About Bus Ticket Booking System PHP Project

In particular, this Online Bus Ticket Booking System project in PHP CodeIgniter focuses mainly on booking bus tickets online. To be more precise, the system helps to keep track of the bus records, schedules, passengers, and more with their respective information(codeastro.com). Also, the system contains all the terminal management side of things. In addition, the system also generates e-tickets for passengers. Evidently, this project contains an admin panel with a customer/passenger panel. In an overview of this web application, a passenger’s account has minimum role and control over the system. He/she has to register themselves in order to book online bus tickets. The users can search for available schedules by providing details such as date, origin, and destination. In return, the system lists all the available schedules with their respective ticket prices and total seats.

Diving into online booking procedures, the user has to proceed with a booking after the selection of the bus schedule. Here, the user can have an overview of the ticket description with a selection of bus seats. There are a number of check boxes that represent the total seats in a bus. In total, there are only 23 seats available for each bus. Also, a passenger can only book four seats at a time. Rest, the customers have to provide customer identity details and select a payment method(codeastro.com). After all these steps, the user can finally reserve a ticket for a certain time before making their payments. The booked tickets require payment submission which steps are clearly mentioned on the respective pages. At last, he/she should wait for final payment verification before receiving bus tickets.

Payment, E-Tickets, and More

The customers should fill up a quick form after making payment. Where the system asks for the name of the sender, bank name, and account number with an attached proof of payment. With respect to the above-mentioned steps, the users can only receive their tickets after getting approval from the system administrator. In addition to it, the users can also check their ticket status from my tickets section, which especially works for pending tickets. Here, the user has to provide a booking code to check if the tickets are still in pending or canceled status. The system shows all his/her respective booked tickets with the status of each. And not just that, the users can also download Qr codes for each booked ticket(codeastro.com). In fact, the system automatically generates Qr Codes. Besides, users can view/update their profile and password.

Admin Panel

Before anything else, this project contains two different admin levels separated as owner and administrator. The owner level has full control over the system He/she can manage all the system users, reports, schedules, buses, terminals, and so on. Whereas, the administrator level has access to all except system user management, bank, and report section(codeastro.com). Here, each and every section has its own respective details such as name, image, and other important details. Both owner and administrator can have an overview of total pending bookings, sold tickets, payment lists, terminals, and schedules from his/her dashboard. Now talking about a section that only the owner account can access, which is related to bank information. In this section, the system user can add up bank details that connect to the customer’s selection of payment method. For this, the user has to provide the name of the bank with a bank logo.

Bus, Terminal Management

Now here comes the very first thing of management for the administrator side. That is to set up bus records and terminals. Both of the admin levels can manage bus records for the system. The system requires basic bus details such as the name of the bus with plate number, and the number of seats. To point out that the seat number should not exceed more than 23. If exceeded, it won’t have any effect on the system as the system only displays seat numbers up to 23 during online bookings from the client side(codeastro.com). Moving towards destination/terminal management, the system users can add a number of locations with their respective terminals. In fact, this information is directly connected to the schedule management section. In order to add a location/terminal, he/she should provide the destination and terminal name. Also, each and every location point will have its own unique code.

Schedule Management

When it comes to projects such as ticket booking systems, the user must be able to look for available bus schedules. And there is one here. From the schedule management section, system users can arrange a number of different schedules for each bus and route. In reality, people want a wide range of bus schedules with their desired routes and all, which can be managed from this section with ease. There is a good number of fields under the management of this section(codeastro.com). The system requires various details in order to set a new schedule. Such as the selection of routes [origin and destination], available buses, departure & arrival times, and total price. Also, each and every schedule will have its own unique schedule code. The users can view a list of scheduled information and search for desired bus routes.

Manage Bookings and Payment List

All the procedures to book a ticket from the client side are clearly mentioned above and this section focuses mainly on the admin panel. All the pending booking details as well as payment confirmation details are presented under the booking and payment list section. He/she can view details of bookings such as code, passenger’s name, date, purchase date, and ticket quantity with the status of each. Here, status represents the current state of booking, whether it’s paid, pending, or canceled. The administrators can view his/her payment confirmation details with an attached proof image and other payment details(codeastro.com). After verifying it, the user can simply mark the pending bookings as paid, or unpaid, or cancel them. With it, the system automatically generates an e-ticket for all the paid bookings which is clearly visible to both admin and passengers. All the payment submission details are listed under the payment list section.

Tickets and Report

Moreover, after the successful bookings, the system auto-generates an e-ticket for the customers which is listed here in this section. The users can have quick information about tickets such as ticket code, name of the passenger, seat numbers, and schedule code. In fact, the system only displays all the paid tickets here. The system users can view and download tickets. On the other hand, the owner can only access the report section. Here, the user can view a report on total ticket sales within a given date range. As a result, the system generates a report based on the date range with detailed information(codeastro.com). Such as ticket number, passenger name, booking code, age, seat number, and prices. The report will also include a portion to display the total ticket sales amount within the given date range. Besides, the owner can add new administrators and view registered customer details.

Administrators can also search for booking details by providing booking codes from the top bar search form. In case of any confusion, the system has pointed to note down all the steps to book and manage it. Last but not least, a clean and simple dashboard is presented with various color combinations for a greater user experience while using this Bus Ticket Management System Project in PHP MySQL. For its UI elements, a free open-source CSS framework; Bootstrap is on board with some Vanilla CSS too. Presenting a new Online Bus Ticket Booking System Project in PHP which includes an admin panel. That too contains all the essential features to follow up and is a knowledgeable resource for learning purposes.

Available Features:
  • Client Side Interaction
  • Admin Panel
  • Customer Panel
  • Search Bus Schedules
  • Book online tickets
  • Payment Options
  • Auto Generate Qr Code
  • Payment Proof Submission
  • Print, Download E-Tickets
  • Cancel Tickets
  • Check Tickets
  • View, Update Profile
  • Change Password
  • Bus Management
  • Route Management
  • Bus Schedule Management
  • Manage Bookings
  • View Paid Tickets
  • View Payment Lists
  • Set up Bank Details
  • Ticket Sales Report
  • System User Management
  • List Registered Customers
  • Search Records
Project Name:Bus Ticket Booking System
Technologies Used:PHP with CodeIgniter Web Framework
PHP version (Recommended):PHP v.5, 7
Type:Website, Web Application
Developer:Bahyu Sanciko
Online Bus Ticket Booking System PHP CodeIgniter Project Overview

Instructions: How to Run?

  • After you finish downloading the project, unzip the project file and head over to your XAMPP directory.
  • There you’ll find a folder named “htdocs”.
  • Inside the “htdocs” folder, paste the project folder (not the .zip one, but the extracted one).
  • Open your favorite browser; we recommend using Google Chrome or Mozilla Firefox.
  • Then, go to the URL “http://localhost/phpmyadmin“.
  • Create a Database with a name that is provided inside the “01 LOGIN DETAILS & PROJECT INFO.txt”.
  • Click on the “Import” tab and choose the database file (.sql) which is provided under the folder named “DATABASE FILE”.
  • After setting up all these, go to the URL “http://localhost/[ PROJECT_FOLDER_NAME ]/“
  • All the login details are provided inside the project folder, check that out and enter them in order to use it.

And there you have it, a full setup of the Bus Ticket Booking System Project in PHP MySQL. For this particular PHP project, PHP Version 5.6, 7 is required because the project might not operate with the latest PHP version. So, users with the latest PHP version (more than PHP 5) might face various problems while operating it. As a result, you’ll need to manage your PHP version (only if you’re using the latest version) at the moment. Also, Download Free Bus Booking Project in PHP Source Code – codeastro.com. So, this bus ticket booking system PHP project is a fully functional project for all the intermediate levels. That broads vast knowledge into such PHP web applications. In conclusion, this whole PHP project with free source code is an absolute project and a meaningful way for the users to learn and explore more about it.

Free Download Bus Ticket Booking System Project in PHP MySQL CodeIgniter with Source Code:
Click the Download Button Below to Start Downloading

Note: Only for Educational Purpose


  1. Please I like your projects and may you please do the coding for us from scratch so that we will understand every single code in the project?

  2. How to fix
    You don’t have permission to access this resource.

    Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/7.4.27 Server at localhost Port 80

    1. This Website didn’t work on my Device. While I run it, it shows the “A PHP Error was encountered” message.
      can you please fix it , I liked this website function immediately when I saw it in youtube,

  3. A PHP Error was encountered
    Severity: Warning

    Message: mysqli::real_connect(): (HY000/1045): Access denied for user ‘root’ @’ localhst’ (using password: NO)

    Filename: mysqli……………..

  4. After I wrote something in the search. Now it displays “Empty
    No Order” every time you go to a certain page.

  5. I can’t get a ticket, it gives an error on the page:

    A PHP Error was encountered
    Severity: 8192

    Message: Required parameter $back_color follows optional parameter $filename


      1. Good Afternoon,
        how can i reach you out. am interested to have talk with you.
        will really appreciate for your quickly response.
        regards with thanks

  6. Everything was working just fine not until I changed the terminal information from xampp now when I select the origin and the destination its not progressing to the next stage instead its coming bringing me back to the same page. please help me on how I can fix this

  7. A PHP Error was encountered
    Severity: 8192

    Message: Methods with the same name as their class will not be constructors in a future version of PHP; mPDF has a deprecated constructor

    Filename: mpdf/mpdf.php

    Line Number: 89…………….

    How I solve this, when i change the payment status from unpaid to paid, help me please

  8. Not Found
    The requested URL was not found on this server.

    Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4 Server at localhost Port 80

  9. please help me you website i working but after selecting seats as customer the next button doesn’t work pleease told me the way i use in order to make it work and told me the way i may use in order to change the language of all website into my mother language

  10. please help me you website i working but after selecting seats as customer the next button doesn’t work pleease told me the way i use in order to make it work and told me the way i may use in order to change the language of all website into my mother language

  11. An uncaught Exception was encountered
    Type: Error

    Message: Call to a member function ReadCSS() on null


  12. everything works properly but in Owner pannel where we add new owner and admin this page is missing not found after i click on add access acount please help me in this thank u

  13. A Database Error Occurred
    Error Number: 1146

    Table ‘busticketci.tbl_tujuan’ doesn’t exist………..

    Line Number: 691

    1. This error indicates that the ‘tbl_tujuan’ table is missing in the database. Please make sure you’ve created a database named ‘busticketci’ and imported the given sql file.

Leave a Reply

Your email address will not be published. Required fields are marked *