- We have developed this REST API for an Online Cab Booking application. This API performs all the fundamental CRUD operations of any Online Cab Booking platform with user validation at every step.
- This project is developed by team of 5 Back-end Developers during project week in Masai School.
- Java
- Spring Framework
- Spring Boot
- Spring Data JPA
- Hibernate
- MySQL
- Login, Logout Module
- Driver Module
- Customer Module
- Admin Module
- TripBooking Module
- Customer, Driver and Admin authentication & validation with usersession's sessionid.
- Admin Features:
- Administrator Role of the entire application
- Only registered admins with valid sessionid can add/update/delete driver or customer from main database
- Admin can access the details of different customers, drivers and trip bookings
- Customer Features:
- Registering themselves with application, and logging in to get the valid sessionid.
- Viewing list of available cabs and booking a trip.
- Only logged in user can access his trip history, profile updation and other features.
- Before running the API server, you should update the database config inside the application.properties file.
- Update the port number, username and password as per your local database config.
server.port=8088
spring.datasource.url=jdbc:mysql://localhost:3306/cabmatedb;
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
https://localhost:8088/
http://localhost:8088/swagger-ui.html
POST /customer/customerlogin
: Logging in customer with valid mobile number & passwordPOST /customer/customer
: register customer by providing valid detailsGET /customer/customer/{sessionid}
: Getting the details of customers through sessionidPUT /customer/update/{sessionid}
: Updates customer details based on sessionidPUT /customer/updatepassword
: Updates customer's password based on the given mobile numberPOST /customer/logout
: Logging out customer based on sessionidDELETE /customer/delete
: Deletes logged in userPOST /customer/verify
: verify by email and otp
POST /admin/registeradmin
: Register a new admin with proper data validationPOST /admin/login
: Admin can login with mobile number and password provided at the time of registationGET /admin/logout
: Logging out admin based on sessionidPOST /driver/register
: Register a new driver with proper data validation and admin sessionPOST /driver/login
: Driver can login with mobile number and password provided at the time of registationGET /admin/listoftripsbycustomer
: Get list of trips of by a customer idGET /admin/listoftrips
: Get list of trips of all the tripsGET /admin/listocustomers
: Get list of all the customersGET /admin/listodrivers
: Get list of all the driversPUT /admin/update/{username}
: Updates admin detaisl by passed user nameDELETE /admin/delete
: Deletes the admin with passed id
POST /driver/register
: Register a new driver with proper data validation and admin sessionPOST /driver/login
: Driver can login with mobile number and password provided at the time of registationPOST /driver/status/{?}
: Changes the status of the driver either Online or OfflineGET /driver/logout
: Logging out driver based on session tokenGET /driver/driverlist
: Gets list of all the driversGET /driver/bestdriver
: Gets the best driver whose rating is over 4.5PUT /driver/update
: Updates the driver details