Skip to content

SergioT14/NGR-NewGamesReleased

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NGR-NewGamesReleased

Vídeo con el funcionamiento de la aplicación a continuación (redirección a Youtube)

NewGamesReleased

La aplicación web se trata de una especie de foro donde los administradores de la misma colgarán "posts" pequeños relacionados con ofertas y novedades en las distintas plataformas de videojuegos.

La funcionalidad publica será poder ver las novedades y navegar por la aplicación para ver los distintos posts, pudiendo iniciar sesión para ver posts asociados a etiquetas en un feed personalizado y comentar junto a una valoración (en pocos caracteres) en los posts. La funcionalidad privada será, como ya se ha explicado, el poder crear los posts y etiquetarlos, al mismo tiempo que crear nuevas etiquetas si fuese necesario, y moderar los comentarios.

Las entidades son las siguientes:

  • Usuarios: Diferenciados por su nivel de permisos. Interactúan con la aplicación comentando los posts o siguiendo etiquetas.
  • Posts: Creados por usuarios administradores. Asociados a etiquetas con posibilidad de ser comentados por cualquier usuario registrado.
  • Etiquetas: Categorías para localizar más facilmente los posts. Los usuarios se pueden suscribir a estas, y los administradores crear más.
  • Valoraciones: Valoración basada en puntuación de 0 a 5. Cualquier usuario registrado puede realizar una. Acompañada de un comentario de pocos caracteres.

El servicio interno que se ofrece es un servicio de newsletter, donde se enviarán al correo asociado al usuario novedades sobre las etiquetas que el usuario esté siguiendo.

Los archivos JAR se encuentran en el siguiente enlace por si no se quieren compilar: https://urjc-my.sharepoint.com/:f:/g/personal/d_alfonsel_2019_alumnos_urjc_es/ElvnUP4thNVBp48c16TPzSMB_0Z1OdjCg-KL6re7y9_0bw?e=e2nWg7

Para compilarlo a través de STS basta con hacer click derecho sobre el proyecto, buscar la opción 'Run as', y dentro de esta, la opción de 'Maven build...':

image

Una vez en el menú, hay que añadir en el campo 'Goals' la palabra 'package'. Hay que desactivar los test, ya que dan error:

image

Realizar el mismo proceso con el servicio interno.

Para desplegar la aplicación y el servicio interno es necesario instalar lo siguiente:

Tras instalar todo lo necesario, antes de arrancar la aplicación es necesario crear el esquema. Para ello simplemente hay que acceder a la base de datos a través del Workbench. Una vez se ha accedido (debería haber un perfil ya creado por el instalador de la comunidad), crear un esquema con el nombre 'bbdd' (sin las comillas). No es necesario configurar el servidor RabbitMQ, de eso ya se encarga el servicio interno cuando arranca.

Una vez realizado todo esto, abrir dos shells en las carpetas donde se encuentran los JAR. Para más comodidad se recomienda guardarlos juntos. En la primera shell introducir el comando

java -jar ./NewGamesReleased.jar

Se sabrá que se ha iniciado correctamente porque aparece la siguiente linea al final: image

Una vez se ha visto esa linea, proceder a iniciar el servicio interno, con el comando

java -jar ./InternalServiceNGR.jar

De igual forma, esta linea indica que se ha inciado correctamente: image

Cada vez que se cree un nuevo post, este se enviará al servicio interno. Para saber si el servicio interno ha recibido el post, en la shell aparece un mensaje de que se ha recibido un post y se puede visualizar su información. Por ejemplo: image

La infraestructura de docker-compose es la siguiente:

dsf (1)

Como se observa, el usuario se enfrenta al HAProxy. Este balancea la carga entre las dos aplicaciones. Ambas aplicaciones envian y reciben datos de la base de datos, y envían mensajes a la cola de RabbitMQ. Por su parte, el servicio interno también envía y recibe mensajes de la base de datos y recoge los mensajes de la cola de mensajes.

Las distintas clases y sus relaciones se pueden ver en los siguiente diagrama UML:

Controlador de página con los repositorios Clases model Servicio interno con la aplicación Configuraciones, usuarios y caché

Esquema de las relaciones entre los modelos:

41ff0b9081f4d1c070067736d10630e6

Esquema de navegación por las pestañas principales:

UML

Pestaña de inicio con todos los posts, su edición y eliminación y creación de nuevos posts:

principal

Pestaña con todas las etiquetas, su edición y eliminación y creación de otras nuevas:

ad151a3fa1fa81482e0388a820867561

Pestaña con todos los usuarios, su edición y eliminación y la lista de sus etiquetas suscritas:

98dd3252f63da95c39edacfd1aded54b

Pestaña de búsqueda tras haber escrito en el recuadro lo que queremos buscar. En este ejemplo no se ha escrito nada, por lo que se devuelve todo lo existente en la base de datos en sus respectivos apartados. NOTA: En los posts se busca el título y el contenido, aunque sólo se refleje el link al post con su título.

b4e28d1543a7e1785790077c497e819a

Vista del post tras entrar a él, con las valoraciones debajo, opción de crear una nueva y de eliminar alguna existente:

image

Vista de creación de valoración en un post:

image

Pestaña de registro:

a6302fbd9582f06fb56f9318346d0040

Pestaña de inicio de sesión:

5cf3bb6c0b48f83c911b1f21290fd79c

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published