adityakhr / RoomOnBoat_Hotel-Booking-Application

RoomOnBoat is an online Hotel Booking Application which manages the relation between Users and Hosts.

Home Page:https://drive.google.com/file/d/1sLBdr2r1xWxih7FQYSoXGbCKr0PxaXpX/view

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RoomOnBoat A Hotel Booking Application

Hello,
Welcome to the Online Hotel Booking Application System, I named it as "RoomOnBoat". You can find logo below of my Application.

Logo

Here in this project, you can find some entity classes which are as follows..
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...

?page={yourPageNumber}&count={ourItemCount}&order={desc/asc}

To access these endpoints you have to clone the repo into your system and have to have java17 installed then you can access these endpoints in Postman.
These were some functionality of my application.
Thank you.....

About

RoomOnBoat is an online Hotel Booking Application which manages the relation between Users and Hosts.

https://drive.google.com/file/d/1sLBdr2r1xWxih7FQYSoXGbCKr0PxaXpX/view


Languages

Language:Java 100.0%