{"id":18809442,"url":"https://github.com/resourcepool/training-room-booking","last_synced_at":"2026-01-26T21:08:15.244Z","repository":{"id":80219388,"uuid":"86333728","full_name":"resourcepool/training-room-booking","owner":"resourcepool","description":"A 1-week project to learn JEE: A Room-booking platform","archived":false,"fork":false,"pushed_at":"2021-03-01T10:45:49.000Z","size":681,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-22T02:40:56.914Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","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/resourcepool.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-03-27T12:39:19.000Z","updated_at":"2021-03-01T10:45:51.000Z","dependencies_parsed_at":"2023-04-23T14:38:15.777Z","dependency_job_id":null,"html_url":"https://github.com/resourcepool/training-room-booking","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/resourcepool/training-room-booking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resourcepool%2Ftraining-room-booking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resourcepool%2Ftraining-room-booking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resourcepool%2Ftraining-room-booking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resourcepool%2Ftraining-room-booking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/resourcepool","download_url":"https://codeload.github.com/resourcepool/training-room-booking/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resourcepool%2Ftraining-room-booking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28788157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:02:48.137Z","status":"ssl_error","status_checked_at":"2026-01-26T21:01:13.039Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-07T23:16:24.065Z","updated_at":"2026-01-26T21:08:15.235Z","avatar_url":"https://github.com/resourcepool.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"The Room Booking App\n=====================\n\nThe goal of this mini-project is to refresh your **Java / JEE** skills in a 4 day rush team-effort.  \nThis project requires both **Backend** (Java/JEE), **SQL**, **Ops** \u0026 dynamic-web **Frontend** skills (JSP, HTML, CSS, JavaScript).  \nThe 4-day project has to be released in **production** on a dedicated server, and **demonstrated** by the team in a full-house presentation.\n\n# Pool Conditions\nYou will develop your project as a **team**, with minimum Agile management (we recommend the Kanban method).  \n**One** git repository will be given to the team and shall be used properly. The workflow details are left to the team's appreciation.\n\nEvery day, the team will be able to attend a retrospective at the time of their choice, in presence of a coach, to discuss the following matters:\n * The challenges encountered the day before\n * The current tasks, the remaining tasks\n * The global workflow efficiency\n\nIn terms of team work, you are free to try anything you want.  \nYou could try out eXtreme Programming concepts such as Pair Programming, Code Reviews, Test-Driven Development, etc... and take the time to plan important parts of your project in common. However, the only thing your \"customer\" is asking for, is for your \"Proof Of Concept\" to work... Code Quality wont be as important as it usually is. Make your choices :)\n\nIn terms of delivery, these are the requirements:\n   * Clean code\n   * Use of the whole JEE stack is allowed (JSP, Servlet, JSTL, JSF?, JPA, JTA, EJB, ...)\n   * Use of Hibernate ORM is allowed\n   * Use of Spring is not allowed\n   * Use of Maven is not allowed\n\n# The Project    \nThe project consists of a JEE webapp.  \nYour goal is to create both a client and an administration panel for a meeting room booking app. \nAny member should be able to book a room for a specific duration at the date and time of his choice or whenever the room is available.\nEach meeting room has a dedicated dashboard where anyone can view and book (potentially, this dashboard would be displayed on a tablet in front of each room). \n\nIn particular, the following items will be implemented:  \n\n**Admin panel:**\n  * Create \u0026 edit a new member: name, email, birthdate, uuid\n  * Create \u0026 edit a new meeting room: name, picture, capacity (X persons), equipment (Screen, whiteboard), uuid\n  * Book a meeting room for a given time at a given date with constraints\n  * See which room is free\n  * Invite members to the meeting room\n  * Send emails to members invited to a meeting (ICS card to link in a calendar)\n\n**Client panel:**\n  * View specific meeting room calendar\n  * View members of a meeting\n  * Book a meeting room\n\nA **member** can be edited. It has both a name, an email and a birthdate. Each user also has a unique identifier (uuid).\n\nA **meeting room** has a name, a picture, a capacity and an unique identifier. It may have more attributes ;)\nYou will need to implement a set of business rules and constraints to book a room like:\n  - I need a room for X people\n  - I need it for Y hours and Z minutes\n  - I need a TV to display content\n  - I need a whiteboard\n  - Preferably in the morning\n  - As soon as possible / Next week / next month\n  - Preferably in room 1 / Preferably in room 1 or 3\n\nSome contraints combination may not be possible, so you will need to inform the user and propose a better solution or alternative...\nYou don't need to implement security like login or user account at the moment.\nWe provided you with the front pages, **even though you might still have to edit them in some way**, it's only a starter.\nWe also use a library called fullcalendar.io tu display all data in a calendar. You need to read the doc and adapt it to your project.\n\n## Setup environment\n\n### SQL Database\nFirst, install a local **PostgreSQL** server \u0026 a SQL administration tool (Adminer or the Intellij Datasource tool).\n\n### Your IDE\nFor this exercise, we recommend you use IntelliJ.\nInstall the latest **Wildfly** application server. Search \u0026 read the docs to know how to do :).\nIn development, you can use all IDE features, including auto-deploy. However your production server will have to be setup and deployed manually, with a war archive.\n\n### Git repository\nA new repository will be provided, with owner rights.  \nEveryone must be able to push code on the repository. The important fact here is to **create your orwn team workflow**.\n\n## Project Architecture\nTake your time and brainstorm in group to create a clean architecture for the project.\nWe advise to use the default ORM (Hibernate) which goes with Wildfly for data persistence in your project, through JPA.\nCreate the main architecture for your web app.  \nWe recommend you use Singleton EJBs to handle your business logic and IoC.\n\n## Integration\nDownload the provided web architecture in the **resources** directory.\nIntegrate it in your project.\n\n## Release \u0026 Demo\n * For your release, we will provide you with a public server instance. You will need to release your code in production before the demonstration, along with the source code. We will ask for the IP address before the demo starts :)\n * Your demo must be following a client perspective. You are making the demonstration for the project they have paid you to deliver. Your customer audience will consist in both technical and non-technical people. \n * Your challenge is to make them think \"we have chosen the right people to handle our project! We would be happy to carry-on with them\"\n\n### Provided content\nWe provided you with some content to help you bootstrap your work.\n  - HTML architecture\n  - Bootstrap\n  - Jquery\n  - Font Awesome\n\nPages:\n  - index.html\n  - dashboard.html\n  - add_event.html\n  - add_member.html\n\n# Bonus\nAll is done on day 3?\nHere are a few features we as a customer would have loved to have available.\n * Link with Google calendar\n * Add a recommendation engine in case a room is not available according to the provided rules\n * Send notification emails (reminders)\n * Implement front validation with jQuery\n * Implement backend tests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresourcepool%2Ftraining-room-booking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fresourcepool%2Ftraining-room-booking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresourcepool%2Ftraining-room-booking/lists"}