https://github.com/iamsatyamyadav/cab-booking-application-api
This project is an online cab booking system, designed to make it easier for customers to book a cab, as well as for drivers to manage their trips.
https://github.com/iamsatyamyadav/cab-booking-application-api
java jpa-hibernate maven mysql-database spring spring-boot swagger-ui
Last synced: 6 days ago
JSON representation
This project is an online cab booking system, designed to make it easier for customers to book a cab, as well as for drivers to manage their trips.
- Host: GitHub
- URL: https://github.com/iamsatyamyadav/cab-booking-application-api
- Owner: iamsatyamyadav
- Created: 2023-02-20T12:14:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-25T10:42:11.000Z (almost 2 years ago)
- Last Synced: 2025-06-24T08:02:15.782Z (6 days ago)
- Topics: java, jpa-hibernate, maven, mysql-database, spring, spring-boot, swagger-ui
- Language: Java
- Homepage: https://drive.google.com/drive/folders/1OQSXckoWt7YmyqbicFcflZp_aDmUl5Ys?usp=share_link
- Size: 492 KB
- Stars: 5
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#
Cab-Booking-Application-API (CabWalla)
This application is a REST API for an Online Cab Booking Management System.Using this web service a customer can book a trip, an admin can assign a driver to a particular trip, and a driver can complete the trip. All these CRUD operations require validation on each step.#
💻 Tech Stack





### Modules
- Login Module
- Admin Module
- Customer Module
- Driver Module
- Trip Booking Module### Functionalities
- Common Functionalities :- Login, Logout and registration to the system.
* Admin Functionalities :-
* Administrator Role of the entire application
* Only registered admins with valid session token can add/update/delete driver or customer from main database
* Admin can access the details of different customers, drivers and trip bookings
* Admin can assign a driver to a particular trip.
* Customer Functionalities :-
* Registering themselves with application, and logging in to get the valid session token
* Book a trip.
* Access his trip history, profile updation, update trip details.
* Rate a driver.
* Driver Functionalities :-
* Driver can login, update his profile.
* Driver can update their cab details
* Check trips assigned to him.
* Can generate a bill.## 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=8087spring.datasource.url=jdbc:mysql://localhost:3306/cabwayDB;
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
````
## API Module Endpoints### Admin Module
* POST /admins :- Register admin
* `PUT /admins :- Update admin details.
* PUT /admins/tripbooking/bill/{cid} :- Generate a bill for a trip.
* PUT /admin/updateTripBooking/{userId} :- Update trip status to completed or cancelled.
* GET /admins/viewCabByType/{carType} :- View cabs of particular type.
* GET /admins/tripbookings/datewise/{date} :- View all trips for a particular day.
* GET /admins/tripbookings/datewise/{cid}/{sdate}/{edate} :- Check all trips for a particular date range.
* GET /admins/driver/{driverId} :- Check a driver with driver id.
* GET /admins/customers :- Check all customers in the database.
* GET /admins/customers/tripbookings :- Check all trips.
* GET /admins/customer/{cid} :- Check a particular customer
* GET /admins/customer/tripbookings/{cid} :- Check all trips of a particular customer.
* GET /admins/countCabsOfType/{carType} :- Count cabs of a particular type.
* GET /admins/bestdrivers :- Check drivers with rating over 4.5.
* DELETE /admins/{aid} :- Delete an admin.
* DELETE /admins/deletetripBooking/{tbid}/{uid} :- Delete trip if status is completed or cancelled.
* DELETE /admins/deleteDriver/{driverId} :- Delete a driver from the system.
### Customer Module
* POST /customer :- Register a customer.
* PUT /updateCustomer :- Update customer details.
* POST /customers/tripBook/{cid} :- Book a trip.
* PUT /customer/updateTripBooking/{userId} :- Update trip booking details.
* PUT /customer/ratedriver :- Rate a driver.
* GET /validateCustomer :- Validate himself.
* GET /customers/{customerId} :- Get his details
* GET /customer/tripbookings/{cid} :- Get trips history.
* DELETE /deleteCustomer/{customerId} :- Delete his account.
### Driver Module
* POST /driver :- Register a driver.
* PUT /updateDriver :- Update his details.
* PUT /drivers/updateCab :- Update cab details.
* PUT /driver/updateTripBooking/{userId} :- Mark trip as completed or cancelled.
* PUT /driver/tripbooking/bill/{customerid} :- Generate bill.
* GET /driver/{driverId} :- Get his details.
* DELETE /deleteDriver/{driverId} :- Delete his account.
### Login Module
* `POST /login :- Login to the system, get uuid.
* DELETE /logout :- Logout of the system.
## API Root Endpoint
`https://localhost:8081/`
`http://localhost:8081/swagger-ui/index.html#/`
# Features & Controller
## Driver-Controller
## Customer-Controller

## Admin-Controller
## Login-Logout-Controller
#### For any feedback, report, suggestions, you can contact with anyone of the team members.
### THANK YOU