The Hotel Booking App is a web application designed to streamline the hotel reservation process for users and provide an efficient management system for administrators. The application is built using React for the frontend and Spring Boot for the backend.
- User Registration & Login: Users can sign up, verify their email addresses, and log in to access the app.
- Email Verification: After registration, users receive an email with a verification link to activate their account.
- Booking System: Users can select check-in and check-out dates and make bookings.
- Admin Dashboard: Admins can upload files, add rooms, and manage/edit bookings.
- React: A JavaScript library for building user interfaces.
- Axios: Used for making HTTP requests from the frontend to the backend.
- React Router: For navigation within the application.
- Spring Boot: A Java framework for building the backend services.
- Spring Security: Used for securing the application, including JWT-based authentication.
- Spring Data JPA: For database interactions.
- MySQL/PostgreSQL: Relational database management system for storing user, booking, and room data.
- Java 17 or higher
- Node.js and npm
- MySQL or PostgreSQL database
- Clone the repository:
git clone https://github.com/yourusername/hotel-booking-app.git
- Navigate to the backend directory:
cd hotel-booking-app/backend
- Configure the database in the
application.properties
orapplication.yml
file:spring.datasource.url=jdbc:mysql://localhost:3306/hotel_booking spring.datasource.username=root spring.datasource.password=yourpassword
- Run the Spring Boot application:
mvn spring-boot:run
- Navigate to the frontend directory:
cd ../frontend/hotel-react/hotel-react
- Install dependencies:
npm install
- Start the React application:
npm start
- Register & Verify Email: Users must sign up with a valid email address and verify their account by clicking on a link sent to their email.
- Login: After verification, users can log in using their credentials.
- Booking: Users can choose their check-in and check-out dates to book a room.
- Room Management: Admins can add new rooms, edit existing room details, and manage room availability.
- Booking Management: Admins can view and edit user bookings.
- File Uploads: Admins can upload files (e.g., images of rooms, promotional materials).
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Make your changes.
- Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.