diff --git a/images/03_1_contexto-negocio.png b/images/03_1_contexto-negocio.png index cfd5ab5..e30077d 100644 Binary files a/images/03_1_contexto-negocio.png and b/images/03_1_contexto-negocio.png differ diff --git a/images/03_2_contexto_tecnico.png b/images/03_2_contexto_tecnico.png index 747f92a..d6c5a27 100644 Binary files a/images/03_2_contexto_tecnico.png and b/images/03_2_contexto_tecnico.png differ diff --git a/images/08_1_pantalla-estadisticas.png b/images/08_1_pantalla-estadisticas.png new file mode 100644 index 0000000..90534cc Binary files /dev/null and b/images/08_1_pantalla-estadisticas.png differ diff --git a/images/08_1_pantalla-juego.png b/images/08_1_pantalla-juego.png new file mode 100644 index 0000000..98935cc Binary files /dev/null and b/images/08_1_pantalla-juego.png differ diff --git a/images/08_1_pantalla-principal.png b/images/08_1_pantalla-principal.png new file mode 100644 index 0000000..29e252a Binary files /dev/null and b/images/08_1_pantalla-principal.png differ diff --git a/images/10_1_arbol-calidad.png b/images/10_1_arbol-calidad.png new file mode 100644 index 0000000..1e50393 Binary files /dev/null and b/images/10_1_arbol-calidad.png differ diff --git a/index.html b/index.html index 51e64f8..6426c4e 100644 --- a/index.html +++ b/index.html @@ -487,18 +487,16 @@

