{"id":20539497,"url":"https://github.com/lestherll/csc1035-p2","last_synced_at":"2025-07-03T15:12:13.837Z","repository":{"id":207483802,"uuid":"410388195","full_name":"lestherll/csc1035-p2","owner":"lestherll","description":"Project 2: Room Booker and Timetabling System for CSC1035 Computer Science Module","archived":false,"fork":false,"pushed_at":"2021-10-17T03:11:47.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-16T14:45:49.716Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lestherll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-09-25T21:44:48.000Z","updated_at":"2021-10-17T03:11:49.000Z","dependencies_parsed_at":"2023-11-16T03:25:01.201Z","dependency_job_id":"dbf51666-1587-4de3-a55f-e76de8398a59","html_url":"https://github.com/lestherll/csc1035-p2","commit_stats":null,"previous_names":["lestherll/csc1035-p2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lestherll","download_url":"https://codeload.github.com/lestherll/csc1035-p2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242144583,"owners_count":20078970,"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":[],"created_at":"2024-11-16T00:52:29.086Z","updated_at":"2025-03-06T04:13:48.491Z","avatar_url":"https://github.com/lestherll.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSC1035 Project 2 (Team Project)\nBooking-Timetabling System that allows the user book for rooms based on their needs.\n\n## Dependencies\nDependencies are defined in the [pom file](pom.xml). These dependencies are needed to\nrun the source code and the unit tests.\n\n## Usage\nThe project is simple to start. [Main.java](src/main/java/Main.java) must be ran using \nthe appropriate JDK version (JDK 8+). The main class relies on the main method of the UserInterface\nclass. The UI class dictates how the user can interact with the system.\n\n## Architecture\nThe architecture of the project tries to follow the Model-View-Controller architecture \npattern. This is is very useful because it allows us and contributors to be able to \nisolate the classes from each other. This makes it easier to adhere to the Single \nResponsibility Principle and separation of concerns. \n\n### [Models](src/main/java/csc1035/project2/model)\nThese classes are the core of the solution to the problem that we are trying to solve\nwith the given client specification. They are a model of the involved parties in the \nclient specification. They contain fields that are relevant to the real world representation\nof objects.\n\n### [Controller](src/main/java/csc1035/project2/controller)\nControllers are the ones that are responsible for communicating with the model and the\ndatabase tables. In a sense, it serves as an interface(not to be confused with java interface)\nbetween the UI, model and Hibernate itself.\n\nAn example implementation of a controller can be found [here](src/main/java/csc1035/project2/controller/Controller.java))\nIn this example, a certain design pattern called Dependency injection and Inversion of control\nis used to allow the Controller to have access to the database, making it the CRUD class\nof this project.\n\n### [IO](src/main/java/csc1035/project2/io)\nUserInterface will serve as the command line application that the user will actually interact\nwith. In turn, the UI interacts with the CRUD object and allow us to create, remove, update\nand delete records or objects at will.\n\n\n### [Util](src/main/java/csc1035/project2/util)\nThese are the classes that contain the helper methods that can be used throughout the\nproject. The most important Helper class is the HibernateUtil. This allows the program to\ncreate SessionFactory objects and in turn create sessions and begin transactions. These\nare crucial because it is what enables us to communicate with the database, schema, and\ntables.\n\n#### NOTES\n  - Merged module_requirements to modules.csv because the fields in requirements directly\ndepend on the module.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flestherll%2Fcsc1035-p2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flestherll%2Fcsc1035-p2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flestherll%2Fcsc1035-p2/lists"}