diff --git a/images/GameView.png b/images/GameView.png index 51bfb03a..14216090 100644 Binary files a/images/GameView.png and b/images/GameView.png differ diff --git a/images/HomeView.png b/images/HomeView.png index 050b4457..9b42ca82 100644 Binary files a/images/HomeView.png and b/images/HomeView.png differ diff --git a/images/UserView.png b/images/UserView.png index 8d9bc1e4..4d025b9b 100644 Binary files a/images/UserView.png and b/images/UserView.png differ diff --git a/images/deployment_diagram.svg b/images/deployment_diagram.svg index 1837f748..4f07e88e 100644 --- a/images/deployment_diagram.svg +++ b/images/deployment_diagram.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/index.html b/index.html index cf7046bf..ee86253b 100644 --- a/index.html +++ b/index.html @@ -1277,7 +1277,7 @@
The system is based on a microservices architecture with six independent services, each responsible for a specific aspect of functionality. One service is the graphical interface (WebApp), which is responsible for the presentation layer of a web application. The user service is responsible for managing user-related functionalities, while the auth service is responsible for authenticating users. The question generation service uses Wikidata, a free and open database, to generate questions automatically. Finally, the question service allows to save and retrieve information from the generated questions and the game service does the same for game-related data and statistics. MongoDB, a NoSQL database, is used to store the information.
+The system is based on a microservices architecture in which each service is responsible for a specific aspect of functionality. One service is the graphical interface (WebApp), which is responsible for the presentation layer of a web application. The user service is responsible for managing user-related functionalities, while the auth service is responsible for authenticating users. The question generation service uses Wikidata, a free and open database, to generate questions automatically. The Friends service is responsible for managing the social aspect of the application, allowing users to connect with their friends. The question service allows to save and retrieve information from the generated questions, and the game service does the same for game-related data and statistics. MongoDB, a NoSQL database, is used to store the information. All microservices connect to the graphical interface through an API Gateway.
The microservice responsible for managing users.
Friends service
The microservice responsible for managing the social aspect of the application. It allows users to connect with their friends.
Auth service
The microservice responsible for managing the authentication of the users.
In the user interface concept, we have opted for a darker shade that is more pleasing to the eye, very easy to use, and fully adapted to any desktop and mobile device. +Below are images of some of these interfaces.
+Docker
It is decided to use Docker due to its popularity in the professional field and its ease of execution thanks to the configuration files provided by the subject’s faculty.
It is decided to use Docker due to its popularity in the professional field and its ease of execution thanks to the configuration files provided by the subject’s faculty. Docker allows the project to be encapsulated into portable containers, ensuring consistent runtime environments across development, testing, and production.
Microservices Architecture
Breaking down the application into independently deployable services offers flexibility, scalability, and fault isolation. Microservices promote team autonomy and facilitate the adoption of diverse architecture decisions for each component. It also facilitates teamwork, by dividing members' tasks, mainly focused on one service per task.
MongoDB
It is decided to use MongoDB based on the recommendation of the faculty, as it is one of the most popular NoSQL databases and because it fits perfectly with the application’s needs.
It is decided to use MongoDB based on the recommendation of the faculty, as it is one of the most popular NoSQL databases and because it fits perfectly with the application’s needs. MongoDB’s flexible document model aligns well with the application’s data requirements, providing scalability and performance benefits.
NodeJS
It is decided to use NodeJS since it is the recommended option by the subject’s faculty and one of the most widely used technologies in this area of web applications, thus having extensive documentation and examples available on the Internet.
It is decided to use NodeJS since it is the recommended option by the subject’s faculty and one of the most widely used technologies in this area of web applications, thus having extensive documentation and examples available on the Internet, that extensive library ecosystem and community support offer ample resources for building robust server-side logic.
React
It is decided to use React since it is the recommended option by the subject’s faculty.
It is decided to use React since it is the recommended option by the subject’s faculty. React optimizes rendering performance, ensuring a responsive user interface for the web application.
Lack of time
Not planning work well can result in difficulties meeting deadlines
Not planning work well can result in difficulties meeting deadlines.
Use of unknown technologies
The use of languages and technologies unknown to group members can make it difficult to perform assigned tasks
The use of languages and technologies unknown to group members can make it difficult to perform assigned tasks.
Non-optimal design
Poorly considered design decisions can lead to a fragile or difficult-to-scale architecture, leading to long-term maintenance issues.
Insufficient documentation
A lack of clear documentation about code and architecture can make it difficult to understand and maintain code, leading to additional work.
Lack of refactoring
The accumulation of redundant or outdated code can hinder future modifications and improvements, increasing the technical complexity of the project.
Poor test coverage
The absence of adequate test coverage can result in software that is prone to bugs and vulnerabilities that go undetected during the development.
Bug pile-up
Failure to properly resolve known bugs during development can result in code that is more problem-prone.
MongoDB
NoSQL database management system used in the application
Continuous Integration (CI)
Development practice where developers merge their code changes into a shared repository, triggering automated builds and tests to detect integration errors early in the development process.
Microservices
Architectural style where an application is composed of loosely coupled, independently deployable services that are organized around business capabilities. Each service represents a small, focused component.
Session Management
The process of handling and maintaining user session information between requests. It involves managing user information during it’s interaction with the web application.
Scalability
The ability of a system to handle increased workload or demand by adding resources without impacting performance or availability.