diff --git a/images/Docker Container Setup.png b/images/Docker Container Setup.png index 9243e014..d8947982 100644 Binary files a/images/Docker Container Setup.png and b/images/Docker Container Setup.png differ diff --git a/images/domain-model-2.svg b/images/domain-model-2.svg new file mode 100644 index 00000000..060adaac --- /dev/null +++ b/images/domain-model-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/domain-model.svg b/images/domain-model.svg new file mode 100644 index 00000000..39f6a3a4 --- /dev/null +++ b/images/domain-model.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html index 6c883d4e..dc618ec3 100644 --- a/index.html +++ b/index.html @@ -495,7 +495,7 @@
The primary motivation behind using Docker for deployment is to streamline the development and deployment processes. By containerizing the application, we reduce discrepancies between environments, making it easier to develop, test, and deploy with confidence.
Portability: Docker containers can run on any system that has Docker installed, reducing environment-specific bugs.
@@ -1600,6 +1600,11 @@Efficiency: Docker utilizes resources more efficiently than traditional VMs, allowing for faster startup times and lower overhead.
Web Server/Application (.jar file): Packaged within a Docker container, it includes all necessary dependencies to run independently across any Docker-supported platform.
Our Docker container is built from a Java base image, which is then layered with our application’s .jar
file. This setup encapsulates the entire runtime environment required for our application.
Our app’s Docker container is built from a Java base image, which is then layered with our application’s .jar
file.
In addition to the Spring boot standalone file, we also use the official MySQL
server docker container image brought by DockerHub. This is our database server and it is used to store the game data, such as user scores, questions, etc. and all the other persistent data.
This setup encapsulates the entire runtime environment required for our application, and does not require extensive configuration.
This diagram illustrates the internal structure of our Docker container. It shows the Java Spring Boot application, including the embedded web server, packaged as a .jar
file. The application interacts with external APIs, like the Wikidata API, to retrieve data necessary for generating game questions. The containerized approach ensures that the application can be deployed consistently across any environment that supports Docker.
This diagram illustrates the internal structure of our Docker containers structure. It shows the Java Spring Boot application, including the embedded web server, packaged as a .jar
file and the MySQL server. The application interacts with external APIs, like the Wikidata API, to retrieve data necessary for generating game questions. The containerized approach ensures that the application can be deployed consistently across any environment that supports Docker.
The domain model for our game includes entities such as Question
, Category
, Player
, and GameSession
. These are crucial for representing the game’s data and logic. The model serves as the basis for interactions within the application and between the application and the database.
The domain model for our game includes entities such as Question
, Category
, Player
, Role
, and GameSession
. These are crucial for representing the game’s data and logic. The model serves as the basis for interactions within the application and between the application and the database.
For monitoring runtime behavior and troubleshooting, the project utilizes Log4j and System.out for logging. While Log4j offers more sophisticated logging capabilities, System.out is used for straightforward, immediate console output.
+For monitoring runtime behavior and troubleshooting, the project utilizes Slf4j, bundled with Sprint Boot, and System.out for logging. While Slf4j offers more sophisticated logging capabilities, System.out is used for straightforward, immediate console output.
Log4j is configured to capture various levels of output, which can be directed to multiple destinations such as console, files, or even remote logging servers. For simplicity and immediacy during development or less complex deployment scenarios, System.out is employed for logging output directly to the console.
+Slf4j is configured to capture various levels of output, which can be directed to multiple destinations such as console, files, or even remote logging servers. For simplicity and immediacy during development or less complex deployment scenarios, System.out is employed for logging output directly to the console.
Security is a key concern, ensuring that user data and game integrity are protected. We implement standard security practices at various levels within the application.
+Security is a key concern, ensuring that user data and game integrity are protected. We implement standard security practices at various levels within the application
Designing for scalability, the application can accommodate an increasing number of users and interactions without performance degradation.
-Scalable solutions such as Docker containers allow the application to be deployed in a distributed environment, where resources can be adjusted based on demand.
+Designing for scalability, the application can accommodate an increasing number of users and interactions without performance degradation. +.Explanation: +Scalable solutions such as Docker containers allow the application to be deployed in a distributed environment, where resources can be adjusted based on demand.