View Video · Report Bug · Request Feature
Table of Contents 📋
Welcome to the Hotel Booking Website project! This web application is designed to streamline hotel room booking processes with a user-friendly interface. Users can register, log in, explore available rooms, and make reservations based on their preferred dates.
-
User Registration and Authentication: Users can create accounts and log in securely to access the booking features.
-
Room Listings: A comprehensive display of all available rooms with details such as room type, space, and pricing.
-
Booking Functionality: Users can book a room if it's available on the selected date, providing a hassle-free reservation experience.
-
Admin Dashboard: An administrative interface allows admins to manage rooms, bookings, and users efficiently.
-
Room Management: Admins can add, edit, or remove rooms, including the option to upload photos to enhance room descriptions.
-
Booking Management: View and manipulate all booking details, giving admins control over reservations.
-
User Management: Admins can oversee user accounts, with the ability to edit or delete accounts and grant or revoke admin privileges.
Admins have additional responsibilities and privileges:
-
Add/Edit/Remove Rooms: Admins can update the list of available rooms, edit their details, or remove them as needed.
-
Booking Oversight: Complete view and control over all bookings, including the ability to edit or delete reservations.
-
User Management: Admins can manage user accounts, edit details, and control admin privileges.
Before getting started, ensure you have the necessary prerequisites:
-
Node.js: Make sure you have Node.js installed. If not, you can download and install it from Node.js
-
MySQL Make sure you have Node.js installed. Visit MySQL to install the database server.
-
Clone the repository
git clone https://github.com/Elio-Aliaj/Hotel-Project.git
-
Install packages
cd .\Hotel-Booking-Website\Backend
npm install
cd .\Hotel-Booking-Website\Frontend
npm install
- In the project folder (bHotel-Booking-Website\Backend), locate the
.env.example
file - Rename it to
.env
- Open the
.env
file:- Replace
MYSQL_HOST
with your actual database IP. - Replace
MYSQL_USER
with your actual database User. - Replace
MYSQL_PASSWORD
with your database Password for the User. - Replace
MYSQL_DATABASE
with your actual database Name. - Replace
AUTH_KEY
with your encoder key.
- Replace
I am assuming that you know how to set up your database if not this video might be helpful.
- To create the tables on the database you can run the query in this file - Database Tables
-
Run Frontend server
cd .\Hotel-Booking-Website\Frontend
npm start
This will be shown in the console:
> frontend@0.0.0 start > ng serve Initial Chunk Files | Names | Raw Size styles.css | styles | 271.49 kB | main.js | main | 100.19 kB | polyfills.js | polyfills | 82.71 kB | | Initial Total | 454.38 kB Application bundle generation complete. [2.610 seconds] Watch mode enabled. Watching for file changes... ➜ Local: http://localhost:4200/ No output file changes. Unchanged output files: 3 Application bundle generation complete. [0.281 seconds]
-
Run Frontend server
cd .\Hotel-Booking-Website\Backend
node .\App.js
This will be shown in the console:
-----------------:: Service listening on port: 3000 ::-----------------
-
Now you can access the frontend server in the browser in the link: http://localhost:4200/
- To login as admin:
- Username: admin
- Password: Admin123@
- You can register new users and give that user from the admin account admin privileges
- To login as admin:
0102.mp4
©️ Copyright 2024 Elio Aliaj elio.aliaj0@gmail.com
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.