diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index e36799dd..097e8fe7 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -14,7 +14,7 @@ The Model-View-Controler architecture pattern will be followed for structuring t === Organizational Decisions Development Methodology: GitFlow will be adopted for project management, facilitating collaboration and iterative delivery. -* The default branch: master. This branch will only be used to create new releases and will contain the most stable version of the system. -* The development branch: develop. This branch will be used to integrate the features developed by the team and will be the basis for creating new releases. This will have the largest commit amount, and will also have a stable version that could be deployed at any time. +* The default branch: https://github.com/Arquisoft/wiq_es04b/tree/master[master]. This branch will only be used to create new releases and will contain the most stable version of the system. +* The development branch: https://github.com/Arquisoft/wiq_es04b/tree/develop[develop]. This branch will be used to integrate the features developed by the team and will be the basis for creating new releases. This will have the largest commit amount, and will also have a stable version that could be deployed at any time. * Feature branches: These branches will be used to develop new features, and will be created from the develop branch. After the feature is developed, it will be merged into the develop branch and branch can be deleted, although we will not usually delete branches. * Fix branches: These branches will be used to fix bugs, and will be created from the develop branch. After the bug is fixed, it will be merged into the develop branch and branch can be deleted, although we will not usually delete branches. \ No newline at end of file diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index 65efb28b..fa53296b 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -7,8 +7,9 @@ The following concepts provide a foundation for the design and implementation of === Domain Model -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. +The domain model for our game includes entities such as https://github.com/Arquisoft/wiq_es04b/blob/master/src/main/java/com/uniovi/entities/Question.java[Question], https://github.com/Arquisoft/wiq_es04b/blob/master/src/main/java/com/uniovi/entities/Category.java[Category], https://github.com/Arquisoft/wiq_es04b/blob/master/src/main/java/com/uniovi/entities/Player.java[Player], https://github.com/Arquisoft/wiq_es04b/blob/master/src/main/java/com/uniovi/entities/Role.java[Role], or https://github.com/Arquisoft/wiq_es04b/blob/master/src/main/java/com/uniovi/entities/GameSession.java[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. +https://github.com/Arquisoft/wiq_es04b/tree/master/src/main/java/com/uniovi/entities[Source code] [plantuml, domain-model, svg, subs="attributes", subs="methods"] ---- @@ -19,15 +20,18 @@ class Question { - options: List - correctAnswer: Answer - category: Category + - language: String + addOption(option: Answer): void + removeOption(option: Answer): void + getOption(index: int): Answer + + getOptions(answer: String): Answer + isCorrectAnswer(answer: Answer): boolean + scrambleOptions(): void + equals(o: Object): boolean + hashCode(): int + toString(): String + toJson(): JsonNode + + hasEmptyOptions(): boolean } class Category { @@ -45,6 +49,8 @@ class Player { - email: String - password: String - passwordConfirm : String + - multiplayerCode : Integer + - scoreMultiplayerCode : String - roles: Set - gameSessions: Set - apiKey: ApiKey @@ -71,9 +77,17 @@ class GameSession { + getDuration(): String } +class MultiplayerSession { + - id: Long + - multiplayerCode: String + - playerScores: Map + + addPlayer(player: Player): void +} + class Role { - name: String - players: Set + + toString(): String } class Answer { @@ -106,6 +120,7 @@ ApiKey "1" --* "1" Player ApiKey "1" *-- "*" RestApiAccessLog Category "1" -- "*" Question Player "1" *-- "*" GameSession +Player "1" *-- "*" MultiplayerSession GameSession "1" -- "*" Question : Answered Questions GameSession "1" -- "*" Question : Questions To Answer diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index 175b66ff..2e7e650d 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -3,51 +3,44 @@ ifndef::imagesdir[:imagesdir: ../images] [[section-quality-scenarios]] == Quality Requirements === Quality Tree -_Note: Items (1), (2), (3) in the table below repeat the higher-level quality requirements of Chapter 1.2._ -[cols="4", options="header"] +[cols="3", options="header"] |=== -|Quality category |Quality |Description |Scenario +|Quality requirement |Description |Scenario -|Usability -|Ease of use -|The application shall be easy to use by the user, with intuitive functionality. +|Efficiency +|Access, creation of questions, and navigation between them should be fast to ensure user satisfaction. |SC1 -| -|Familiarity of the environment (2) -|The application should appeal to all fans of the original programme and provide a wide variety of questions. -| +|Usability +|The application should be appealing to all fans of the original program while also offering a wide variety of questions. +|SC2 + +|Manteinance +|The application should ensure easy expansion and modification to provide users with new features. +|SC3 -|Performance -|Accuracy -|The questions in the application must be accurate, both the question and the correct answer. -| +|Availability +|Our goal is to achieve at least 95% availability, ensuring that the system is always available for users to play. +|SC4 -| -|Efficiency (1) -|Accessing, creating questions and moving between questions should be fast to ensure user satisfaction. -| +|Responsiveness +|The system must be responsive, providing a good user experience for those in desktop and mobile environments. +|SC5 -| -|Robustness -|The system shall function reliably in all specified environments and operating conditions. -|SC2 +|Testability +|The system must facilitate the testing process(creating test cases, executing tests, analyzing results...) +|SC6 -|Safety -|Integrity -|The application shall be user-friendly, with intuitive functionality. -| +|Scalability +|The ability of a system to handle increasing workload or growing demands by adapting or expanding its capacity without compromising performance. +|SC7 + +|Interoperability +|The system must have the ability of seamlessly communicate, exchange data, and work together effectively with different systems, applications, or components, even if they use different technologies. +|SC8 -|Maintainability and support -|Maintenance (2) -|The application shall ensure that it can be easily extended and modified to provide new features to users. -| -|Cultural and Regional -|Multilingual -|The user interface texts must be able to be converted by a translation file into different languages with an ASCII character set. -|SC3 |=== === Quality Scenarios @@ -55,12 +48,28 @@ _Note: Items (1), (2), (3) in the table below repeat the higher-level quality re |=== |Identification |Scenario -|SC1 -|A user who is not familiar with the application will know how to use it after a few minutes of instruction. +| SC1 +| Users expect the application to load quickly and respond promptly to their interactions, ensuring a smooth and efficient user experience. -|SC2 -|The application should be able to be run from any device, from a computer to a mobile phone, without losing formatting. +| SC2 +| The application's user interface is designed intuitively, allowing users to navigate effortlessly and find what they need without confusion or frustration. + +| SC3 +| Developers can easily add new features or modify existing ones without disrupting the overall functionality of the application, ensuring its long-term maintainability. + +| SC4 +| Users rely on the application to be available whenever they want to play, and the system ensures a high level of uptime, minimizing downtime for maintenance or updates. + +| SC5 +| Whether accessed from a desktop computer or a mobile device, users expect the application to adapt seamlessly to their screen size and input method, providing a consistent experience across platforms. + +| SC6 +| The testing process is streamlined, allowing QA teams to efficiently create, execute, and analyze test cases, ensuring the reliability and stability of the application. + +| SC7 +| As user demand grows, the application scales its resources dynamically to accommodate increased traffic and maintain optimal performance levels, ensuring a consistent user experience. + +| SC8 +| The application seamlessly integrates with other systems, allowing for the exchange of data and functionality without compatibility issues, enhancing its overall interoperability. -|CS3 -|With the appropriate translation files replacing the default language (English), all displayed and printed texts now appear in this language. |=== \ No newline at end of file diff --git a/src/main/resources/templates/ranking/multiplayerRanking.html b/src/main/resources/templates/ranking/multiplayerRanking.html index 4da4cbf9..459edbcf 100644 --- a/src/main/resources/templates/ranking/multiplayerRanking.html +++ b/src/main/resources/templates/ranking/multiplayerRanking.html @@ -1,26 +1,26 @@ - - - + + + -