Skip to content

Commit

Permalink
Merge pull request #47 from Arquisoft/develop
Browse files Browse the repository at this point in the history
Release 1.0.0
  • Loading branch information
Alba-Guerrero authored Apr 11, 2023
2 parents 2c23501 + 46d82bc commit 4285881
Show file tree
Hide file tree
Showing 50 changed files with 9,273 additions and 1,405 deletions.
22 changes: 22 additions & 0 deletions .codesandbox/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
// These tasks will run in order when initializing your CodeSandbox project.
"setupTasks": [
{
"name": "Install Dependencies",
"command": "npm install"
}
],

// These tasks can be run from CodeSandbox. Running one will open a log in the app.
"tasks": {
"Setup RestAPI": {
"name": "cd restapi; npm install; npm start",
"command": "cd restapi; npm install; npm start",
"runAtStart": true
},
"Setup WebApp": {
"name": "cd webapp; npm install; npm start",
"command": "cd webapp; npm install; npm start"
}
}
}
8 changes: 3 additions & 5 deletions docs/02_architecture_constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@
|===
|Restricción|Explicación

| *React* | _El frontend de la aplicación será realizado con la librería React._

| *Typescript* | _El lenguaje de programación usado para realizar tanto el backend como el frontend de la aplicación._

| *PODs de SOLID* | _Se hará uso de la tecnología de PODs de SOLID para asegurar la privacidad de los datos de los usuarios que interactuen con la aplicación._

| *GitHub* | _El proyecto estará en un repositorio de GitHub_
Expand All @@ -22,7 +18,9 @@
|===
|Restricción|Explicación

| *Miembros del equipo* | _Somos un equipo de 5 estudiantes, con horarios dispares, 3 de los integrantes trabajan a la vez que estudian y 1 está en evaluación diferenciada._
| *Tamaño del equipo* | _Somos un equipo de 5 estudiantes, 1 está en evaluación diferenciada._

| *Horarios* | _Los integrantes del equipo tenemos horarios dispares debido a las a las asignaturas y el trabajo._

| *Tiempo* | _La aplicación debe de ser desarrollada dentro de los márgenes establecidos por los profesores, y las entregas han de estar realizadas en el tiempo establecido._

Expand Down
26 changes: 17 additions & 9 deletions docs/03_system_scope_and_context.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[[section-system-scope-and-context]]
== System Scope and Context

En puntos anteriores hemos hablado de nuestra meta con esta aplicación, ahora tenemos que explicar un poco cuál va a ser
nuestro entorno de trabajo y la forma en la que estos se comunican para llegar a dicho objetivo.

[role="arc42help"]
****
Expand Down Expand Up @@ -53,9 +54,9 @@ image:3-system-scope-and-context.png["Business Context"]
|El POD almacena la información del usuario y es solicitado por la webApp
|El output es la información del usuario la cuál serán los puntos marcados en el mapa

|webApp
|Recibirá los datos procesados
|La información sobre el usuario actual
|LoMap
|Es la webApp, Recibirá los datos procesados
|La información sobre la aplicación y el usuario actual

|Database
|Recibe querys para obtener información
Expand All @@ -79,13 +80,20 @@ together with a mapping table showing the relationships between channels and inp
****

El objetivo principal es la descentralización de la aplicación, esto es posible gracias a los PODS de usuario

La aplicación estará escrita en TypeScript y empleará la librería React para la creación de Interfaces de usuario
[options="header",cols="1,2,3"]
La aplicación seguirá la arquitectura SOLID, estará escrita en TypeScript y empleará la librería React para la creación de Interfaces de usuario,
Aquí debajo se especifica de manera más detallada todo lo que hemos usado en la aplicación y para qué lo utilizamos.

