This project is a RESTFUL API implemented using Java and Springboot, It provides a car booking service.
-
Customer subsystem
This subsystem contains most of the classes upon which any of the system users (Passengers, Drivers, Admins) depend in order for them to get their needs done.
-
Data subsystem
This subsystem contains all the classes that has to do with saving or manipulating any of our system's data. This system depends on arraylists to save the data, But a database management system can be used at any time interchangebly with these arraylists.
-
Event subsystem
This subsystem contains the classes responsible for tracking all the events that take place within the system.
-
Ride subsystem
This subsystem contains the classes that are responsible for the ride management and the driver's offers.
- Register as passenger: http://localhost:8080/register/passenger The data of the passenger should be passed in an XML or a Json format.
- Register as driver: http://localhost:8080/register/driver The data of the driver should be passed in an XML or a Json format.
- Login as passenger: http://localhost:8080/login/passenger/{Username}/{Password}.
- Login as driver: http://localhost:8080/login/driver/{Username}/{Password} Driver needs to be verified by an admin before he can log in.
- Login as admin: http://localhost:8080/login/admin/{Username}/{Password}.
- Logout: http://localhost:8080/logout/{Username}
- Verify driver: http://localhost:8080/admin/verify/{DriverName}.
- Suspend user: http://localhost:8080/admin/suspend/{UserName}.
- Get all system rides: http://localhost:8080/admin/getSystemRides.
- Get the events of a ride: http://localhost:8080/admin/getRideEvents/{idx}. You can get the idx of the ride by first calling function number 3.
- Apply discount on rides headed to a certain area: http://localhost:8080/admin/applyDiscount/{areaName}.
- Add Favourite Area: http://localhost:8080/driver/addFavouriteArea/{currentUsername}/{areaName}
- List Favourite Areas: http://localhost:8080/driver/ListFavouriteArea/{currentUsername}
- View Rides of an Area: http://localhost:8080/driver/viewRides/{currentUsername}/{areaNum}
- Suggest an offer to a ride: http://localhost:8080/driver/suggestOffer/{currentUsername}/{rideNum}/{offerPrice}
- View user's rating: http://localhost:8080/driver/viewRating/{currentUsername}
- Start ride: http://localhost:8080/driver/startRide/{currentUsername}
- End ride: http://localhost:8080/driver/endRide/{currentUsername}
- Passenger requests ride: http://localhost:8080/passenger/request/{currentUsername}/{source}/{destination}/{numberOfPassengers}
- Passenger views past rides: http://localhost:8080/passenger/viewPastRides/{currentUsername}
- Passenger rate ride: http://localhost:8080/passenger/rateRide/{currentUsername}/{rideIdx}/{rate}
- Passenger checks offers: http://localhost:8080/passenger/viewOffers/{currentUsername}
- Passenger accepts offers: http://localhost:8080/passenger/acceptOffers/{currentUsername}/{offerNum}