Skip to content

🌹 Aplicaciones de narrativa digital y visualización de datos sobre COVID-19 en Colombia.

Notifications You must be signed in to change notification settings

enflujo/colev-api

Repository files navigation

Colev API

Estilo Código Despliegue Tamaño Licencia

Aplicación para extraer, procesar y administrar los datos sobre Covid-19 en Colombia para las diferentes aplicaciones de investigación en el grupo Colev de la Universidad de los Andes.

Aplicaciones

  • Base de datos: Mongo
  • Cache: Redis
  • Api: NodeJS (Fastify)
  • Sitio web: Vue

Contenedores de Docker

Desarrollo local

Para desarrollo local incluimos mongo-express (Ver docker-compose.desarrollo.yml).

Iniciar contenedores con:

docker compose -f docker-compose.desarrollo.yml up -d

Producción (comando en servidor)

En modo de producción no se necesita mongo-express (Ver docker-compose.yml)

docker compose up -d

Proceso de validación

flowchart LR
    A[Datos crudos de INS] --> NodeJS
    NodeJS --> Validación
    Validación --> Errata
    Validación --> B[Datos validados MongoDB]
Loading

Instalación

yarn

Desarrollo local

Crear Token

  1. Ingresar o registrarse en el portal de datos abiertos de Colombia Tokens de App https://www.datos.gov.co/profile/edit/developer_settings.
  2. En la sección "Tokens de App", seleccionar la opción "Crear nueva aplicación".
  3. Luego de llenar la información de la aplicación, copiar el token público que se encuentra en "Autentificador de la aplicación"
  4. En los archivos locales, hacer una copia del archivo .env.ejemplo y llamarlo .env. Allí pegar el Token que acaba de copiar en la variable TOKEN=

o crear el archivo .env directamente con la variable:

TOKEN=.....

Iniciar en modo de desarrollo

yarn dev

Rutas

Para acceder a las diferentes fuentes de datos, ver las rutas que se definen en el archivo ./servidor.js. Cada ruta comienza con servidor.get('/' ....

Por ejemplo, en servidor.js esta la siguiente ruta que se puede acceder desde localhost:3000/descriptores:

servidor.get('/descriptores', async (request, reply) => {
  const descriptores = await readFile('./datos/descriptores.json');

  return JSON.parse(descriptores);
});

Revisar 1 caso por id: https://www.datos.gov.co/resource/gt2j-8ykr.json?id_de_caso=5666290

Agregar paquetes a las aplicaciones

Este repositorio contiene varias aplicaciones usando Yarn Worspaces. Para instalar paquetes de NPM se debe dirigir a la aplicación que le corresponde. Por ejemplo:

Este comando...

yarn add ...

Se vuelve esto para instalar un paquete a la aplicación llamada servidor

 yarn workspace servidor add ...

Y este para la aplicación sitio

 yarn workspace sitio add ...
  • paleta de color
  • hover mostrar tiempo
  • mostrar porcentaje o valor que le da el tamaño a las palabras

Para definir la cantidad de entradas por página en el extractor de datos de INS se puede pasar la variable ambiente CANTIDAD

CANTIDAD=500 yarn ins

También se puede definir la página de inicio con variable PAGINA

CANTIDAD=500 PAGINA=230 yarn ins