My name is Stefano Caramagno, and I'm pleased to present this repository containing a project on creation of a hotel management system.
This project was completed as part of a Software Engineering course during my Master's Degree in Computer Science and Engineering at the University of Catania.
- Project Documentation: Includes a written report detailing system requirements, architecture, and design choices.
- UML Diagrams: Shows system design using Domain Model, System Sequence Diagrams, Sequence Diagrams, and Class Diagram.
- Responsive UI Design: Ensures an adaptable interface optimized for both web and desktop screens.
- Software Architecture: Implements the MVC pattern for modular and maintainable development.
- Object-Oriented Design Patterns: Applies GoF Design Patterns and GRASP principles for better modularity and scalability.
- Database Management: Stores and manages data efficiently through a structured database system.
- Database Abstraction Layer: Leverages ORM for efficient interaction with the database.
- RESTful API Integration: Offers scalable APIs following REST principles for client-server communication.
- Secure User Authentication: Implements a login and registration system for all user types.
- User Account Access: Limits Customers and Cleaning Staff to viewing and managing only their data.
- Shared Account Access: Lets Receptionists and Operations Managers view and manage shared data.
- Check Room Availability: Allows customers to verify room availability before making or modifying a reservation.
- Request Booking: Enables customers to submit a booking request for hotel rooms.
- Manage Booking Requests: Allows receptionists to review and approve or reject customer booking requests.
- Make Payment: Facilitates online payment transactions for confirmed booking requests.
- View Paid Bookings: Enables customers to check their successfully paid reservations.
- Request Booking Modification: Allows customers to submit modification requests for existing paid bookings.
- Manage Modification Requests: Lets receptionists review and process requested paid booking changes.
- Cancel Booking: Provides customers the option to cancel a paid booking before check-in.
- Delete Booking: Enables receptionists to cancel paid bookings when necessary.
- Digital Check-In: Allows customers to confirm check-ins for their paid bookings.
- Digital Check-Out: Handles check-out procedures for departing guests.
- Assign Cleaning Tasks: Enables the operations manager to assign room cleaning tasks to cleaning staff.
- Manage Cleaning Tasks: Allows cleaning staff to update room cleanliness status after completing their tasks.
- Robust Testing & Debugging: Ensures reliability and stability through rigorous testing and debugging practices.
- Document Writing: Microsoft Word for writing the written report.
- Diagram: UML for system modeling and visualization.
- Frontend Development:
- HTML for structuring and organizing web content.
- CSS for styling, layout, and responsive design.
- Tailwind CSS for streamlined and modern styling.
- JavaScript for handling user interactions and making requests to APIs.
- Backend Development:
- Java for implementing server-side logic and processing data.
- Spring Boot for creating and managing API endpoints to handle client requests.
- Database Management: MySQL for structured and efficient data storage.
- Testing Frameworks:
- JUnit for unit testing and validating application logic.
- Mockito for mocking dependencies and simulating interactions between objects.
- Dependency Management: Maven for installing and managing project dependencies.
- IDE: Visual Studio Code for development and debugging.
- Version Control: Git for tracking changes and managing project versions.
- Repository Hosting: GitHub for storing, sharing, and maintaining the project repository.
Ensure you have the following tools installed on your system before proceeding:
- Java Development Kit (JDK): Version 17 or later, required to run the application.
- Apache Maven: Used to install dependencies and build the project.
- XAMPP: Required to provide a local server environment with MySQL and Tomcat.
- Astah UML: Required for viewing UML diagrams.
- IDE: Required to read and understand code efficiently.
- PDF Reader: Required to view the documents.
- Git: Used to clone the repository.
-
Clone the Repository
To download the repository and navigate to its directory:
git clone https://github.com/stefanocaramagno/Hotel_Management_System.git cd Hotel_Management_System -
Start MySQL Server
To launch the MySQL server using XAMPP:
-
Windows
C:\xampp\mysql\bin\mysqld --console
-
Linux
sudo /opt/lampp/bin/mysql.server start
-
macOS
sudo /opt/lampp/bin/mysql.server start
-
-
Install Dependencies
To install all required dependencies:
mvn clean install
-
Start the Server
To start the application:
mvn spring-boot:run
-
Access the Application
To open the application in your browser:
http://localhost:8080
This will take you to the homepage of the Hotel Management System.
To run the project's test suite:
mvn testFeel free to explore my professional journey, check out my projects, or get in touch through the following platforms:
© Stefano Caramagno
Personal and Educational Use Only
All content in this repository is provided for personal and educational purposes only.
Unauthorized actions without explicit permission from the author are prohibited, including but not limited to:
- Commercial Use: Using any part of the content for commercial purposes.
- Distribution: Sharing or distributing the content to third parties.
- Modification: Altering, transforming, or building upon the content.
- Resale: Selling or licensing the content or any derivatives.
For permissions beyond the scope of this license, please contact the author.
Disclaimer
The content is provided "as is" without warranty of any kind, express or implied.
The author shall not be liable for any claims, damages, or other liabilities arising from its use.