Giter Club home page Giter Club logo

online_cab_booking_application's Introduction

animated

- Exotic Cab Service Pvt.Ltd-

Online Cab Booking System

Introducing a cutting-edge project that I have recently developed - a RESTful API web service for an online cab booking platform. This project is designed to perform all the fundamental CRUD operations, along with user validation at every step. Whether you are a customer, driver, or administrator, this application has something for everyone.

Customers can register themselves with the application, and log in to get a valid session token. They can view the list of available cabs and book a trip, and only logged-in users can access their trip history, profile updates, and other features.

Drivers can log in to the application and update their information using their username and password. They can add and update their cab details and mark their availability according to the trip status. The driver can also end the trip, and the application generates a bill for the trip.

Admins have the administrator role of the entire application and can only be registered admins with a valid session token. They can add, update, and delete drivers or customers from the main database and access the details of different customers, drivers, and trip bookings.

Features

  • Authentication and validation for customers, drivers, and administrators is implemented through the use of session UUIDs.

Administrator

  • The ability to act as the primary overseer of the entire application
  • The capability to add, update, and delete drivers or customers from the main database
  • Access to details pertaining to customers, drivers, and trip bookings

Customer

  • The ability to register with the application and log in to receive a valid session token
  • The capability to view a list of available cabs and book a trip
  • The ability to access trip history, update profile information, and utilize other features, but only for logged-in users.

Driver

  • The ability to log in to the application and update personal information using a username and password
  • The capability to add and update cab details
  • The ability to mark availability status according to the status of trips
  • The ability to end a trip and have the application generate a bill for the completed trip.

Technical Stacks

  • Spring Boot
  • Spring Framework
  • Spring Data JPA
  • MySQL
  • Hibernate
  • Java
  • Swagger UI
  • Postman

Modules

  • Login Module
  • Admin Module
  • Customer Module
  • Driver Management Module
  • Cab Management Module
  • Booking Management Module

ER_Diagram

ER_Diagram

Installation & Run

  • Before running the API server, you have to update the database configuration inside the application.properties file
  • Update the port number, username and password as per your local database configuration
    server.port=8888

    spring.datasource.url=jdbc:mysql://localhost:3306/cabdb;
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.username=root
    spring.datasource.password=root
    

API Root Endpoint

https://localhost:8888/

http://localhost:8888/swagger-ui.html

API Module Endpoints

Admin Module

  • POST /login : Admin can login with username and password provided at the time of registation
  • POST /insert/{key} : Register a new admin with proper data validation and admin session
  • PUT /update/{key} : Updates admin details
  • DELETE /delete/{id} : Deletes the admin with passed id
  • GET /trips/{key} : Get list of trips of all the trips
  • GET /tripsByCab/{type} : Get list of trips by cab types
  • GET /tripsByDate/{date} : Get list of trips by date
  • GET /tripsByCustomer/{id} : Get list of all the customers trips by customer id
  • GET /tripsByCustomer/{id}/{date} : Get list of all trips for the day by id and date

Customer Module

  • POST /save : Adding new customer
  • PUT /update : Updates customer details
  • DELETE /delete/{id} : Deletes logged in user on the basis of id
  • GET /customer/{id} : Getting customer on the basis of id
  • POST /validateCustome : Checks valid coustomer

Driver Module

  • POST /driver : Register a new driver with proper data validation and admin session
  • PUT /driver : Updates the driver details
  • DELETE /driver/{driverId} : Deletes driver on the basis of id
  • GET /drivers : Gets the best driver whose rating is over 4.5
  • GET /driver/{id} : Get driver details by id
  • GET /listOfDrivers/{id} : Gets list of all the drivers

Cab Module

  • POST /cab : Register a new cab
  • PUT /cab : Updates the cab details
  • DELETE /cab/{cId} : Delete cab on the basis of cab id
  • GET /cabs/{carType} : Gets the list of cabs on the basis of cab type
  • GET /countofcabs/{carType} : Gets the total number of cabs on the basis of cab type

Book a Trip

Screenshot (793)

This project is developed by team of 5 Back-End Developers during project week at Masai School

Contributors

For any feedback, report, suggestions, you can contact with anyone of the team member

THANK YOU

online_cab_booking_application's People

Contributors

pra3eek avatar sab01123 avatar namdevmanoharpatil avatar medadeshreyas avatar ujjawalyt avatar

Stargazers

Tejas Vilas Medade avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.