Online Bus Reservation System in Python using Django Free Source Code

Language

Online Bus Reservation System using Django in Python

This project is entitled Online Bus Reservation System. This is a web-based application that provides an online platform for the Bus Company's customers/passengers to book their seats ahead of time. The application helps the passengers to find the available scheduled bus trip that matches their desired depart date and destination. The application was developed using Python and Django Framework. It has a pleasant user interface with the help of the Bootstrap Framework. The project also has user-friendly features and functionalities

About the Online Bus Reservation System

I developed this project using the following:

  • Python
  • Django
  • HTML
  • CSS
  • JavaScript
  • jQuery
  • Ajax
  • Bootstrap v5
  • Material Design Bootstrap Template
  • Font-Awesome

This Online Bus Reservation System Project is accessible only to the public. Aside from Django's Built-in Admin Site, the management has its own Admin Site where the management users can access and manage all the data of the system. The admin users can manage the Bus Category, Bus, Location, and Trip Schedule List. Admin Users are the ones who are in charge of updating or managing the booking or reservation list. The possible passenger can simply browse the system. Passengers explore the different trip schedules of the company. They can also find the available trips on their desired date to depart and their destination. Passengers can book or reserve their seats by simply filling the fields of the booking list.

Features

Management-Side

  • Login
  • Home/Dashboard Page
    • Displays the summary
  • Categories Management
    • Add New Category
    • List All Categories
    • Update Category Details
    • Delete Category Details
  • Location Management
    • Add New Location
    • List All Locations
    • Update Location Details
    • Delete Location Details
  • Bus Management
    • Add New Bus
    • List All Buses
    • Update Bus Details
    • Delete Bus Details
  • Trip Schedules Management
    • Add New Trip Schedule
    • List All Trip Schedules
    • Update Trip Schedule Details
    • Delete Trip Schedule Details
  • Bookings Management
    • Add New Trip Booking
    • List All Trip Bookings
    • Update Trip Booking Details
    • Delete Trip Booking Details
  • Profile
    • Update Profile Details
    • Update Account Password
  • Logout

Public-Side

  • Home Page
  • Find Trip Schedules
  • List All Upcoming Trip
  • Book or Reserve a Seat to a Trip

Sample Snapshots

Find Trip Schedule Form Page

Inventory Managament System Project

Trip Schedule List

Inventory Managament System Project

Admin Home Page

Inventory Managament System Project

Booking List

Inventory Managament System Project

Booking Details Modal

Inventory Managament System Project

The system source code is free to download on this project and only for educational purposes only. The source code is not that so tricky which means not that difficult to understand. Feel free to download and modify the source code the way you wanted.

How to Run

Download/Install the following

  • Python (I used v3.9.1)
  • Django (I used v4.0.3)
  • PIP (for python modules installation)

Setup/Installation

  1. Download and Extract the provided source code zip file. (download button is located below)
  2. Open your Terminal/Command Prompt window. (make sure to add "python" and "pip" in your environment variables)
  3. Change the working directory to the extracted source code folder. i.e. cd C:\Users\Personal-23\Desktop\django_btrs
  4. Run the following commands:
    • pip install -r requirements.txt
    • python manage.py migrate
    • python manage.py runserver
  5. Open a web browser and browse http://localhost:8000/ or http://127.0.0.1:8000/

Note: I might forget to list some other modules/libraries. Kindly Install the missing modules if any occurred.

Access Information

SuperUser
Username: admin
Password: admin123

DEMO VIDEO

That's it! I hope this will help you with what you are looking for. Maybe you'll find this Online Bus Reservation System useful and can help you with your future Python Django Projects.

Explore more on this website for more Free Source Codes and Tutorials.

Enjoy :)

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.

FOR YOUR OWN SAFETY, PLEASE:

1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.

Comments

Submitted bysubash sunar (not verified)on Sun, 09/17/2023 - 22:06

If you get the error you're encountering, unsupported operand type(s) for -: 'float' and 'NoneType', is happening in the count_available method of your Schedule model, specifically in your models.py file, at line 57. \btrs_django\reservationApp\models.py in code line 57 def count_available(self): booked = Booking.objects.filter(schedule=self).aggregate(Sum('seats'))['seats__sum'] return self.bus.seats - booked chage this to def count_available(self): booked = Booking.objects.filter(schedule=self).aggregate(Sum('seats'))['seats__sum'] # Check if booked is None, and if so, set it to 0 if booked is None: booked = 0 return self.bus.seats - booked
Submitted byYoums (not verified)on Thu, 02/01/2024 - 13:32

In reply to by subash sunar (not verified)

  1.  
  2. def count_available(self):
  3.  
  4. booked = Booking.objects.filter(schedule=self).aggregate(Sum('seats'))['seats__sum']
  5.  
  6. # Check if booked is None
  7.  
  8. if booked is None:
  9.  
  10. # Set booked to zero
  11.  
  12. booked = 0
  13.  
  14. return self.bus.seats - booked
Submitted byYoums (not verified)on Fri, 02/02/2024 - 00:13

Fix this in models.py at line 57
  1. def count_available(self):
  2.  
  3. booked = Booking.objects.filter(schedule=self).aggregate(Sum('seats'))['seats__sum']
  4.  
  5. # Check if booked is None
  6.  
  7. if booked is None:
  8.  
  9. # Set booked to zero
  10.  
  11. booked = 0
  12.  
  13. return self.bus.seats - booked

Add new comment