[options="header",cols="1,2"]
|===
|Tecnología|Descripción
|SOLID| Arquitectura seguida en la aplicación para el manejo de datos
|TypeScript|Lenguaje utilizado para la creación de la aplicación
|React|Librería pra la creación de interfaces de usuario
|TypeScript| Lenguaje utilizado para la creación de la aplicación
|React| Librería para la creación de interfaces de usuario
|Javascript| Lenguaje usado puntualmente para resolver distintos problemas que nos surgieron con código .tsx
|MapBox| Api para los mapas
|PODs| Para guardar datos
|MongoDb| Como base de datos
|Node.js y express| Todo lo relacionado con la ejecución de la aplicación
|SonarCloud| Para cobertura de código
|===
141 changes: 7 additions & 134 deletions docs/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -57,150 +57,23 @@ In the best case you will get away with examples or simple signatures.
****

_**<Overview Diagram>**_

Motivation::

_<text explanation>_
LoMap se subdivide en 3 sistemas, sistema LoMap4c, base de datos no relacional mongoDb y POD's. Las flechas del siguiente diagrma representan las dependenicas entre los componentes.


Contained Building Blocks::
_<Description of contained building block (black boxes)>_

Important Interfaces::
_<Description of important interfaces>_

[role="arc42help"]
****
Insert your explanations of black boxes from level 1:
If you use tabular form you will only describe your black boxes with name and
responsibility according to the following schema:
image:diagrama_punto5.jpg["Diagrama de caja blanca"]

[cols="1,2" options="header"]
|===
| **Name** | **Responsibility**
| _<black box 1>_ | _<Text>_
| _<black box 2>_ | _<Text>_
| MongoDb | Almacenamiento de la mínima informacion posible en base de datos, solamente con el fin de agilizar el flujo.
| Sistema de PODs| Almacenamiento de infromacion de fomra decentralizada tanto de nuestro pod, como de datos que haya decidido ser publicos de nuestros amigos.
|LoMap4c| Interfaz gráfica y flujo de datos con los sitemas previamente definidos de almacenamiento.
|===


If you use a list of black box descriptions then you fill in a separate black box template for every important building block .
Its headline is the name of the black box.
****


==== <Name black box 1>

[role="arc42help"]
****
Here you describe <black box 1>
according the the following black box template:
* Purpose/Responsibility
* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics.
* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, ....
* (Optional) directory/file location
* (Optional) Fulfilled requirements (if you need traceability to requirements).
* (Optional) Open issues/problems/risks
****

_<Purpose/Responsibility>_

_<Interface(s)>_

_<(Optional) Quality/Performance Characteristics>_

_<(Optional) Directory/File Location>_

_<(Optional) Fulfilled Requirements>_

_<(optional) Open Issues/Problems/Risks>_




==== <Name black box 2>

_<black box template>_

==== <Name black box n>

_<black box template>_


==== <Name interface 1>

...

==== <Name interface m>



=== Level 2

[role="arc42help"]
****
Here you can specify the inner structure of (some) building blocks from level 1 as white boxes.
You have to decide which building blocks of your system are important enough to justify such a detailed description.
Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks.
Leave out normal, simple, boring or standardized parts of your system
****

==== White Box _<building block 1>_

[role="arc42help"]
****
...describes the internal structure of _building block 1_.
****

En este subnivel detallamos mas especificamente como se decompondria internamente tanto el componente LoMap4c, como el sistema de pods
_<white box template>_

==== White Box _<building block 2>_


_<white box template>_

...

==== White Box _<building block m>_


_<white box template>_



=== Level 3

[role="arc42help"]
****
Here you can specify the inner structure of (some) building blocks from level 2 as white boxes.
When you need more detailed levels of your architecture please copy this
part of arc42 for additional levels.
****


==== White Box <_building block x.1_>

[role="arc42help"]
****
Specifies the internal structure of _building block x.1_.
****


_<white box template>_


==== White Box <_building block x.2_>

_<white box template>_



==== White Box <_building block y.1_>

_<white box template>_
Sigueindo con la descomposicion del sistema LoMap, nos centramos en en el componente WebApp, descantando dentro de este el uso del componente MapBox.
75 changes: 69 additions & 6 deletions docs/06_runtime_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,39 @@ There are many notations for describing scenarios, e.g.
=== Casos de uso Nivel 1

