Welcome to the Hotel Booking System, a sophisticated desktop application developed collaboratively by a dedicated team using Java and the powerful JavaFX framework for a rich graphical user interface (GUI). This system provides a comprehensive and user-friendly platform for managing hotel reservations, showcasing practical application of object-oriented principles and modern Java technologies. Our goal was to create an intuitive and efficient tool for both customers looking to book rooms and administrators managing the hotel's inventory and reservations.
-Intuitive Room Browsing: Explore available rooms (Single, Double, Suite) with detailed descriptions, pricing, and availability status presented clearly in the GUI.
-Seamless Booking Process: A guided booking experience allows users to easily select dates, choose rooms, and enter customer details.
-Dynamic Reservation Management: View detailed information about existing bookings using unique IDs.
-Effortless Cancellation: Cancel reservations with automatic updates to room availability.
-Promotional Code Integration: Apply discount codes during booking for special offers.
-Simulated Payment Options: Includes simulated integration for Visa and PayPal payment methods.
-Rich JavaFX Interface: A visually appealing and interactive GUI built entirely with JavaFX, offering a modern user experience with components like tables, forms, and custom views.
-(Legacy) Console Interface: Includes the original basic console interface for alternative interaction or testing. Dive into JavaFX Implementation
This project heavily utilizes the JavaFX framework to create a modern, responsive, and feature-rich graphical user interface. Key aspects of our JavaFX implementation include:
-FXML for Layouts: We leveraged FXML to define the structure of our user interfaces, separating the presentation layer from the application logic. This promotes cleaner code and easier maintenance.
-Scene Builder Compatibility: FXML files can be easily edited using Scene Builder, allowing for visual UI design.
-MVC Pattern: Followed the Model-View-Controller (MVC) pattern to organize the GUI code, ensuring separation of concerns. Controllers handle user input and update the view based on changes in the model.
-Custom Components & Views: Developed custom table views (RoomTableItem) and dedicated views for different functionalities (Add Booking, Cancel Booking, Room View, etc.) to provide a tailored user experience.
-Event Handling: Implemented robust event handling for user interactions like button clicks, selections, and form submissions.
-Data Binding (Potential): While not explicitly detailed in the provided code snippets, JavaFX's powerful data binding capabilities could be further utilized to link UI elements directly to data models for automatic updates.
-Styling with CSS (Potential): JavaFX allows styling using CSS, offering flexibility to customize the application's look and feel (though specific CSS usage wasn't detailed in the provided files).
-The use of JavaFX elevates the application beyond a simple console program, providing a professional and engaging experience for the end-user.
-Core Language: Java 17
-GUI: JavaFX 17.0.2 (including javafx-controls, javafx-fxml)
-Build & Dependencies: Apache Maven
-Testing: JUnit 5
-h the JavaFX graphical interface.
-Youssef Seyam
-Mohamed Ahmed Shehata
-Mohamed Mahmoud
-Abdelrahman Dakroury
-Mina ashraf