labcabrera / roomboo

Room booking application
GNU General Public License v3.0
0 stars 0 forks source link
hateoas jwt mongodb spring-boot

= Roomboo

image:https://travis-ci.org/labcabrera/roomboo.svg?branch=master["Build Status", link="https://travis-ci.org/labcabrera/roomboo"] image:https://api.codacy.com/project/badge/Grade/018b2390426f4138aa16f2548c75f8bc["Codacy code quality", link="https://www.codacy.com/app/lab.cabrera/roomboo?utm_source=github.com&utm_medium=referral&utm_content=labcabrera/roomboo&utm_campaign=Badge_Grade"]

== Introducción

Roomboo es una aplicación de reserva de salas de reuniones. Este proyecto provee de una API REST ofreciendo las siguientes funcionalidades:

== Requisitos

== Docker

La imagen docker de la api es https://hub.docker.com/r/labcabrera/roomboo-api/[labcabrera/roomboo-api].

Para arrancar el contenedor simplemente tendremos que ejecutar:


docker pull labcabrera/roomboo-api

docker run -i -p 8080:8080 -t labcabrera/roomboo-api

Argumentos:

[options="headers"] |=== |Nombre | Valor por defecto | Descripción | PORT | 8080 | Puerto de la aplicación. | SPRING_PROFILES_ACTIVE | local | Perfil de Spring. | ENV_MONGO_HOST | localhost | Nombre del host de MongoDB. |ENV_SMTP_USERNAME | undefined | Usuario de envío de correo. |ENV_SMTP_PASSWORD | undefined | Password de envío de correo. |ENV_SMTP_HOST | smtp.gmail.com | Servidor de correo. |ENV_SMTP_PORT | 587 | Puerto del servidor de correo. |===

Por ejemplo, para ejecutar la aplicación en el puerto 8000 con el perfil sin seguridad ejecutaremos:


docker run -i -p 8000:8000 -t \ -e ENV_MONGO_HOST='172.17.0.2' \ -e PORT='8000' \ -e SPRING_PROFILES_ACTIVE='local,unsecured' \ labcabrera/roomboo-api

En el caso de ejecutar la aplicación contra una imagen local de MongoDB deberemos obtener la IP que tiene utilizando el comando


docker network inspect ${network}

obteniendo una salida similar a la siguiente:

[source,json]

"Containers": {
    "db94ced0c3dd621f1ef71dd648dce23c6aec5ae4adbf26e1ab98764c73122b74": {
        "Name": "mongo-roomboo",
        "EndpointID": "84fc41e50ce4f7d24d90774f5f50bc710b5250d71afb87174f0ce511cbda457d",
        "MacAddress": "02:42:ac:11:00:02",
        "IPv4Address": "172.17.0.2/16",
        "IPv6Address": ""
    }
},

== Perfiles de ejecución

[options="headers"] |=== | Nombre | Descripción | local | Perfil local de la aplicación. | unsecured | Deshabilita la seguridad basada en JWT. | mail | Habilita el envío de notificaciones por correo. | force-initialization | Elimina todos los datos presentes en la aplicación y carga el juego inicial de datos de ejemplo. | actuator | Habilita todos los endpoints de Spring Boot Actuator. |===

== Stack

== Referencias