==== Añadir un punto al mapa
image:añadirPunto.png["Add a Point"]
*_En este caso de uso observamos como un usuario ya registrado añade un punto nuevo en su mapa._
[plantuml,"Añadir punto",png]
----
actor "User" as user
participant "LoMap" as LoMap
database "Solid Pod" as pod
user->LoMap: AñadirPunto()
LoMap->pod: GuardarPuntoEnPOD()
LoMap->user: CargarPuntoEnMapa()
----

==== Iniciar sesión
image:06_estado_inicio_sesion.png["Inicio de sesion"]
*_En este caso de uso observamos como un usuario introduce su perfil y su contraseña para entrar en la aplicación._
[plantuml, "Iniciar sesón", png]
----
actor "User" as user
participant "LoMap" as LoMap
database "Solid Pod" as pod
user->LoMap: Entra en la pagina y escoge "Log in"
LoMap->user: Muestra la pantalla de inicio de sesion
user->LoMap: Introduce datos y slecciona iniciar sesión
LoMap->pod: Se envian los datos a al pod
alt Credenciales válidas
LoMap->user: Muestra el mapa
else Credenciales invalidas
LoMap->user: No permite inicio
end
----

==== Cargar mapa
*_El usuario iniciará sesión y automáticamente se cargará el mapa, para ello tiene que llamar a la clase principal y que esta escoja el mapa deseado_
*_El usuario iniciará sesión y automáticamente se cargará el mapa, para ello tiene que llamar a la clase principal y que esta escoja el mapa deseado._
[plantuml,"Cargar mapa",png]
----
actor User as user
Expand All @@ -57,7 +83,7 @@ lomap <- pod : CargaMapa()
----

==== Añadir un amigo
En este caso de uso podemos observar el flujo seguido para añadir a un amigo nuestro pod de SOLID
*_En este caso de uso podemos observar el flujo seguido para añadir a un amigo nuestro pod de SOLID._
[plantuml,Añadir amigo,png]
----
@startuml
Expand All @@ -84,7 +110,7 @@ end
----

==== Eliminar un amigo
En este caso de uso observamos como eliminar un amigo de nuestro pod
*_En este caso de uso observamos como eliminar un amigo de nuestro pod._
[plantuml,"Eliminar amigo",png]
----
actor User as user
Expand All @@ -101,8 +127,45 @@ loMap -> pod: EliminaAmigoId()

=== Casos de uso Nivel 2

==== Añadir un punto al mapa
*_En este caso de uso observamos como un usuario ya registrado añade un punto nuevo en su mapa y como se comunica con el POD privado para actualizar la información._
[plantuml,"Añadir punto lvl2",png]
----
actor "User" as user
participant "LoMap" as LoMap
Participant "POD Server" as server
database "User POD" as pod
user->LoMap: AñadirPunto()
LoMap->server: ComprobarEstadoDeSesion()
LoMap->server: GuargarPunto()
Server->POD: GuardarPunto()
POD->LoMap: ConfirmarRecepcion()
LoMap->user: CargarPuntoEnMapa()
----

==== Añadir un amigo
*_En este caso de uso observamos como añadir un amigo a nuestro pod y como se actualiza la información en ambos pods._
[plantuml,"Eliminar amigo lvl2",png]
----
actor User as user
participant "loMap" as loMap
participant "POD Server" as server
database "User POD" as userp
database "Friend POD" as friendp
user -> loMap : AñadirAmigo()
loMap -> server: listaAmigos()
server -> userp: listaAmigos()
loMap -> server: buscaPodId()
server -> userp: buscaPodId()
loMap -> server : AñadirAmigo(idUser, idAmigo)
server -> userp : AñadirAmigo(idUser, idAmigo)
server -> friendp : AñadirAmigo(idUser, idAmigo)
----

==== Eliminar un amigo
En este caso de uso observamos como eliminar un amigo de nuestro pod y como se actualiza la información en ambos pods
*_En este caso de uso observamos como eliminar un amigo de nuestro pod y como se actualiza la información en ambos pods._
[plantuml,"Eliminar amigo lvl2",png]
----
actor User as user
Expand Down
Loading

0 comments on commit 4285881

Please sign in to comment.