What Did You Need To Learn? - SoenCapstone/GameOn GitHub Wiki
Johnny Aldeb
GitHub: Johnny-Aldeb
Student ID: 40187248
During the development of the GameOn project, I strengthened my technical and architectural skills across both frontend and backend development to help improve the project’s structure, performance, and reliability.
Backend Architecture & API Gateway
I learned how to work with Spring Cloud Gateway, Eureka, and Config Server to manage routing, authentication, and communication between multiple backend microservices. This helped me understand how large-scale systems maintain modularity and security.
Docker & Local Environment Setup
I learned how to containerize backend services using Docker and set up Docker Compose for local development. This made it easier to run the full backend stack, including databases and microservices, in a consistent environment.
Documentation & UML Diagrams
I learned how to create and maintain UML architecture diagrams and Wiki documentation for the project. I worked on keeping technical documentation clear and up to date, helping the team align on structure and design decisions.
Frontend Development with React Native
I improved my knowledge of React Native (Expo) and how to use TanStack Query for efficient data fetching. I also learned how to integrate Clerk authentication and apply design consistency across multiple screens.
System Design & Testing
I gained a deeper understanding of how to design and test microservice-based architectures, ensuring that the backend and frontend communicate correctly through well-defined APIs.
Asim Rahman
GitHub: AsimRahman88
Student ID: 40207553
During the development of the GameOn project, I had to learn and strengthen several technical skills in order to contribute effectively to the front-end and integration tasks.
Figma Mockups
I learned how to design user interface mockups using Figma to visualize the initial Login and Sign-Up pages before development. This helped ensure design consistency and alignment within the team.
React Native with Expo
I learned how to develop using React Native (Expo), understanding how its components and structure differ from standard React. This was crucial for building and styling our mobile interface.
React Hooks & Optimization
I enhanced my React skills by learning about useMemo and useContext, which improved component performance and state management, especially in authentication-related components like Login and Sign-Up.
Unit Testing with Jest
I learned how to perform unit testing using Jest, including how to mock sign-in and sign-up functionalities and verify user flow from the Welcome screen to app entry.
Spring Boot Fundamentals
I studied the basics of Spring Boot to understand how the backend interacts with the frontend through APIs. This helped me debug integration issues and improve communication between both layers.
TanStack Query (useQuery & useMutation)
I learned how to use TanStack Query to efficiently handle API calls and manage asynchronous data fetching between the frontend and backend.
Glass UI with Expo Swift
I explored Glass UI effects using Expo Swift UI to enhance the app’s visual design, aiming for a more modern and polished interface for the authentication pages.
Lara Louka
GitHub: laraxl
Student ID: 4027840
During the development of the GameOn project, I had to learn and strengthen several technical skills to effectively contribute to both frontend and backend integration tasks.
Role Manager (RBAC System)
I learned how to design and explain a Role-Based Access Control (RBAC) system that controls what each user can do in the app. I mapped out how users, roles, and permissions connect to make sure everything stays secure and flexible.
Feature Flags (Frontend)
I learned how to build a frontend feature flag system using React Context. This allows developers to turn features on or off during testing. It helped me understand how to show or hide features depending on settings and how to make the system ready for future updates.
GitHub Actions & CodeQL
I learned how to set up GitHub Actions to automate project tasks like testing and building. I also added CodeQL scans to check the code for possible security issues, which made the project safer and easier to maintain.
UML Design & Wiki Documentation
I learned how to create UML diagrams to represent the architecture and logic of the Role Manager system. Additionally, I contributed to the Wiki documentation, ensuring the technical details, feature descriptions, and diagrams were clearly presented and up to date.
Figma Mockups & UX Review
I contributed to Figma mockups and UX reviews for pages such as League Creation, Roles & Permissions, and Security Settings. This process helped me understand how visual design and user experience tie into technical implementation.
Danny Mousa
GitHub: F4KER-X
Student ID: 40226912
During the backend development of the GameOn project, I needed to acquire several new technical skills and deepen my understanding of backend development concepts to effectively contribute to the system’s core services and infrastructure.
Spring Boot and Microservice Development
I learned how to develop RESTful backend services using Spring Boot, focusing on principles such as dependency injection, layered architecture, and controller–service–repository design patterns. I applied this knowledge to help implementing the User microservice, which handled user management and authentication integration.
React Native with Expo
I learned how to develop using React Native (Expo), understanding how its components and structure differ from standard React. This was crucial for building and styling our mobile interface.
Service Discovery and Configuration Management
To enable communication between distributed services, I studied Spring Cloud Netflix Eureka for service discovery and Spring Cloud Config for centralized configuration. This experience helped me understand how microservices interact dynamically and how to manage environment-specific configurations efficiently.
API Gateway Integration
I gained experience working with Spring Cloud Gateway, learning how it centralizes routing, load balancing, and authentication across different microservices. I assisted in configuring the gateway to properly route API calls and manage access between the frontend and backend layers.
Spring Boot Fundamentals
I studied the basics of Spring Boot to understand how the backend interacts with the frontend through APIs. This helped me debug integration issues and improve communication between both layers.
Containerization and Environment Setup
I learned how to use Docker to containerize backend components for consistent local development. I created Docker images for PostgreSQL and developed the initial Docker Compose configuration to manage multiple services, including the database and authentication service. This provided the team with a reproducible and isolated development environment.
Authentication with Keycloak
I explored Keycloak for identity and access management, learning how to configure realms, clients, and user roles for secure authentication. Although the team later transitioned to Clerk, this process strengthened my understanding of authentication flows and integration within microservice-based architectures.
Zachariya Javeri
GitHub: zachariyaJaveri
Student ID: 40130266
Feature Flags (Backend)
I learned how to design a feature flag system to use in the backend systems. I learned how to create and use annotations in Java.
GitHub Actions
I learned about compiling projects using maven in Github actions. Including compiling and running the backend tests.
Github Projects
I learned how to configure Github Projects and the various views that exist for project management.
SpringBoot
I learned how SpringBoot projects work, including how the application is started and the philosophy behind module design.
Maven
I learned how Maven projects are managed and work. I learned how Maven handles dependencies and packages the application.
Maria Balanjian
GitHub: Mariapalan
Student ID: 40227451
For our capstone project GameOn, I had to learn several technical skills to complete devops/design tasks.
Dockerization
I learned how Docker works with Spring Boot microservices by researching and reading multiple articles, which helped me understand how to properly containerize each service in our backend.
GitHub Actions & CI/CD Pipelines
Part of dockerization, I learned how to use Github actions to be able to push images to Github Container Registry on every merge.
UX Design Concepts
Based on design reviews, I had to learn how to use figma, to be able to participate in design decisions and approvals.
System Design & Role Manager Research
I learned how to design and explain a Role-Based Access Control (RBAC) system. I assisted by helping map out the relationships between users, roles, and permissions to ensure the system stayed secure and flexible.
Database Tables & Internal Sports Structure
To complete the internal sports structure, I learned how to design and create PostgreSQL tables and populate them with accurate data. Ensuring our database contains all sports and their corresponding team sizes.
Renal Wasouf
GitHub: RenalWasouf
Student ID: 40190708
I had to learn new libraries for frontend development, and how to interact with backend services and databases to connect frontend to backend.
Liquid Glass Effect and Expo Swift UI
I experimented with Glass UI effects and Expo Swift UI to follow the design we had planned for the app.
Frontend-Backend Integration
I learned the basics of how the backend interacts with the frontend through APIs so that I could have the frontend communicate with the backend correctly.
TanStack Query & Axios
I learned how to use TanStack Query and Axios to efficiently fetch data from the backend.
Samuel Collette
GitHub: Vaqint
Student ID: 40175048
During this phase of development, I learned how to build mobile applications using React Native (Expo). Working with React Native helped me understand how mobile development differs from traditional web-based React. Unlike React, which runs in the browser and relies on HTML and CSS, React Native uses native mobile components and styling with JavaScript-based layouts, requiring attention to platform-specific behavior and navigation.
Frontend-Backend Integration
Learned how to integrate authentication with Clerk. I gained a deeper understanding of how React Native bridges JavaScript with native mobile APIs, how mobile navigation and UI differ from the web, and how authentication services like Clerk can streamline user management in cross-platform applications.
Industry standards
I also learned about industry best practices in structuring React Native projects — specifically, how to separate style sheets and components from the main file to maintain cleaner, more modular, and reusable code. This separation improves readability, and makes debugging easier.
Gianluca Girardi
GitHub: GianlucaGirardi
Student ID: 40228370
For the first release of our capstone project, I had to learn the following:
Clerk - Authentication and User Management
I learned how to integrate Clerk for secure authentication and user management, implementing token based login flows and protecting frontend and backend routes via the provided hooks within the expo sdk.
Microservice architecture
I learned how to create a scalable backend using microservices, enabling modular development and clear service boundaries. I learned how to centralize configuration with a Config Server, enable service registration and discovery through Eureka, simplify inter-service communication using OpenFeign and route external traffic via an API Gateway containing a security configuration.
Karim El Assaad
GitHub: Kayram2710
Student ID: 40127808
Throughouth the whole project, there was a alot I needed to learn, from project management and working with gitHub projects to specific stacks and frameworks I had not worked with before
Github Projects
In order to organize the project, I had to learn how to navigate the github environment designed for project managements. As before I had only used Jira.
Figma IOs Mockups
Since we were using expo as a base for our stack, I had to learn how to implement the IOs based figma mockups. This wasnt a major challenge but it took a bit to get used too, as it required me developping a deeper understanding of how to use components and the software's deeper mechanics
Expo
I had to learn how to work with the expo stack for front end its development workflow, including its CLI, project structure, build process, and integration with React Native, since I worked mostly on front end
React Native
I had to learn React Native for frontend development, focusing on component structure, navigation, styling, and layout management within a mobile context.
Mohamed Mohamed
GitHub: mavmoud
Student ID: 40163777
Throughout the GameOn project, I had to learn a broad range of technical and design-oriented skills that allowed me to effectively contribute to both the frontend development and user experience design of the application. My work focused mainly on establishing the UI layout, developing page components, and collaborating on design elements that improved usability and visual consistency across the app.
Frontend UI Layout and Page Development
I needed to learn how to structure and implement user interfaces within React Native (Expo). This included creating reusable components like headers, background gradients, and card layouts, as well as understanding how to apply proper navigation and layout management within a mobile context. I also had to familiarize myself with React Native’s component-based structure and how it differs from standard web development in React.
I specifically learned how to build pages such as the Welcome, Login/Signup, Home, and Spaces pages, ensuring that each followed the overall design direction and worked well with one another. I also explored styling patterns that would make our UI flexible and easily adjustable across different screen sizes.
Collaboration and UX Design
Another area I needed to develop was UX design collaboration. Working closely with teammates who handled mockups and visual guidelines, I learned how to interpret design documents and convert them into functioning mobile interfaces. This involved understanding fundamentals of design consistency, user flows, and component reusability.
I also participated in creating the style guide and reviewed how to maintain a coherent appearance across multiple screens while adhering to accessibility and usability principles. Learning how to balance design vision with technical feasibility was a major part of this process.
Component Integration and Reusability
As part of the Browse page implementation, I needed to understand how to compose and reuse components like cards and information displays efficiently. Working on this required a deeper understanding of component prop management, state handling, and data binding to ensure smooth communication between components.
Additionally, I needed to understand how to collaborate closely with other developers and manage merge conflicts, ensuring that UI changes didn’t break the app’s structure or user flows.
Cross-discipline Collaboration
Beyond programming, I had to learn more about working in sync with designers and backend developers. Many of our features, such as the login and browsing experience, required coordination to ensure data fetched from backend services displayed correctly in the frontend. This taught me how critical communication and workflow integration are in large, distributed systems.