arc42 D
  • 7.2. Infrastructure Level 2
  • -
  • 8. Cross-cutting Concepts +
  • 8. Conceptos transversales
  • 9. Decisiones arquitectónicas
  • -
  • 10. Quality Requirements +
  • 10. Requerimientos de Calidad
  • 11. Riesgos y Deudas Técnicas @@ -612,16 +610,40 @@

    1.1. Vista de Requerimientos

    • -

      Los usuarios podrá registrarse en la aplicación.

      +

      Los usuarios podrán registrarse en la aplicación.

    • Los ususarios registrados podrán iniciar su sesión en la aplicación.

    • Los usuarios registrados podrán jugar.

      +
      +
        +
      • +

        El juego tendrá 5 preguntas con 3 respuestas incorrectas y una correcta cada una, generadas aleatoriamente.

        +
      • +
      • +

        Cada pregunta deberá ser respondida en un plazo de tiempo.

        +
      • +
      +
      +
    • +
    • +

      Los usuarios registrados podrán consultar su historial de participación

      +
      +
        +
      • +

        Número de juegos jugados

      • -

        Los usuarios registrados podrán consultar su historial de participación: número de juegos, preguntas acertadas/falladas, tiempos, etc.

        +

        Preguntas acertadas/falladas

        +
      • +
      • +

        Tiempo de respuesta y partida +*

        +
      • +
      +
    @@ -670,7 +692,7 @@

    1.2. Metas de Calidad

    Usabilidad

    -

    La aplicación tiene que poder usarse por un publico diverso

    +

    La aplicación tiene que poder usarse por el mayor tipo de usuarios

    Rendimiento

    @@ -678,7 +700,7 @@

    1.2. Metas de Calidad

    Testeable

    -

    La aplicación debe probarse con cada actualización

    +

    La aplicación debe pasar las pruebas generadas automaticamente para cada versión

    Disponibilidad

    @@ -742,7 +764,7 @@

    1.3. Stakeholders

    Cristian Augusto

    -

    Una buena aplicación

    +

    Una aplicación que cumpla todos los requisitos propuestos en la asignatura

    Profesor de la asignatura

    @@ -752,12 +774,12 @@

    1.3. Stakeholders

    Wikidata

    -

    Un buen uso de su aplicación

    +

    Usar su aplicacion con precaución, sin sobrecargar sus servicios

    Empresa que nos facilita la API para obtener información

    Usuarios Registrados

    -

    Una buena aplicación

    +

    Una aplicación que proporcione los servicios esperados

    Los usuarios de la aplicación

    @@ -768,7 +790,7 @@

    1.3. Stakeholders

    RTVE

    Una buena versión de su juego "Saber y Ganar"

    -

    Empresa contratista, el cliente

    +

    Dueño del producto

    @@ -804,8 +826,8 @@

    2. Limitaciones de Arquitectura

    -

    Este proyecto está limitado por una serie de pautas marcadas por los responsables de la asignatura. -Por ello esta aplicación está desarrollada siguiendo una serie de requisitos los cuales nombraremos a continuación.

    +

    Este proyecto está limitado por una serie de restricciones de arquitectura marcadas por los responsables de la asignatura. +Por ello esta aplicación está desarrollada siguiendo una serie de limitaciones las cuales nombraremos a continuación.

    2.1. Limitaciones técnicas

    @@ -823,17 +845,17 @@

    2.1. Limitaciones técnicas

    GIT

    -

    Esta tecnología nos permite almacenar el proyecto y llevar un control de versiones de este, utilizando el servicio de GitHub. Además nos permite +

    Esta tecnología es un sistema de control de versiones que nos permite almacenar el proyecto, además de utilizar el servicio de GitHub. Además nos permite una continua integración mediante la paralelización del trabajo usando el sistema de ramas. También GitHub permite organizar las distintas tareas de cada miembro del equipo mediante el uso de las Issues.

    Docker

    -

    Este programa es utilizado para desplegar aquí la aplicación web y realizar las pruebas pertinentes.

    +

    Este sistema es utilizado para desplegar la aplicación web en el entorno de desarrollo como en el de producción.

    Wikidata

    -

    Todas las preguntas del juego se obtienen a partir de esta plataforma, generando aleatoriamente las preguntas y respuestas correctas y también las falsas.

    +

    Fuente de información desde donde generaremos las preguntas y respuestas correctas e incorrectas del juego.

    @@ -895,7 +917,14 @@

    2.3. Convenciones

    Accesibilidad

    -

    Nuestro aplicación puede ser utilizada por cualquier tipo de usuario, sin importar quien sea, ya que será fácil de entender e interactuar.

    +

    Intentaremos que nuestra aplicación puede ser utilizada por cualquier tipo de usuario, sin importar quien sea. Seguiremos los estandares de accesibilidad y +usaremos el color, tamaño de texto…​ adecuados para ello.

    + + +

    Estructura

    +

    Debe seguir una estructura fija y bajo los mismos estandares. Los diferentes modulos estaran separados en carpetas +principalmente: 'users' para el la api rest y el registro de usuarios, 'webapp' para el desarrollo de la aplicación, 'docs' +para la documentación.

    @@ -985,8 +1014,8 @@

    3.1. Contexto de Negocio

    Contiene el frontend y backend de la aplicación.

    -

    MongoDB

    -

    Base de datos para almacenar la información de los usuarios.

    +

    Base de Datos

    +

    Almacenamiento principal del sistema.

    Usuario

    @@ -1023,6 +1052,52 @@

    3.2. Contexto Técnico

    Diagrama de contexto técnico
    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ComponentesExplicación

    Sistema

    Contiene el frontend y backend de la aplicación.

    MongoDB

    Base de datos no relacional para el almacenamiento de usuarios.

    Usuario

    Los usuarios que interactuaran con la aplicación.

    Wikidata API

    API de donde obtendremos las preguntas y respuesta correcta para el juego de la aplicación.

    Javascript

    Lenguaje de programación principal de la aplicación.

    Express JS

    Framework para la creación de aplicaciones web en Javascript, utilizado en el backend.

    React

    Biblioteca de Javascript para creación de interfaces de usuario, utilizado en el frontend.

    Firebase

    Plataforma de desarrollo de Google, se utiliza en el login del sistema.

    @@ -1074,19 +1149,19 @@

    4. Estrategia de solución

    • -

      JavaScript: Este lenguaje es muy buena opción para utilizar en proyectos en que se emplé la tecnología REACT. Nos pareció mejor opción que otros lenguajes como TypeScript debido a que su compresión y manejo es más sencillo.

      +

      JavaScript: Este lenguaje es muy buena opción para utilizar en proyectos en que se empleé la biblioteca REACT. Nos pareció mejor opción que otros lenguajes como TypeScript debido a que su compresión y manejo es más sencillo.

    • -

      React: Esta libreria de JavaScript permite la creación de interfaces de usuario para la aplicacion web, simplificando la creación de interfaces gráficas.

      +

      React: Esta libreria de JavaScript permite la creación de interfaces de usuario para la aplicacion web, simplificando el desarrollo de las interfaces gráficas.

    • -

      Docker: Utilizaremos los contenedores de Docker como lugar donde desplegar la aplicacion web, de manera que pueda probarse la aplicación de forma aislada.

      +

      Docker: Utilizaremos esta plataforma para desplegar la aplicacion web.

    • Firebase: Esta API nos servirá como sistema de autenticación del usuario para poder llevar un registro de su historial de partidas, así como algunas de sus estadísticas.

    • -

      Microservicios: Enfoque arquitectónico donde el software está compuesto por pequeños servicios independientes. Lo hemos elegido por encima de MVC, por la facilidad a la hora de modificar una parte de la aplicación sin afectar al resto.

      +

      Microservicios: Enfoque arquitectónico donde el software está compuesto por pequeños servicios independientes.

    • MongoDB: Es una base de datos NoSQL sencilla de utilizar y que ya conocemos.

      @@ -1643,7 +1718,7 @@

      7.2.3. <Infrastructure Element n>

    -

    8. Cross-cutting Concepts

    +

    8. Conceptos transversales

    @@ -1745,24 +1820,39 @@

    8. Cross-cutting Concepts

    -

    8.1. <Concept 1>

    +

    8.1. Prototipos de pantalla

    -

    <explanation>

    +

    En la siguiente sección, vamos a mostrar los primeros prototipos de pantalla, aunque pueden estar sujetos a cambios en el futuro.

    -
    -
    -

    8.2. <Concept 2>

    -

    <explanation>

    +

    Pantalla principal +La pantalla principal que aparece al entrar en la aplicación, con las opciones de jugar y ver las estadisticas de los juegos +solo si estás registrado en la aplicación. Además de las propias opciones de iniciar sesión y registrarse.

    +
    +
    +
    +Prototipo de pantalla principal +
    -

    …​

    +

    Pantalla de juego +Irán apareciendo 5 diferentes preguntas con 4 posibles rspuestas, de las cuales solo una +será la correcta. También podremos ver el tiempo que trascurre durante todo el juego.

    +
    +
    +
    +Prototipo de pantalla de juego
    -
    -

    8.3. <Concept n>

    -

    <explanation>

    +

    Pantalla de estadísticas +Solo se podrá acceder a esta página si estás registrado en la aplicación. Aqui +podremos observar diferentes estadisticas en los juego que hayas jugado.

    +
    +
    +
    +Prototipo de pantalla de destadisticas +
    @@ -1845,14 +1935,14 @@

    9. Decisiones arquitectónicas

    Marco de trabajo para desarrollar la parte grafica de la aplicación.

    React

    Hemos elegido este framework ya que simplifica la creación de interfaces gráficas.

    -

    Angular.

    +

    Angular, Vue…​

    Base de Datos

    Donde almacenaremos la informacion de los usuarios.

    MongoDB

    La hemos elegido porque es una base de datos NoSQL fácil de usar que ya conocemos.

    -

    MySQL.

    +

    MySQL, Postgress, Redis, MariaDB, SQLLite…​

    Arquitectura

    @@ -1867,7 +1957,7 @@

    9. Decisiones arquitectónicas

    -

    10. Quality Requirements

    +

    10. Requerimientos de Calidad

    @@ -1892,7 +1982,7 @@

    10. Quality Requirements

    -

    10.1. Quality Tree

    +

    10.1. Árbol de Calidad

    @@ -1922,9 +2012,14 @@

    10.1. Quality Tree

    +
    +
    +Diagrama de árbol de calidad +
    +
    -

    10.2. Quality Scenarios

    +

    10.2. Escenarios de Calidad

    @@ -1963,6 +2058,48 @@

    10.2. Quality Scenarios

    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CalidadEscenarioAcciones de usuarioRespuesta

    Usabilidad

    Un usuario que nunca ha interactuado con la aplicación

    El usuario quiere iniciar sesión y posteriormente jugar y que todo sea intuitivo

    La aplicación facilita al usuario iniciar/registrar en la aplicación y posteriormente se le muestra la opción para jugar de forma visual

    Rendimiento

    Un usario, un poco impaciente y ya registrado quiere jugar tranquilamente una partida

    Empieza la partida y espera a que se procese la pregunta y respuestas, sin importar cuantos usuarios esten jugando en ese momento

    El sistema de obtención de preguntas es ágil y se muestra la pregunta con sus respuestas antes de que el usuario se canse de esperar

    Testeable

    Un desarrollador esta realizando una nueva funcionalidad del sistema, pero se equivoca y produce fallos en la aplicación

    Igualmente realiza un commit en su rama con el objetivo de incorporar la nueva funcionalidad al sistema

    Las pruebas automáticas detectan un error de programación e impide que el problema se propague a la aplicación funcional

    Disponibilidad

    Un usuario quiere jugar a las 03:00 AM, sin que ocurra ninguna caida por mantenimiento o cualquier otro error.

    El usuario inicializa la aplicación de forma estandar

    La aplicación es funcional pese a no ser una hora habitual

    @@ -2024,7 +2161,7 @@

    11.1. Riesgos Técnicos

    Caída de Servicios

    -

    El desarrollo del proyecto puede verse afectado si alguno de los servicios utilizados, como por ejemplo Docker, pueden no funcionar en algún momento. Esto podría bloquear la entrega de alguna de las +

    El desarrollo del proyecto puede verse afectado si alguno de los servicios utilizados, como por ejemplo Docker, parará de funcionar en algún momento. Esto podría bloquear la entrega de alguna de las funcionalidades del proyecto.

    @@ -2093,22 +2230,10 @@

    12. Glosario

    Un marco de arquitectura que proporciona un conjunto de prácticas y plantillas para documentar y diseñar arquitecturas de software.

    -

    Back-end

    -

    La parte de un sitio web o aplicación que no es visible para los usuarios finales y se encarga del procesamiento de la lógica del negocio y la gestión de los datos.

    - - -

    Contenedor

    -

    Entorno virtual ligero que contiene todo lo necesario para ejecutar una aplicación, incluidas bibliotecas, herramientas y códigos.

    - -

    Docker

    Plataforma de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software.

    -

    Front-end

    -

    La parte de un sitio web o aplicación que interactúa directamente con los usuarios, visible y accesible en el navegador.

    - -

    GitHub

    Plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git.

    @@ -2154,7 +2279,7 @@

    12. Glosario