Este es el proyecto server de la plataforma de OpenFING.
- Node.js: v16
- Se recomienda la instalación de node con nvm, ya que le permite cambiar entre versiones fácilmente.
- npm: v6
- Es importante que la versión de npm sea la requerida aquí, ya que diferentes versiones pueden causar cambios al archivo package-lock.json. Se puede instalar esta versión de npm corriendo el comando
npm i -g npm@6
.
- Es importante que la versión de npm sea la requerida aquí, ya que diferentes versiones pueden causar cambios al archivo package-lock.json. Se puede instalar esta versión de npm corriendo el comando
- Docker: con docker-compose
- Clonar este repositorio y abrir una terminal dentro de la carpeta creada.
- Correr el comando
npm i
para instalar dependencias. - Crear un archivo .env dentro de la carpeta del proyecto. El archivo debe contener las mismas variables de entorno definidas en los archivos .env.app y .env.cli. Se puede empezar por correr el comando
node cli create-env-file
, y luego modificando los valores según necesite.
Antes de correr el código en sí, la base de datos y Keycloak deben estar encendidos y corriendo. Para crear la base de datos y el contenedor de Keycloak con los valored definidos en .env, correr el comando node cli init-docker
. Luego, para dejar los contenedores corriendo, usar el comando npm run docker-compose
.
Luego, correr el comando npm run start
para correr el servidor. Dependiendo en el valor de la variable PORT
en el archivo .env, el servidor estará escuchando en http://localhost:$PORT.
Al modificar algun archivo del servidor, parar la ejecución del comando npm run start
y correrlo nuevamente para que los cambios sean efectivos.
El GraphQL Playground es accesible en http://localhost:$PORT/graphql.
Aparte de la aplicación en sí, este proyecto contiene una utilidad de linea de comandos que podrás encontrar útil para el desarrollo. Para llamarla, correr node cli <command>
ubicado en la carpeta del proyecto. Para información sobre la herramienta, correr node cli --help
el cual listará los comandos disponibles. Por más información sobre un comando en específico, correr node cli <command> --help
donde <command> es el nombre de un comando de la lista anterior.