Booking is a web application that simulates a booking website for hotels
- Admin side
- Admin can control hotels in system
- Admin can cancel reservations
- admin can register new admins
- Admin can view clients' reviews
- Client Side
- client can register using
Email
andusername
- client can search for hotels rooms
- client can make a reservation to a room
- client can search with check in and check out
- client can search with location
- client can edit his profile
- client can review a hotel
- client can cancel his reservation
- client can register using
- you must have a
glassfish server
, preferablyglassfish v5.0
. - you must have
mysql
server running on your machine. - you have to set up a configuration file in the following path
src/main/java/com/hagz_hotels/hotels_booking/Model/DAO/conf.java
with the same name conf.java
should have the following variables aspublic static
url
, MySql connection url, check this link to setup java mysql connectionuser
, Mysql userpassword
, Mysql password for the user to connect to database.StmpEmail
, Stmp email to send system emails, we use gmail.StmpPassword
, Stmp email password.
- User registration
- User must provide
Email
andusername
. - User must check reCaptcha to avoid spam.
- using Ajax to validate Email and username.
- If
Email
andUsername
provided passes verification, an Email is sent to the Email provided with random generated password to Login with. - Admins only can register new Admins.
- User must provide
- login
- User provide Email and password.
- using Ajax to validate
Email
andPassword
provided passes verification. - if User is authenticated, application redirect them to their
Home
page.
- search for hotels
- book a hotel room
- Add Hotel review
- Edit his profile
- Register new Admins
- Add new Hotels to website
- Check clients' reviews for hotels
- Update Hotels' data
-
Presentation Layer
- has all User interaction logic, handling the first layer of interaction and responses
- handling JSON responses and Html responses
- using an exposed interface from Business layer to authenticate and authorize users
- catching exceptions from lower layers and use a factory class to act with user interactions providing certain messages in case of certain Exceptions
-
Business Layer.
- Has backend validation on input data
- Interact with Model layer - Database -
- throws exceptions in case of failure.
- has DTOs to provide for presentation layer to expose certain parts of our
Model
-
Model Layer.
- has DAO to interact with database
- has Entity classes
- Java servlets
- Maven
- Map box API