Skip to content

3rd Semester Project, enabling to book, view and manage trips

License

Notifications You must be signed in to change notification settings

everythingshyam/book-my-ride

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookMyRide

A detailed C++ program to manage Taxi and Bike Booking, with interactive interface for customers, drivers, application staff and admins. Made this as a team mini-project in the third semester of my college. (March, 2021)

Setup

  • You can simply get the running application from releases page.

  • Or you can clone this repo on your local device and simply run the c++ file named BookMyRide.cpp located in the src folder:

    git clone https://github.com/everythingshyam/book-my-ride.git
    g++ src/BookMyRide.cpp -o BookMyRide
    ./BookMyRide

Testing

  • While testing the app, for consistency and ease of access, it is recommended to use the following data. However, this is just a recommendation. You can test it anyway you want.
    • Mobile No : 0123456789
    • Date : 02/02/02 (use this format only)
    • Password : password
    • For names, use one word only

Team Members:

Project Overview

It is a simple yet extensive Cab Booking Management System that provides users booking services for taxis as well as bikes. The application provides interface for customers, drivers, staff and administrators.

We took reference from an already existing application available on GitHub (reference code can be accessed here) However, the whole application structure was built up from scratch, component by component. The application is divided into following major segments:

  • Util Functions
  • Admin Section
  • Staff Section
  • User Section
    • Bike Users
    • Taxi Users

First, there are several util functions that provide common functionalities such as changing theme of the terminal, importing and exporting data from and to text files, authenticating users, etc.

Then the functions are divided based on the user-classifications, and each function also checks for something called userMode, which is basically a number that represents the role of the user. Each function checks for the userMode before allowing access to the operations it contains.

Concepts used

The menus shown in this program are made using switch cases. Besides, there is a lot of usage of if-else if-else structure and loops. Most of the variables used are declared globally. We used struct to store records of vehicles, customers, etc. Every feature is implemented as a function, with proper care for unexpected scenarios, even if there're not much as of now. File handling is used to write to/read from text files. With more than 3500 lines of code, the program has used a lot of programming concepts.

We have also taken care of consistency throughout the code through things such as:

  • Wherever there is a menu, 0 is assigned to going back/logging out.
  • And hence, to avoid any confusion, loops have been run from 1 instead of 0.
  • Also, at some places, -1 is used to represent unacceptable scenarios. Such as when user deletes himself (program needs to go back to login/signup screen)

Backstory

After making a complete project in C, I was really motivated this semester to work on another project, this time in C++. We have made a dummy CPP Application for Taxi and Bike Booking, Book My Ride. We worked on different components at the same time. It worked out very well and the examiner really liked our project and so did our freinds. It was simple yet worth taking a look. Many of my friends were surprised by the amount of code written (for a mini-project).

This was the first real project in which we used git and GitHub extensively. That really helped us explore a lot about how open source works and was one of the initial stages that led to the extent to which I use version control now.