Skip to content

CodeURJC-DAW-2021-22/webapp6

Repository files navigation

Padelante

FASE 0

Nombre y Apellidos Correo Usuario Github
Rubén Catalán Medina r.catalan.2018@alumnos.urjc.es Ruben-urjc
Álvaro González Aroas a.gonzalezar.2018@alumnos.urjc.es alvaroga2175
Daniel Haro Murcia d.haro.2018@alumnos.urjc.es DaniURJC
Silvia Ventura Cabreja s.ventura.2018@alumnos.urjc.es Silvia-vcp

Entidades

  • Usuario. Los usuarios son aquellos tanto registrados como no, que puede hacer uso de la web para formar sus campeonatos de padel, formando pareja con otro usuario.
    • Anónimo
    • Registrado
    • Administrador
  • Pareja. Unión de dos usuarios registrados.
  • Torneo. Conjunto de partidos.
  • Partido. Jugado por 2 Parejas.

Permisos usuarios

  • Usuario anónimo: Solo podrá mirar los torneo públicos, información general de la web, reglas de los torneos y registrarse
  • Usuario registrado: Podrá crear torneos privados, compartirlos con otros jugadores por email (¿o generar código o enlace?), modificar características del torneo que crea, modificar su perfil, ver estadísticas, ver histórico de partidos y parejas, unirse a torneos, añadir resultado a sus partidos, confirmar resultado.
  • Usuario administrador: Expulsar gente de la aplicación, crear y borrar torneos públicos.

Imágenes

  • Usuario registrado: Imagen de perfil. Opcional. Modificable
  • Torneo: Imagen de torneo de fondo: Defecto. Modificable
  • Pareja: Imagen de pareja: Opcional. Modificable

Gráficos

  • Porcentaje de victoria total: Cúmulo individual. Gráficos de sectores
  • Evolución individual de puntos de karma: Gráfico lineal

Tecnología complementaria

  • Enviar email: Enviar PDFs a los ganadores de torneos.
  • Generar PDF: Para campeón de torneo. Para descargar estadísticas.

Algoritmo o consulta avanzada

  • Aleatoriedad de emparejamientos inicial.
  • Cálculo automático de próximos partidos en un torneo.
  • Clasificación en competiciones de formato liga.
  • Karma: Puntos totales que bajen o suban en función del karma de la pareja contraria.

FASE 1

Pantallas

Un usuario puede hacer Login o Registrarse

Al registrarse, introducirá su nombre de usuario, nombre completo, email, contraseña y aceptará los términos y condiciones

Desde la página inicial, cualquier usuario podrá ver los torneos públicos, pero solo los registrados podrán crear torneos

En la página inicial se mostrarán inicialmente 6 torneos públicos. Para ver más, habrá que pulsar en "Cargar más"

Un administrador podrá buscar tanto torneos como usuarios y eliminarlos si es necesario. Se mostrarán inicialmente 6 y si quiere ver más tendrá que pulsar en "Cargar más"

La página de error se mostrará cuando haya fallos de conexión con el servidor

Un usuario registrado podrá crear torneos rellenado un formulario

Un usuario registrado podrá ver notificaciones referentes a los partidos que tiene que jugar

Cualquier jugador que haya jugado un partido podrá añadir un resultado válido

Los usuarios registrados podrán ver su perfil y cerrar sesión

Dentro del perfil se podrán ver los datos generales del usuario registrado

A su vez, se podrá editar sus datos

Por último, dentro del perfil se podrán ver los torneos en los que el usuario ha jugado o está jugando

En la página del torneo se podrá ver toda su información y los participantes. Además el creador del torneo podrá iniciar el torneo desde aquí

En la página del torneo, un usuario podrá inscribirse añadiendo a su pareja si hay plazas libres y ninguno de los dos ya está apuntado

Se podrán ir viendo los cruces de los partidos una vez haya empezado el torneo

