This application is a social network for all board game lovers. Players and game owners can unite here to connect, share their games and organize events. Below are deliverable descriptions and tables listing the team members, roles and task breakdown per deliverable. Feel free to browse the repository wiki for more information on the project.
Here is a short introduction to the members of Group 5 who are working on this project:
Marc Abou Abdallah
Marc is a third-year software engineering student with an interest in software development and AI. His personal hobbies include soccer, going to the gym, and working out.
Deon Aftahi
Deon is a second-year Software Engineering student with a strong interest in full-stack development and entrepreneurship. He enjoys building seamless and interactive applications from the ground up. Outside of academics, he spends his time working out, traveling, and playing guitar.
Marleine Atalla
Marleine is a third year Computer Engineering student. Some of her interests include Robotics, Automation, and Artificial Intelligence. Beyond the classroom setting, she enjoys running and traveling.
Jerome Courtemanche
Jerome is a second year computer engineering student. His interest in computers and software started at a young age with video games. Curiosity made his passion evolve to processors and other chips. Although he is mainly interested in working with hardware, he enjoys writing software as well.
Bora Denizasan
Bora is a second year computer engineering student. From an early age, robots piqued his interest. Similarly, robotics is his area of interest. In his spare time, He enjoys playing overlooked video games to relax.
Mubeen Mohammed
Mubeen is a third year software engineering student. His interest in AI applications and machine learning. In his free time, he enjoys playing chess and building cool stuff and automating them
Raphaël Verger
Raphaël is a third year computer engineering student. He is mainly focused on machine learning, data analysis and software development. Outside of the classroom, he enjoys traveling and taking pictures!
This deliverable covers the complete implementation of the frontend for our application. We began by outlining a development plan using a Miro board, then proceeded to design and build the interface using Vue and TypeScript. The frontend was finalized by integrating the UI with the controller layer of our backend. Additional details about our design decisions can be found in the project report available in the wiki.
Overview table:
| Team member | Role | Tasks | Time spent |
|---|---|---|---|
| Marc Abou Abdallah | Fullstack Developer | Implemented the game, borrow request, and review tables on the Homepage. Fixed game sheet functionalities (borrow requests, reviews, editing). Assisted with backend modifications. Contributed to wiki documentation (user guide, design decisions, build system) and PR reviews. | ~23h |
| Deon Aftahi | Frontend Developer | Implemented and designed the games page, including search functionality, api integration, UI design, and UX functionality. | ~21h |
| Marleine | Frontend Developer | Implemented the 'Specific Game' pages in the Games page - connecting them to backend. Contributed to final testing and project Documentation. | ~19h |
| Jerome Courtemanche | Backend Maintainer, Documenter, Test Engineer | Adding new endpoints and service methods, altering the logic of the application, changing tests and making sure they still pass, managing the data seeder, documenting meeting minutes and project report, maintaining issue backlog. | ~22h |
| Bora Denizasan | Frontend Developer | Implemented user profile features and storage of user attributes to be used by different pages. Helped with GameUI. | ~21h |
| Mubeen Mohammed | Fullstack Developer, UI/UX Designer | Designed and implemented the whole UI for the application. Connected some components to the backend like login and signup. Reviewed teammates PRs. | ~24h |
| Raphaël Verger | Fullstack Developer | Implemented 'Events' page and 'My Events' table in the homepage - connecting it to the backend. Created DataSeeder and contributed to project documentation. | ~22h |
The scope of this deliverable includes completing service & controller layers with a RESTful API, documenting and testing them thoroughly. We implemented all the required service and controller classes as well as the required DTO's and Exception classes. These were then tested thoroughly through unit and integration tests using JUnit5. Please visit the deliverable 2 section of the wiki for all project documentation and design decisions. Information on project setup and installation can be found on the Build System page of the wiki. Information regarding team member roles, individual tasks and time allocation breakdown can be found in the table below.
Overview table:
| Team member | Role | Tasks | Time spent |
|---|---|---|---|
| Marc Abou Abdallah | Developer, QA Tester | Implemented Event service and controller including unit and integration tests, Assisted other members in refining services and writing additional tests, Provided code reviews and fixed common bugs, Contributed to the wiki (QA report, design decisions, API summary) | ~24h |
| Deon Aftahi | Developer | Implemented the GameManagementService and GameController classes, their respective integration and unit tests, and DTOs. | ~19h |
| Marleine Atalla | Developer | Implemented the BorrowingService and BorrowRequestController along with their respective unit and integration tests and contributed to project documentation. | ~19h |
| Jerome Courtemanche | Developer, QA Engineer, Documenter | Implemented: ReviewService & Controller and applicable unit and integration tests, required DTO's and exception classes. Reviewed and added to other member's testing classes. Created issue backlog at the start of sprint. Documented QA plan and build system. Added the new dependencies and gradle tasks. | ~24h |
| Bora Denizasan | Developer | Implemented the RegistrationController and services about registration under the EventService along with their respective unit and integration tests. Contributed to project documentation. | ~20h |
| Mubeen Mohammed | Developer | Implemented the PlayerService and PlayerController along with their respective unit and integration test. Reviewed other teammates pull requests and contributed to project documentation | ~19h |
| Raphaël Verger | Developer | Implemented the "PersonalCollectionService" and "GameCopyController" along with their respective tests; and contributed to project documentation. | ~21h |
The scope of this deliverable included modeling and database setup for the semester project. First, we created a requirements model for the application, defining 12 functional and 3 non-functional requirements. Next, we worked on use cases, providing two use case diagrams and a detailed description of 7 key use cases from our diagrams. The second part of the project was focused on the exploratory domain model, where we created a class diagram to represent the interactions in the application. In the third phase of the deliverable, we implemented the model classes along with the persistence layer. We also conducted thorough testing of our persistence layer using JUnit. Throughout the entire process, we carefully applied and documented our software engineering design process. Whether through meeting minutes or design decisions, every step of our journey is recorded in the wiki. Information regarding team roles and task distribution can be found in the table below.
Project report
Overview table:
Note: Some tasks are missing from the table because they were done by everyone in collaboration during team meetings, including:
- Requirements
- Use case diagrams
- Domain model
- Backlog maintenance
Coding and documentation tasks were split as outlined in the table below:
| Team member | Role | Tasks | Time spent |
|---|---|---|---|
| Marc Abou Abdallah | Developer, QA tester | "Requesting to Borrow a Game" use case specification, Implementing the "Event" feature (model, persistence, tests), Writing additional tests for other classes (BorrowRequest, Game, GameCopy), Assisting in documentation (wiki, key decisions, reviewing deliverable 0.5), Suggesting and providing iterations for the domain model. | ~15hrs |
| Deon Aftahi | Developer | "Withdrawing from an event" use case specification. Implementing the "Game" class, persistence, and tests. Implementing the "GameCopy" class, persistence, and tests | ~11hrs |
| Marleine Atalla | Developer | Writing of Functional and Non-Functional Requirements, "Creating an event" use case specification, Implementing the "BorrowRequest" class, persistence, and tests. Review of the Domain Model for design issues. Collaborated on writing/editing the Wiki. | ~12hrs |
| Jerome Courtemanche | Written report director, developer | "Handling borrow requests" use case specification, setting up the repository, implementing the "Review" class with persistence and tests, documenting the README.md & organizing and writing the wiki, collaboration on final cleanup of project before submission, ensuring proper GitHub workflow within team, monitoring issues and PR's. | ~15hrs |
| Bora Denizasan | Developer | "View lending history" use case specification, Implementing the "Registration" class, persistence and tests. Involved in the creation of the requirements model and domain model. | ~11hrs |
| Mubeen Mohammed | Scrum Master, Developer | "Registering for an event" use case specification, Creating the GitHub project and issues, implementing the "Person" model, persistence and tests. Involved in key decisions for the domain model | ~12hrs |
| Raphaël Verger | Developer, documentation specialist | "Adding a game to personal collection" use case specification, Providing initial version of the model domain, implementing the "BorrowStatus" class, describing key design decisions and writing testing documentation in the wiki. | ~12hrs |