Giter Club home page Giter Club logo

analytics-ufcg / monitor-cidadao-dados Goto Github PK

View Code? Open in Web Editor NEW
9.0 8.0 0.0 98.84 MB

A camada de dados do Monitor Cidadão consiste em uma arquitetura que fornece meios para a extração e tratamento de dados provindos de diversas fontes do setor público.

Home Page: http://monitorcidadao.info/

License: GNU Affero General Public License v3.0

R 97.45% Makefile 1.64% Dockerfile 0.91%
transparencia dados camada-de-dados monitor-cidadao banco

monitor-cidadao-dados's Introduction

Monitor Cidadão - Camada de Dados

O Monitor Cidadão é um sistema desenvolvido através da parceria entre a CampinaTec e o laboratório Analytics, da Universidade Federal de Campina Grande-PB, com finalidade de possibilitar aos cidadãos o acompanhamento dos contratos realizados pelos municípios do estado da Paraíba.

Camada de Dados

A Camada de dados consiste em uma arquitetura que fornece meios para a extração e tratamento de dados provindos de diversas fontes. Essa estrutura é formada por quatro subcategorias distintas com suas próprias responsabilidades:

  • Fetch : responsável por buscar os dados em suas fontes;
  • Tradutor: responsável por traduzir os dados para um formato tabular - especialmente útil para dados que são disponibilizados em formato .csv;
  • Transformador: realiza manipulações nos dados como, por exemplo, joins;
  • Preditor: encapsula diversas funções para a realização das predições em torno dos contratos públicos.

Abaixo é apresentado o fluxo de dados geral das camadas citadas acima.

Fluxo de dados

Tecnologias/framework usadas

Desenvolvido em:

Setup

Os serviços deste módulo utilizam docker para configuração do ambiente e execução do script. Instale o docker, docker-compose e tenha certeza que você também tem o Make instalado.

Adicione os seguintes arquivos com variáveis de ambiente e credenciais:

Como usar?

Nesta camada o make é utilizado como facilitador para execução. Abaixo estão descritos os passos necessários para importar os dados para o banco de dados Analytics (também chamado de AL_DB) e Monitor Cidadão (também chamado de MC_DB):

Passos comuns a ambos os bancos:

  1. Faça o build das imagens necessárias com sudo make build;
  2. Crie e inicie os containers do docker com sudo make up;
  3. Obtenha os dados através do sudo make fetch-data. Nesta etapa você também pode testar a integridade dos dados obtidos utilizando os testes unitários de cada tabela com sudo docker exec -it fetcher sh -c "Rscript tests/<nome-da-tabela>.R";
  4. Traduza e transforme os dados colhidos sudo make transform-data;

Para o AL_DB:

  1. Crie as tabelas no banco AL_DB com sudo make feed-al-create;
  2. Agora importe os dados para as tabelas do banco com sudo make feed-al-import;
  3. Você pode verificar se a(s) tabela(s) estão no banco com sudo make feed-al-shell e \dt.

Geração das previsões:

  1. Gere as features da previsão com sudo make gera-feature vigencia=<encerrados, vigentes e todos> data_range_inicio=<2012-01-01> data_range_fim=<2018-01-01>;
  2. Gere o feature set da previsão com sudo make gera-feature-set tipo_construcao_features=<recentes>;
  3. Gere o experimento com as informações do risco com sudo make gera-experimento tipo_contrucao_feature_set=<recentes>.

Para o MC_DB:

  1. Crie as tabelas no banco MC_DB com sudo make feed-mc-create;
  2. Importe os dados das features para as tabelas do banco com sudo make feed-mc-import-feature;
  3. Importe os dados do features set para as tabelas do banco com sudo make feed-mc-import-feature-set;
  4. Agora importe os dados do experimento para as tabelas do banco com sudo make feed-mc-import-experimento;
  5. Você pode verificar se a(s) tabela(s) estão no banco com sudo make feed-mc-shell e \dt.

Caso você queira executar os comandos docker diretamente, confira o código correspondente a seu comando no arquivo Makefile. Abaixo estão todos os comandos disponíveis para serem executados com sudo make <Comando>:

Comando Descrição
help Mostra esta mensagem de ajuda
build Realiza o build das imagens com as dependências necessárias para a obtenção dos dados.
up Cria e inicia os containers.
stop Para todos os serviços.
clean-volumes Para e remove todos os volumes.
enter-fetcher-container Abre cli do container fetcher
fetch-data Obtem dados
enter-transformer-container Abre cli do container transformador
transform-data Traduz e transforma os dados colhidos
enter-feed-al-container Abre cli do container feed-al
feed-al-create Cria as tabelas do Banco de Dados Analytics
feed-al-import Importa dados para as tabelas do Banco de Dados Analytics
feed-al-clean Dropa as tabelas do Banco de Dados Analytics
feed-al-shell Acessa terminal do Banco de Dados Analytics
gera-feature Gera features
gera-feature-set Gera conjunto de features
gera-experimento Gera previsão de risco
enter-feed-mc-container Abre cli do container feed-mc
feed-mc-create Cria as tabelas do Banco de Dados Monitor Cidadão
feed-mc-import-feature Importa features para o Banco de dados Monitor Cidadão
feed-mc-import-feature-set Importa features set para o Banco de dados Monitor Cidadão
feed-mc-import-experimento Importa experimento para o Banco de dados Monitor Cidadão
feed-mc-clean Dropa as tabelas do Banco de Dados Monitor Cidadão
feed-mc-shell Acessa terminal do Banco de Dados Monitor Cidadão

License

GNU Affero General Public License v3.0 © Monitor Cidadão

monitor-cidadao-dados's People

Contributors

biabs1 avatar diegooalmeida avatar joaoarthurbm avatar joaquimcmh avatar matheushaleal avatar samarasss avatar talitalobo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.