El creador del torneo podrá cambiar diferentes ajustes y datos relativos al mismo

Navegation Map

FASE 2

Class and Templates Diagram

Database Diagram

Participación de los miembros

Nota: En los Controller aparece que Rubén ha hecho todo, pero realmente separó en varios Controller lo que teníamos en uno único, por lo que es un copy-paste. Para ver la autoría a grandes rasgos de cada Controller, se debe acceder al fichero previo a esa separación:

https://github.com/CodeURJC-DAW-2021-22/webapp6/blame/4ffae254ca09287f931b915cb4e7f4a2c5aef10b/backend/src/main/java/es/webapp6/Padelante/controller/indexController.java

Intrucciones de ejecución

Para la aplicación se usa:

  • Java 17
  • PostgreSQL 14.2
  • SpringBoot 2.6.3

Para clonar el repositorio de git, se debe de usar la siguiente sentencia:

$ git clone https://github.com/CodeURJC-DAW-2021-22/webapp6

Por defecto, el proyecto require una base de datos PostgreSQL disponible en localhost con la siguiente configuración:

  • Esquema: padelante
  • Usuario: postgres
  • Contaseña:password

Se puede arrancar usando docker con el comando:

$ docker run --rm -e POSTGRES_PASSWORD=password -e POSTGRES_DB=padelante -p 5432:5432 -d postgres:14.2

La aplicación se ejecuta con el comando:

mvn spring-boot:run

Los usuarios principales son:

  • Usuario: user, Contraseña: pass
  • Usuario: admin, Contraseña: adminpass

FASE 3

URL Heroku

https://codeurjc-daw-2021-22-webapp6.herokuapp.com/

Los usuarios principales son:

  • Usuario: user, Contraseña: pass
  • Usuario: admin, Contraseña: adminpass

Documentación API REST

  • Fichero OpenAPI YAML:

https://github.com/CodeURJC-DAW-2021-22/webapp6/blob/main/backend/api-docs/api-docs.yaml

  • Fichero OpenAPI HTML:

https://rawcdn.githack.com/CodeURJC-DAW-2021-22/webapp6/c908eef6aae7103bd57f908b9c72c84c37ee0d50/backend/api-docs/api-docs.html

Diagrama de clases con REST Controllers

Ejecución de la aplicación dockerizada

Para la ejecución del archivo docker-compose.yml se usa:

  • Docker
  • Docker Compose
  • Maven 3.8.5

Se deberá haber clonado el repositorio de git previamente usando la siguiente sentencia:

$ git clone https://github.com/CodeURJC-DAW-2021-22/webapp6

El usuario deberá ejecutar las siguientes sentencias en el terminal después de haberse situado con la sentencia cd en la carpeta del proyecto webapp6:

$ cd ./backend/docker

Por último, se deberá ejecutar el siguiente comando:

$ docker-compose up

Cuando se termine de ejecutar la sentencia, el usuario debería poder acceder a la aplicación desde la URL:

https://localhost:8443/

Nota: El archivo docker-compose.yml está configurado con la imagen creada con el usuario de Docker rubencatalan. Si ha creado su propia imagen como se dice en el siguiente punto, se deberá cambiar en la linea 4 de ese archivo el nombre anterior por el nombre de usuario de Docker que se haya puesto en la nueva imagen.

Construcción de la imagen docker

Para la construcción de la imagen docker se usa:

  • Docker
  • Maven 3.8.5
  • Usuario registrado en Docker Hub

Se deberá haber clonado el repositorio de git previamente usando la siguiente sentencia:

$ git clone https://github.com/CodeURJC-DAW-2021-22/webapp6

El usuario deberá ejecutar las siguientes sentencias en el terminal después de haberse situado con la sentencia cd en la carpeta del proyecto webapp6:

$ cd ./backend/docker

$ ./create_image.sh <usuario_docker>

donde <usuario_docker> es el nombre de su usuario en Docker Hub

