Cudú es una aplicación web que permite almacenar y gestionar de forma segura y centralizada datos de agrupaciones juveniles. Cudú ha sido desarrollado por la Federació d'Escoltisme Valencià y legalmente se distribuye bajo licencia AGPLv3.
Capturas de pantalla / Screenshots
Para generar el frontend
necesitas tener instalado Compass y Bower. Hemos incluido los archivos necesarios para que puedas obtener las dependencias con npm y bundler:
$ cd frontend
$ yarn install
$ bundler install
Una vez tengas todo disponible necesitas generar las traducciones de las vistas, el CSS resultante de Sass/Compass y una vez completado puedes arrancar el frontend
:
$ node traducir.js
$ compass compile
$ node devserver.js
Pasados unos segundos Cudú estará disponible con datos de prueba en http://localhost:3000
. El frontend
se ha desarrollado usando AngularJS, TypeScript y Sass, entre otros.
El servidor de desarrollo es una aplicación Node.js con Express creada para emular la configuración del entorno de producción, pero no es estrictamente necesaria. Cualquier servidor como Nginx o Apache puede utilizarse para servir el frontend
.
Para arrancar el backend
únicamente necesitas tener instalado JDK 8, el resto de dependencias y librerías se descargarán automáticamente en la primera ejecución. Tres sencillos pasos:
$ cd backend
$ ./gradlew build
$ java -jar ./build/libs/cudu-2.0.7.war
$ java -jar ./build/libs/cudu-2.3.0.jar
Recuerda que los resultados de las pruebas se generan en build/reports/tests
.
Una vez arrancado el API REST escucha peticiones en http://localhost:8080
. El pequeño servidor de Node.js que hemos utilizado antes enrutará las peticiones realizadas a http://localhost:3000/api
a los servicios del backend en el puerto 8080
. Puedes comprobar que ambos funcionan mediate:
$ curl localhost:8080/health
$ curl localhost:3000/api/health
Ambas peticiones deberían devolver {"status":"UP"}
.
El servicio REST está desarrollado utilizando Spring y JPA. Aunque se soportan múltiples bases de datos, recomendamos utilizar PostgreSQL. Por defecto viene configurado para usar HSQLDB en memoria y crear todas las tablas necesarias al inicio.
Recuerda que puedes generar archivos de proyecto para distintos IDEs:
$ ./gradlew idea
$ ./gradlew eclipse
Puedes generar una base de datos desde cero usando dos scripts en groovy que hemos preparado:
$ groovy database.groovy -m cudu_playground
$ groovy populate.groovy -d cudu_playground
Cudú utiliza Flyway para mantener las actualizaciones de la base de datos. Es posible ejecutarlas directamente desde Gradle:
$ createdb cudu_dev
$ ./gradlew flywayMigrate -Dflyway.url=jdbc:postgresql://localhost:5432/cudu_dev
Los scripts de migración siguen las convenciones de nombres de Flyway y residen en la carpeta backend/src/main/resources/db/migration
.
Para comprobar el estado de una base de datos existente puedes utilizar la opción flywayInfo
en lugar de flywayMigrate
. Hay más información en la documentación de Flyway para Gradle.
Para algunas operaciones utilizamos jOOQ. Si necesitas regenerar el metamodelo a partir de las migraciones de bases de datos, puedes ejecutar:
$ groovy database.groovy -j org.scoutsfev.cudu.dd
Se creará una base de datos temporal sobre la que ejecutar las migraciones con Flyway. La base de datos se elimina una vez completa el proceso.
Federació d'Escoltisme Valencià
c/ Balmes, 17. 46001 València, SPAIN
Télefono +34 963 153 240
http://www.scoutsfev.org
Siguenos en Twitter @scoutsfev