- We developed this REST API for a Bus reservation application. This API performs all the fundamental CRUD operations of any Bus reservation platform with user validation at every step.
- This project is developed by team of 4 Back-end Developers during project week in Masai School. Link
- Java
- Spring Framework
- Spring Boot
- Spring Data JPA
- Hibernate
- MySQL
- User Module
- Bus Module
- Route Module
- Reservation Module
- Feedback Module
Following ER diagram indicates the database tables and thier interaction which we are using.
- User and Admin authentication & validation with session uuid having.
- Admin Features:
- 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 users, buses and routes.
- Customer Features:
- Registering themselves with application, and logging in to get the valid session token
- Viewing list of available bus and booking a reservatioon.
- Only logged in users can update his/her reservation, 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=8888
spring.datasource.url=jdbc:mysql://localhost:3306/busdb;
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
POST /login
: Logging in user with valid mobile number & passwordPOST /logout
: Logging out user based on session tokenPOST /BRSystem/user
: To register user himselfPOST /feedback/userId/busId
: To give feedback by user based on userId and busIdGET /bus/busId
: Getting the details of the bus by its idGET /buses
: Getting All the busesGET /busByType/busType
: Getting details of bus by its typeGET /reservation/userId
: To do reservation by user by his/her idGET /reservation/reservationId
: Getting the reservation details by reservation idPUT /reservation/userId
: Update reservation details by user idPUT /BRSystem/user
: Update user details by himselfPUT /feedback
: To update feedback given by user.DELETE /reservation/userId/reservationId
: Cancel reservation by reservationId, userId