¿Que es JHipster?

Es un proyecto open source con una comunidad en GitHub muy activa. JHipster como define en su página web, es un generador de código que utiliza Yeoman, que nos permite generar, desarrollar y desplegar aplicaciones y microservicios, basadas en Spring-boot y AngulasJS de una forma automatizada y ágil.

jhipster-spring-angular-yeoman

En este post vamos a crear una aplicación paso a paso con JHipster, veremos de primera mano las ventajas que nos aporta.

Primeros Pasos

Comenzaremos por preparar el entorno y los programas que necesitaremos.

  1. Instalar Java 8, si no lo tenemos ya.
  2. Instalar Git.
  3. Instalar Node.js, la útlima versión LTS.
  4. Instalar Yarm.
  5. Instalar Yeoman con el comando: yarn global add yo
  6. Instalar JHipster con el comando: yarn global add generator-jhipster

Con estos pasos ya tenemos el entorno para empezar nuestra primera aplicación, creamos una carpeta con el nombre que queramos darle.

mkdir color4personality
cd color4personality

Como ejemplo he decicido crear una app que te diria el color de la personaidad, basandose en la teoria de "Los cuatro colores de las personalidades".
Como lo vamos hacer, pues lo veremos un poco mas adelante, de momento vamos a crear el esqueleto de la aplicación.

Vamos a situarnos en la carpeta que hemos creado, donde JHipster creara los archivos, ejecutamos el comando jhipster

color4personality\ jhipster

Ahora JHipster nos hara una serie de preguntas que le ayudaran a crear el esqueleto de la aplicación según lo que necesitamos.

jhipster_01

Esta primera pregunta trata si vamos a crear una aplicación sencilla y monolitica, todo en uno o si queremos hacer una aplicación como microservicio. En este caso como la aplicación es pequeaña y estamos empezando crearemos una aplicación de tipo mololitico.

jhipster_02

Esta pregunta es bastante dificil, tenemos que elgir el nombre de la aplicación, yo he elegido "color4personality" es poco original, pero apropiado.

jhipster_03

Lo siguiente es el nombre del paquete java donde colgaran todos los ficheros.

jhipster_04

Por el momento no nos interesa el uso de JHipster Registry, ya que es un aplicación para gestionar el escalado y monitorización, esta es muy util para cuando hagamos aplcaciones en microservicios. Asi que de momento le diremos que No.

jhipster_05

Como vamos a autentificar a los usuarios de la aplicación, por el momento vamos por lo sencillo y es JWT. En otros capitulos, veremos los otros sistemas de autentificación.

jhipster_06

El tipo de motor de base de datos, podemos elegir si usar una base de datos SQL o una orientada a objetos como MongoDb. Yo me siento mas comodo con SQl, pero considerar que la capa de base de datos queda abstraida.

jhipster_07

Que motor de base de datos usaremos para la aplicación de producción, si si diferecia dos perfiles producción y desarrollo. "aplausos!!!"
Bueno creo que usare Mysql

jhipster_08

Claro esta nos pregunta por la base de datos de desarrollo, en mi caso elegire H2, es una base de datos en un fichero, muy sencilla y no neceistamos instalar nada.

jhipster_09

Si queremos una cache local o distribuidas, mmmm... creo que con la local sera suficiente, para este tipo de aplicación.

jhipster_10

Queremos usar el cache de segundo nivel de Hibernate, ¿porque no? nuestra aplicación sera más rápida.

jhipster_11

Si queremos usar Maven o Gradle, uff lo siento soy mas de gradle.

jhipster_12

Otros modulos que podemos configurar, de momento me quedo con el "Social Login" creo que es interesante facilitar el registro a los usuarios y que puedan registrars usando su cuenta de facebook, gmail o twitter.

jhipster_13

Le toca el turno a las preguntas pra el Front, y en este caso uaremos Angular 5.!

jhipster_14

Para este proyecto no usaremos SASS

jhipster_15

OOOh! Nuestra aplicación va ser multidioma ? y por que no al menos Español e Ingles estaria bien.

jhipster_16

Por defecto usa JUnit y Karma para los test unitarios, por mi parte ya me siento comodos con estos.

jhipster_17

JHipster dispone de un MarketPlace donde otros desarrolladores pueden publicar otros generados que pueden sernos utiles, de momento nos apañamos con el JHipster a secas.

Esta es la ultima pregunta, en este momento JHipster empieza a hacer su magia negra, tenemos que tener algo de paciencia, ya que tiene que descargar todas las librerias y generar la estructura del proyecto, es momento de ir a por el cafe!

jhipster_18

Ya tenemos nuestro proyecto generado, tenemos dos parte el backend con spring-boot y el frontend con AngularJs.

Para arrancar la parte de backend:

./gradlew

y para arrancar la parte de front, lo podemo ahacer con el comando:

yarn start

En en el navegador tendremos ya la base para nuestra aplicación, con la autentificación de usuarios, idiomas y hasta un monitor de rendimiento y logs.

Es genial!!! ya tenemos la base para continuar y centrarnos en el desarrollo de la aplicación. En el siguiente capitulo veremos como crear las entidades para almacenar los datos que necesitamos.

El codigo fuente de la aplicación lo teneis en GitHub Color4Personality

Os dejo algunas capturas de pantalla. Os epsero en el siguiente capitulo.

jhipster_19

jhipster_20

jhipster_21

jhipster_22