{"id":16158339,"url":"https://github.com/ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach","last_synced_at":"2025-03-31T19:32:17.811Z","repository":{"id":158161978,"uuid":"572775601","full_name":"ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach","owner":"ajaymahadeven","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) pattern.","archived":false,"fork":false,"pushed_at":"2023-09-02T11:33:37.000Z","size":52,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T16:47:32.555Z","etag":null,"topics":["github","java","junit","learn","mvc-architecture","swing-gui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajaymahadeven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-01T02:09:18.000Z","updated_at":"2024-12-17T06:26:57.000Z","dependencies_parsed_at":"2024-11-17T16:03:07.774Z","dependency_job_id":"643b1d44-6bd9-4fbe-9bcb-c17c89486f71","html_url":"https://github.com/ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach","commit_stats":null,"previous_names":["thenameisajay/university-room-booking-application-using-java-swing-and-tdd-approach","ajaymahadeven/university-room-booking-application-using-java-swing-and-tdd-approach"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajaymahadeven","download_url":"https://codeload.github.com/ajaymahadeven/University-Room-Booking-Application-using-Java-Swing-and-TDD-Approach/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246527453,"owners_count":20792069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","java","junit","learn","mvc-architecture","swing-gui"],"created_at":"2024-10-10T01:53:55.925Z","updated_at":"2025-03-31T19:32:17.789Z","avatar_url":"https://github.com/ajaymahadeven.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Application Name\n\u003cstrong\u003e Room Booking System \u003c/strong\u003e\n---\n\n## Description :\n* 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).\n\n* To ensure the program functions correctly, JUnit was used to test the model and all tests are included in the submission.\n\n* 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.\n\n* This project was developed as part of the CS5001 Object-Oriented Modelling, Design and Programming course practical.\n\n---\n\n## Functionalities Implemented\n\nThe following functionalities have been implemented for both GUI and CLI interfaces:\n\u003col\u003e\n\u003cli\u003eAdd/Delete/View Users.\n\u003cli\u003eAdd/Delete/View Buildings.\n\u003cli\u003eAdd/Delete/View Rooms.\n\u003cli\u003eBook or Delete a Room Reservation.\n\u003cli\u003eView Your Reservations by Booking ID.\n\u003cli\u003eView All Booked Rooms.\n\u003cli\u003eView Your Reservations by Name (EMAIL ID).\n\u003cli\u003eSave the Data.\n\u003cli\u003eLoad the Data.\n\u003cli\u003eExit.\n\u003c/ol\u003e\n\n---\n\n### Application Files :\n\nThe Room Booking System consists of the following files:\n\n* RBSystem.java (Main File)\n* User Service\n* Building Service\n* Room Service\n* Reservation Service\n* User Model\n* Building Model\n* Room Model\n* Reservation Model\n* BookingResource Controller\n* CLI View\n* GUI View\n\n---\n\n## Additional Features\n\nThe following features have been implemented, which are not part of the system requirements:\n\nBookingID for creating a unique booking reference by a user to store multiple instances of reservations.\nUser 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.\nViewing all objects for Users, Buildings, Rooms, and Reservations.\n\n\n---\n\n## User Functionalities\n\nThe Room Booking System provides the following user functionalities:\n\u003col\u003e\n\u003cli\u003e Add and remove people, rooms, buildings, and bookings.\n\u003cli\u003e Choose a time and view all rooms available at that time.\n\u003cli\u003e Choose a timeslot (start and end times) and view all rooms available for that whole period.\n\u003cli\u003e View the schedule for a given room, including bookings and free periods.\n\u003cli\u003e View all bookings made by a given person.\n\u003cli\u003e Save to a specified filename.\n\u003cli\u003e Load from a specified file.\n\u003c/ol\u003e\n\n\n---\n\n## SETUP AND INSTALLATION\n\n\u003cstrong\u003e Terminal Usage or IDE Based\u003c/strong\u003e\n\u003col\u003e\n\u003cli\u003e Extract the *.zip file.\n\u003cli\u003e Navigate to the src folder of the program.\n\u003cli\u003e Compile the .java files in the terminal. \u003ccode\u003e javac *.java \u003c/code\u003e\n\u003cli\u003e Run the RBSystem.java file. \u003ccode\u003e java RBSystem \u003c/code\u003e\n\u003cli\u003e Note : The command-line and GUI interfaces run together with threading implemented.\n\u003c/ol\u003e\n\n--- \n\n### Technologies Used\n\n* Java 17 \n* JUnit 5\n* Git\n\n---\n\n### JUNIT Tests : \n\n* Total No.of JUnit Test Files : 10 \n* Total JUnit Test Written : 38\n\n---\n\n### CONTRIBUTION GUIDELINES : \n- Clone the repository from the Github server.\n- Create a new branch for your feature or bug fix.\n- Write unit tests for your code.\n- Implement your feature or bug fix.\n- Ensure all tests pass.\n- Commit your changes and push to your branch on the Github server.\n- Submit a merge request to merge your changes into the main branch.\n\n--- \n### License\nThis project is done part of coursework of \u003cstrong\u003e CS5001 - Object Oriented Programming\u003c/strong\u003e of the \u003cstrong\u003e Computer Science Dept of University of St.Andrews.\u003c/strong\u003e \u003c/br\u003e\n\nThis project is licensed under the \u003ccode\u003e MIT License. \u003c/code\u003eSee the \u003ccode\u003eLICENSE\u003c/code\u003e file for more information.\n\n\n\nJUnit 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajaymahadeven%2FUniversity-Room-Booking-Application-using-Java-Swing-and-TDD-Approach/lists"}