From a096887fb772d45a644a8dced0868e0169460e71 Mon Sep 17 00:00:00 2001 From: uo287545 Date: Sat, 27 Apr 2024 20:08:28 +0200 Subject: [PATCH 1/4] Some changes to the documentation and started adding the deployment instructions to the README.md --- README.md | 7 +++++++ docs/src/01_introduction_and_goals.adoc | 2 +- docs/src/14_testing.adoc | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3568d977..89293f30 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,10 @@ - **Ricardo Díaz Núñez** - **Roberto Peña Goy** - **Iker Álvarez Fernández** + +### Local deployment instructions + +1. Fist you have to execute in the CMD the following command to clone the repository: `git clone https://github.com/Arquisoft/wiq_es04b.git` + +2. First you have to execute the [runServer.bat](https://github.com/Arquisoft/wiq_es04b/blob/master/database/hsqldb/bin/runServer.bat). +3. With the database initialized you have to ope \ No newline at end of file diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 2f94fe4c..1e53223e 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -28,7 +28,7 @@ The overall goal of the application is to provide a fun and challenging experien === Quality Goals [options="header",cols="1,2,2"] |=== -|Nº|Atributo|Motivacion +|Nº|Quality Goal|Motivation | 1 | Efficiency | Access, creation of questions, and navigation between them should be fast to ensure user satisfaction. | 2 | Usability | The application should be appealing to all fans of the original program while also offering a wide variety of questions. | 3 | Manteinance | The application should ensure easy expansion and modification to provide users with new features. diff --git a/docs/src/14_testing.adoc b/docs/src/14_testing.adoc index b5c8d39d..19f6ee94 100644 --- a/docs/src/14_testing.adoc +++ b/docs/src/14_testing.adoc @@ -9,5 +9,7 @@ To be able to achieve continuous delivery, we need to have a good test coverage. In our project, we have implemented unit tests for various components of the application. The tests are written in Java and use the JUnit 5 framework for testing. We also use the Spring Boot Test framework for testing Spring Boot applications, which provides utilities and annotations to test the application in a way that is very close to its actual runtime behavior. The tests are located in the src/test/java/com/uniovi directory. The main test class is Wiq_UnitTests.java, which contains tests for various services and repositories in our application. === Integration Test (E2E) +All the cucumber files are located in the src/test/resources/features directory. We've implemented all the cucumber steps in the src/test/java/com/uniovi/steps directory. The main test class is Wiq_IntegrationTests.java in src/test/java/com/uniovi, which you should run to execute the integration tests. -=== Load Test \ No newline at end of file +=== Load Test +We've used Gatling to test how much load our application can handle. \ No newline at end of file From 36b191d41f29915efa11cad1d45fc01c46ecb21e Mon Sep 17 00:00:00 2001 From: uo287545 Date: Sat, 27 Apr 2024 21:22:44 +0200 Subject: [PATCH 2/4] Finished README.md --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 89293f30..180dc551 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,14 @@ ### Local deployment instructions -1. Fist you have to execute in the CMD the following command to clone the repository: `git clone https://github.com/Arquisoft/wiq_es04b.git` +1. Fist you have to clone the repository using a CMD and the following command: `git clone https://github.com/Arquisoft/wiq_es04b.git` or using an IDE with Git integration or any other app of your preference. -2. First you have to execute the [runServer.bat](https://github.com/Arquisoft/wiq_es04b/blob/master/database/hsqldb/bin/runServer.bat). -3. With the database initialized you have to ope \ No newline at end of file +2. Then you have to execute the [runServer.bat](https://github.com/Arquisoft/wiq_es04b/blob/master/database/hsqldb/bin/runServer.bat) to start the local database. + +3. With the database initialized you have to open a CMD in the project root directory and execute the following command `mvnw spring-boot:run`, to start the application. + +4. When the application is started the web app uses the port 3000. You can access the app through any web client using the following URL: http://localhost:3000/. + +5. If you wish to execute the tests you have to open a CMD in the project root directory (you could use the same you used before), you have to execute `set EXCLUDE_JUNIT=true` if you also want to execute the E2E tests. Then to execute the tests you have to use the following command: `mvnw org.jacoco:jacoco-maven-plugin:prepare-agent verify`. + +6. If you want to obtain the report you have to torn off the app and in the same CMD as before execute the following command: `mvnw org.jacoco:jacoco-maven-plugin:report`. \ No newline at end of file From f910a5c7c27d713f28b10abc4876a0e405a2e753 Mon Sep 17 00:00:00 2001 From: uo287545 Date: Sun, 28 Apr 2024 03:07:03 +0200 Subject: [PATCH 3/4] Added more instructions to the markdown and fixed some documentation --- README.md | 16 +++++++++++++--- docs/src/03_system_scope_and_context.adoc | 1 - 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 180dc551..830b17be 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es04b&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es04b) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wiq_es04b&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wiq_es04b) -### 🚀 TEAM +### 🚀 TEAM: - **Pelayo Rojas Iñigo** - **Álvaro Arias Martínez De Vega** @@ -12,7 +12,9 @@ - **Roberto Peña Goy** - **Iker Álvarez Fernández** -### Local deployment instructions +### Local deployment instructions: + +#### Without docker (slower): 1. Fist you have to clone the repository using a CMD and the following command: `git clone https://github.com/Arquisoft/wiq_es04b.git` or using an IDE with Git integration or any other app of your preference. @@ -24,4 +26,12 @@ 5. If you wish to execute the tests you have to open a CMD in the project root directory (you could use the same you used before), you have to execute `set EXCLUDE_JUNIT=true` if you also want to execute the E2E tests. Then to execute the tests you have to use the following command: `mvnw org.jacoco:jacoco-maven-plugin:prepare-agent verify`. -6. If you want to obtain the report you have to torn off the app and in the same CMD as before execute the following command: `mvnw org.jacoco:jacoco-maven-plugin:report`. \ No newline at end of file +6. If you want to obtain the report you have to torn off the app and in the same CMD as before execute the following command: `mvnw org.jacoco:jacoco-maven-plugin:report`. + +#### With docker (faster): + +> #### *Disclaimer: This method is faster but it is not recommended for development because it is harder to debug and to see the logs and it is harder to execute the tests.* + +1. First you need to have installed [docker](https://www.docker.com/#build) and docker [compose](https://docs.docker.com/compose/install/). +2. Then you have to clone the repository using a CMD and the following command: `git clone https://github.com/Arquisoft/wiq_es04b.git` or using an IDE with Git integration or any other app of your preference. +3. Then you have to open a CMD in the project root directory and execute the following command: `docker-compose up`. This is going to deploy the docker image that is in our repository. This docker will contain the app, a MySql database, Graphana and Prometheus. The app will be available in the port 443 https. \ No newline at end of file diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index f5eea3f2..9453876d 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -55,7 +55,6 @@ System -----> developers : Provides\nPlayer &\n Question Data * **HTTPS:** Represents the communication channels, with HTTPS being the protocol used for secure communication. * **Question Generation:** Represents the means used for question and answers generation. * **Database:** Represents whichever system used for data persistence. -* **To be decided:** Indicates that specific details about the channels and protocols are yet to be determined. ==== Input/Output Mapping Table From caee78a69f1d3c025957b28f705df9f3baac5541 Mon Sep 17 00:00:00 2001 From: uo287545 Date: Sun, 28 Apr 2024 03:13:23 +0200 Subject: [PATCH 4/4] Fixed one point of the Architecture Decision with a broken Link --- docs/src/09_architecture_decisions.adoc | 2 +- docs/src/11_technical_risks.adoc | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index fcfeb49c..b42a94c5 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -12,5 +12,5 @@ The purpose of this section is to create an ordered list of architectural decisi * https://github.com/Arquisoft/wiq_es04b/wiki/Record-of-architectural-decisions#dto-pattern[ADR 05] - DTO Pattern * https://github.com/Arquisoft/wiq_es04b/wiki/Record-of-architectural-decisions#mysql-in-production-and-hsqldb-in-local[ADR 06] - MySQL in production and HSQLDB in local * https://github.com/Arquisoft/wiq_es04b/wiki/Record-of-architectural-decisions#monolithic-architecture[ADR 07] - Monolithic architecture -* https://github.com/Arquisoft/wiq_es04b/wiki/Record-of-architectural-decisions#use-of-tbd[ADR 08] - Use of TBD +* https://github.com/Arquisoft/wiq_es04b/wiki/Record-of-architectural-decisions#use-of-gitflow[ADR 08] - Use of GitFlow * https://github.com/Arquisoft/wiq_es04b/wiki/Record-of-architectural-decisions#questions-refreshing[ADR 09] - Questions refreshing \ No newline at end of file diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index 32043b2f..4d428904 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -17,6 +17,4 @@ ifndef::imagesdir[:imagesdir: ../images] [cols="1,2,3a", options="header"] |=== | Priority | Debt | Description -| Low | Microservices | Research about microservices and what they can contribute to the project - |===