De esta forma, se habrá creado la imagen docker y se habrá publicado en Docker Hub desde su usuario.

Despliegue en Heroku

Para el despliegue se usa:

  • Docker
  • Java 17.0.2
  • Maven 3.8.5
  • SpringBoot 2.6.3
  • Heroku Client
  • Usuario registrado en Heroku

Se deberá haber clonado el repositorio de git previamente usando la siguiente sentencia:

$ git clone https://github.com/CodeURJC-DAW-2021-22/webapp6

El usuario deberá ejecutar las siguientes sentencias en el terminal después de haberse situado con la sentencia cd en la carpeta del proyecto webapp6:

$ cd ./backend

$ heroku login

e introducir las credenciales del usuario en Heroku.

$ heroku create <app-id>

donde <app-id> es la id que se le quiera asignar a la aplicación. Esta id no debe existir previamente en Heroku para funcionar. En nuestro caso se usó codeurjc-daw-2021-22-webapp6.

Se genera la imagen docker para Heroku con:

$ mvn spring-boot:build-image -Dspring-boot.build-image.imageName=registry.heroku.com/<app-id>/web

Se publica en el registro de Heroku:

$ heroku container:login

$ docker push registry.heroku.com/<app-id>/web

Se despliega la aplicación:

$ heroku container:release web --app <app-id>

Por último, para poder configurar la base de datos PosgreSQL en Heroku y terminar de configurar la aplicación hacemos lo siguiente:

$ heroku config:set SERVER_SSL_ENABLED=false --app <app-id>

$ heroku config:set SPRING_JPA_HIBERNATE_DDL-AUTO=update --app <app-id>

$ heroku addons:create heroku-postgresql --app <app-id>

$ mvn spring-boot:build-image -Dspring-boot.build-image.imageName=registry.heroku.com/<app-id>/web

$ docker push registry.heroku.com/<app-id>/web

$ heroku container:release web --app <app-id>

Y ya estaría desplegada la aplicación en Heroku y estará accesible a traves de la URL:

https://<app-id>.herokuapp.com/

Participación de los miembros

FASE 4

Preparación del entorno de desarrollo

Para esta fase se usa:

  • Maven 3.8.5
  • Docker
  • Docker Compose

Se deberá haber clonado el repositorio de git previamente usando la siguiente sentencia:

$ git clone https://github.com/CodeURJC-DAW-2021-22/webapp6

El usuario deberá ejecutar las siguientes sentencias en el terminal después de haberse situado con la sentencia cd en la carpeta del proyecto webapp6:

$ cd ./backend/docker

$ docker-compose up

Cuando se termine de ejecutar la sentencia, el usuario debería poder acceder a la web con arquitectura tradicional (MVC) desde la URL:

https://localhost:8443/

y a la web SPA desde la URL:

https://localhost:8443/new/

Nota: Esta preparación está pensada para que el archivo docker-compose.yml esté configurado con la imagen creada con el usuario de Docker rubencatalan. Si se quiere ejecutar con una imagen de Docker actualizada que no sea la aportada en Docker Hub bajo el nombre rubencatalan/padelante_web, se deberá cambiar en la linea 4 de ese archivo el nombre de usuario anterior por el nombre de usuario de Docker que se vaya a utilizar a continuación si se quiere ejecutar con la imagen que sea cree con el siguiente script.

Se necesitaría además:

  • Node.js
  • Angular CLI 13.3.1
  • Usuario registrado en Docker Hub

En el mismo directorio que antes, ejecutar el siguiente comando

$ ./create_image.sh <usuario_docker>

donde <usuario_docker> es el nombre de su usuario en Docker Hub. De esta forma se habrá creado la imagen Docker correspondiente.

Por último, deberá ejecutar de nuevo

$ docker-compose up

Diagrama de clases y templates de la SPA

Participación de los miembros

Vídeo

https://www.youtube.com/watch?v=5Bwm3sY_KyU

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5