Dashboard de la variacion porcentual de los precios en Argentina. Se incluyen los distintos sectores de la economia para la region GBA.
Este dashboard se alimenta de los datos suministrados por el Indec.
Proyecto sobre un aplicacion bs4Dash utilizando datos del Indec para representar la variacion porcentual de los precios en distintos sectores en Argentina
La idea principal es poder tener datos actualizados en el Dashboard todos los meses, por lo tanto, se estara utilizando el flujo de trabajos de github actions para ir actualizando los datos.
Se va a utilizar Docker para crear una imagen y Github Actions para automatizar el dashboard.
.
├── bash
├── docker-compose.yml
├── app.R
├── downloadData.R
├── .github
└── docker
- La carpeta
bash
se usa para almacenar scripts de bash que se usan en el flujo de trabajo de Acciones de Github. docker-compose.yml
se utiliza para setear volumes, imagen y puertos para ejecutar el trabajo.app.R
contiene el trabajo principal.downloadData.R
contiene el ETL..github
contiene el WorkFlow.docker
contiene todos los archivos de configuración de imágenes de Docker (por ejemplo, Dockerfile y algunos archivos auxiliares)
Github Actions es una herramienta de CI/CD que permite programar y activar trabajos (o scripts). Se puede utilizar para:
- Automatizacion de ETL, Dashboards e Informes.
Para este trabajo se utiliza el siguiente workflow:
- El dashboard se actualiza el dia 1, 10 y 17 del mes a las 16 y 17 hs argentina (UTC-3)
name: Dashboard Refresh
on:
push:
branches: [main]
schedule:
- cron: '0 19,20 1,12,17 * *' # el dia 1,10 y 17 del mes a las 16 y 17 hs argentina
Se puede crear una nueva imagen en base al Dockerfile existente como tambien agregar nuevas dependencias y crear una imagen con un tag. En el caso de que se use la imagen mgaloto/bs4dashiny:01 esta misma ya cuenta con las dependencias para ejecutar el trabajo.
Para correr el script en local hay que ejecutar el siguiente comando de docker compose:
docker-compose up -d
En el puerto 8787 se va a poder ingresar a R y ejecutar el index.Rmd (Recordar previamente modificar el docker-compose.yml con el directorio local del trabajo.)
Para darle stop al contenedor:
docker-compose down