Hello,
Welcome to the Online Hotel Booking Application System, I named it as "RoomOnBoat". You can find logo below of my Application.
1. Admin
2. Host
3. Users
4. Booking
5. Property
6. Room
Database Name..
RoomOnBoat
Database Software Name..
MySQL (RDBMS)
As the names indicate they are entity classes for generating the various tables and their relations, You can have a look and find the relations between them in the below diagram.
I have given three sides to this application...
So first there are some endpoints that are permitted to all. These are as follows:
1 -> LogIn endpoint (end points=>'http://localhost:8080/logIn')
2 -> Host Sign Up (end point=>'http://localhost:8080/add/hosts') {For Host and Admin email will be generated by the application backend, don't provide it even after providing the application will change it according to written logic.}
3 -> User Sign Up (end point=>'http://localhost:8080/add/users')
4 -> Show properties (end point=>'http://localhost:8080/user/get_properties')
5 -> Show room of Property (end point=>'http://localhost:8080/user/property/{propertyId}/get_rooms')
Admin Functionality.....
For using admin functionality you have to login as Admin. ( You can not Sign Up as Admin. For getting added to the application there should be a master admin who can add you as Admin from Users or Hosts. )
Admin can do...
1 -> Admin change user or host to Admin (end points=>'http://localhost:8080/admin/add_admin/host/{hostId}' or 'http://localhost:8080/admin/add_admin/user/{userId}')
2 -> Delete user (end point=>'http://localhost:8080/admin/delete_user/{userId}')
3 -> Delete host (end point=>'http://localhost:8080/admin/delete_host/{hostId}')
4 -> Show users (end point=>'http://localhost:8080/admin/get_users')
5 -> Show hosts (end point=>'http://localhost:8080/admin/get_hosts')
6 -> Show Properties(end point=>'http://localhost:8080/admin/get_properties')
7 -> Show Rooms(end point=>'http://localhost:8080/admin/get_rooms')
8 -> Delete Property(end point=>'http://localhost:8080/admin/delete_property/{propertyId}')
9 -> Delete Room(end point=>'http://localhost:8080/admin/delete_room/{roomId})
10-> Show admins(end point=>'http://localhost:8080/admin/get_admins)
Host Functionality.....
For using Host Functionality you have to login as Host.
The host can do...
1 -> Add property in his profile (end point=>' http://localhost:8080/host/{hostId}/properties ')
2 -> Add room to his Property (end point=>' http://localhost:8080/host/{hostId}/property/{propertyId}/rooms ')
3 -> See his property (end point=>' http://localhost:8080/host/{hostId}/properties ')
4 -> See his property's rooms (end point=>' http://localhost:8080/host/{hostId}/property/{propertyId}/rooms ')
5 -> Update password(end point=>' http://localhost:8080/host/{hostId}/update_password ')
6 -> Update name(end point=>' http://localhost:8080/host/{hostId}/update_name ')
7 -> Delete account(end point=>' http://localhost:8080/host/{hostId}/delete_account ')
8 -> Update Booking Status(end point=>' http://localhost:8080/host/{hostId}/update_status/booking/{bookingId} ')
9-> Delete room(end point=>' http://localhost:8080/host/{hostId}/property/{propertyId}/delete_room/{roomId} ')
10-> Delete Property(end point=>' http://localhost:8080/host/{hostId}/delete_property/{propertyId} ')
User Functionality.....
For using User Functionality you have to login as User.
User can do...
1 -> See his boking (end point=>'http://localhost:8080/user/{userId}/get_your_booking')
2 -> Update email (end point=>'http://localhost:8080/user/{userId}/update_email')
3 -> Update password(end point=>'http://localhost:8080/user/{userId}/update_password')
4 -> Update name(end point=>'http://localhost:8080/user/{userId}/update_name')
5 -> Delete account(end point=>'http://localhost:8080/user/{userId}/delete_account')
6 -> Book a room(end point=>'http://localhost:8080/user/{userId}/book_room/{roomId}')
7-> Delete room from booking(end point=>'http://localhost:8080/user/{userId}/booking/{bookingId}/delete_booked_room/{roomId}')
8-> Confirm booking(end point=>'http://localhost:8080/user/{userId}/confirm_booking/{bookingId}')
For all the Show/See requests(Method="GET"), you can get it in pages and can order it(Default->by name/id). For pagination and sorting in Get method endpoints, you have to add the things which are as follows...
These were some functionality of my application.
Thank you.....