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 @@
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 +*
+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
Testeable
La aplicación debe probarse con cada actualización
La aplicación debe pasar las pruebas generadas automaticamente para cada versión
Disponibilidad
Cristian Augusto
Una buena aplicación
Una aplicación que cumpla todos los requisitos propuestos en la asignatura
Profesor de la asignatura
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
RTVE
Una buena versión de su juego "Saber y Ganar"
Empresa contratista, el cliente
Dueño del producto
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.
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.
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.
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
Componentes | +Explicació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. |
+
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 @@<explanation>
+En la siguiente sección, vamos a mostrar los primeros prototipos de pantalla, aunque pueden estar sujetos a cambios en el futuro.
<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.
+…
+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.
+<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.
+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
Calidad | +Escenario | +Acciones de usuario | +Respuesta | +
---|---|---|---|
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 |
+
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.
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.