Skip to content

Commit

Permalink
Merge pull request #33 from Arquisoft/Rama-Adri
Browse files Browse the repository at this point in the history
Apartados 06 y 11 de la documentación
  • Loading branch information
adrianmahialoredo authored Feb 25, 2025
2 parents 601098e + 3c3d020 commit cd917ae
Show file tree
Hide file tree
Showing 2 changed files with 149 additions and 17 deletions.
142 changes: 125 additions & 17 deletions docs/src/06_runtime_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,137 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation.
****
endif::arc42help[]

=== <Runtime Scenario 1>
=== Login

[plantuml, Question Generation Diagram, png]
----
@startuml
actor User
participant WebApp
participant GatewayService
participant AuthService
User -> WebApp: Fills the form and attemps to log in
WebApp -> GatewayService: Sends login request
GatewayService -> AuthService: Foorwards request
AuthService --> AuthService: Validates auth data
AuthService --> AuthService: Generates session token
AuthService --> GatewayService: Returns response
GatewayService --> WebApp: Returns response
WebApp --> User: Displays response and redirects the user
@enduml
----

=== Question Generation

[plantuml, Question Generation Diagram, png]
----
@startuml
actor User
participant WebApp
participant GatewayService
participant QuestionGeneratorService
database Wikidata
database MongoDB
User -> WebApp: Starts game
WebApp -> GatewayService: Requests question
GatewayService -> QuestionGeneratorService: Requests question
QuestionGeneratorService -> Wikidata: Fetches relevant info
Wikidata --> QuestionGeneratorService: Returns relevan info
QuestionGeneratorService --> QuestionGeneratorService: Generates question
QuestionGeneratorService -> MongoDB: Stores question
QuestionGeneratorService --> GatewayService: Returns question
GatewayService --> WebApp: Returns Question
WebApp --> User: Displays question to the user
@enduml
----

=== Clue Generation

[plantuml, Clue Generation Diagram, png]
----
@startuml
* _<insert runtime diagram or textual description of the scenario>_
* _<insert description of the notable aspects of the interactions between the
building block instances depicted in this diagram.>_
actor User
participant WebApp
participant GatewayService
participant LLMService
entity EmpathyAI
It is possible to use a sequence diagram:
User -> WebApp: Asks for a hint
WebApp -> GatewayService: Requests hint
GatewayService -> LLMService: Foorwards Request
LLMService -> EmpathyAI: Queries hint
EmpathyAI --> EmpathyAI: Generates hint
EmpathyAI --> LLMService: Returns hint
LLMService --> GatewayService: Returns hint
GatewayService --> WebApp: Returns hint
WebApp --> User: Displays hint to the user
@enduml
[plantuml,"Sequence diagram",png]
----
actor Alice
actor Bob
database Pod as "Bob's Pod"
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice --> Pod: Store route
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response

=== Game

[plantuml, Clue Generation Diagram, png]
----
=== <Runtime Scenario 2>
@startuml
actor User
participant WebApp
participant GatewayService
participant UserService
database MongoDB
User -> WebApp: Selects an answer
WebApp --> WebApp: Checks correct answer
WebApp --> User: Displays correct answer
User -> WebApp: Repeats n times until finish
WebApp -> GatewayService: Requests sending user data
GatewayService -> UserService: Sends user data
UserService -> MongoDB: Stores user data
WebApp -> GatewayService: Requests sending score data
GatewayService -> RankingService: Sends score data
RankingService -> MongoDB: Stores score data
WebApp --> User: Displays stats
@enduml
----

=== Show User Info

[plantuml, Clue Generation Diagram, png]
----
@startuml
actor User
participant WebApp
participant GatewayService
participant UserService
database MongoDB
User -> WebApp: Asks for user info
WebApp -> GatewayService: Requests user info
GatewayService -> UserService: Forwards request
UserService -> MongoDB: Queries user info
MongoDB --> UserService: Returns user info
UserService --> GatewayService: Returns user info
GatewayService --> WebApp: Returns user info
WebApp --> User: Displays user info
@enduml
=== ...
=== <Runtime Scenario n>
----
24 changes: 24 additions & 0 deletions docs/src/11_technical_risks.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,27 @@ See https://docs.arc42.org/section-11/[Risks and Technical Debt] in the arc42 do
****
endif::arc42help[]

=== Risks

[options="header",cols="1,2"]
|===
|Risk|Description
| Familiarity with technologies| Many of the base technologies used by the project, such as docker, asciidoc or react, are new to the team. The unfamiliarity, specially at the begginging, can cause a slow development and bad decisions.
| Implementation | Team members mistakes such as the incorrect/unefficient implementation of a solution can cause big errors. Finding or fixing this errors takes time, which is a very limited reosurce in this project.
| Time | This project must be submmited within the agreed dates, and any decision taken to meet this deadlines can cause very different problems. These decisions include deleting functionalities, lack of testing, bad coding or insufficient documentation(including both the GitHub and the source code).
| Teamwork | The methodology used and the participation, communication and commitment of the team are cruzial for the succes of this project.
| Design | A bad desing decision at the beggining of the project can cause a more difficult development, with more complications when updating or scalating the project, specially in a an application of this size and complexity.
| Wikidata | Every aspect related to Wikidata: lack of knowledge wiht the platform, incorrect use, possible unavailability of the platform...
|===

=== Technical Debt

[options="header",cols="1,2"]
|===
|Technical Debt|Description
| Documentation| The lack of proper documentation can make the project difficult to mantain or upgrade in the future, as it can increase the difficulty of finding mistakes.
| Quality code | Prioritizing time over quality when coding can decrease the efficiency of the project. Unefficient methods and repetitive structures should be avoided.
| Test-coverage | A bad test-coverage can cause long-term problems, as the project could keep developing with udentified mistakes.
| Obsolote technologies | The use of obsolete or unsupported technologies such as frameworks or libraries can lead to reducted performance or security issues.
|===

0 comments on commit cd917ae

Please sign in to comment.