https://github.com/ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach
This is a Java program for a room-booking system that includes both a text-based user interface and a graphical user interface using Java Swing. The program was built using the Model-View-Controller (MVC) pattern.
https://github.com/ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach
github java junit learn mvc-architecture swing-gui
Last synced: about 1 year ago
JSON representation
This is a Java program for a room-booking system that includes both a text-based user interface and a graphical user interface using Java Swing. The program was built using the Model-View-Controller (MVC) pattern.
- Host: GitHub
- URL: https://github.com/ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach
- Owner: ajaymahadeven
- License: mit
- Created: 2022-12-01T02:09:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-02T11:33:37.000Z (almost 3 years ago)
- Last Synced: 2025-03-30T16:47:32.555Z (about 1 year ago)
- Topics: github, java, junit, learn, mvc-architecture, swing-gui
- Language: Java
- Homepage:
- Size: 50.8 KB
- Stars: 1
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Application Name
Room Booking System
---
## Description :
* This is a Java program for a room-booking system that includes both a text-based user interface and a graphical user interface using Java Swing. The program was built using the Model-View-Controller (MVC).
* To ensure the program functions correctly, JUnit was used to test the model and all tests are included in the submission.
* The program allows users to add, delete, and view users, buildings, and rooms. Users can also book and delete room reservations and view their reservations by either booking ID or email ID. Additionally, users can view all booked rooms and save/load data to/from a specified file.
* This project was developed as part of the CS5001 Object-Oriented Modelling, Design and Programming course practical.
---
## Functionalities Implemented
The following functionalities have been implemented for both GUI and CLI interfaces:
- Add/Delete/View Users.
- Add/Delete/View Buildings.
- Add/Delete/View Rooms.
- Book or Delete a Room Reservation.
- View Your Reservations by Booking ID.
- View All Booked Rooms.
- View Your Reservations by Name (EMAIL ID).
- Save the Data.
- Load the Data.
- Exit.
---
### Application Files :
The Room Booking System consists of the following files:
* RBSystem.java (Main File)
* User Service
* Building Service
* Room Service
* Reservation Service
* User Model
* Building Model
* Room Model
* Reservation Model
* BookingResource Controller
* CLI View
* GUI View
---
## Additional Features
The following features have been implemented, which are not part of the system requirements:
BookingID for creating a unique booking reference by a user to store multiple instances of reservations.
User email_ID is an essential part of the system to implement Role-Based Control as Admin privileges are open. This allows for creating a log that logs the creation/updation/deletion of any object can be accounted for.
Viewing all objects for Users, Buildings, Rooms, and Reservations.
---
## User Functionalities
The Room Booking System provides the following user functionalities:
- Add and remove people, rooms, buildings, and bookings.
- Choose a time and view all rooms available at that time.
- Choose a timeslot (start and end times) and view all rooms available for that whole period.
- View the schedule for a given room, including bookings and free periods.
- View all bookings made by a given person.
- Save to a specified filename.
- Load from a specified file.
---
## SETUP AND INSTALLATION
Terminal Usage or IDE Based
- Extract the *.zip file.
- Navigate to the src folder of the program.
- Compile the .java files in the terminal.
javac *.java
- Run the RBSystem.java file.
java RBSystem
- Note : The command-line and GUI interfaces run together with threading implemented.
---
### Technologies Used
* Java 17
* JUnit 5
* Git
---
### JUNIT Tests :
* Total No.of JUnit Test Files : 10
* Total JUnit Test Written : 38
---
### CONTRIBUTION GUIDELINES :
- Clone the repository from the Github server.
- Create a new branch for your feature or bug fix.
- Write unit tests for your code.
- Implement your feature or bug fix.
- Ensure all tests pass.
- Commit your changes and push to your branch on the Github server.
- Submit a merge request to merge your changes into the main branch.
---
### License
This project is done part of coursework of CS5001 - Object Oriented Programming of the Computer Science Dept of University of St.Andrews.
This project is licensed under the MIT License. See the LICENSE file for more information.
JUnit tests for the Room Booking System were created using the JUnit5 framework and IntelliJ IDE. The system consists of 10 test files with a total of 38 JUnit tests written.