Skip to content

Commit

Permalink
Merge pull request #27 from analytics-ufcg/ajusta-README-e-remove-server
Browse files Browse the repository at this point in the history
Ajusta README, adiciona a licence e remove server (arquivo morto)
  • Loading branch information
biabs1 authored Jun 29, 2020
2 parents dd692ff + 2f02159 commit 9141a6c
Show file tree
Hide file tree
Showing 14 changed files with 736 additions and 1,546 deletions.
661 changes: 661 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

82 changes: 46 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,65 @@

# Monitor Cidadão
## 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.

Repositório do projeto Monitor Cidadão. Ufcg + Laboratório Analytics + CampinaTec.
## Camada de Dados

## Módulo de Busca e Processamento
Os serviços deste módulo utilizam docker para configuração do ambiente e execução do script.
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:

Instale o [docker](https://docs.docker.com/install/) e o [docker-compose](https://docs.docker.com/compose/install/). Tenha certeza que você também tem o [Make](https://www.gnu.org/software/make/) instalado.
* **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.

Obs: todos comandos citados nesse README utilizam o make como facilitador para execução. Caso você queira executar os comandos docker diretamente confira o código correspondende a seu comando no arquivo `Makefile` na raiz desse repositório.
Abaixo é apresentado o fluxo de dados geral das camadas citadas acima.

### Setup
![Fluxo de dados](https://github.com/analytics-ufcg/monitor-cidadao/blob/dev/img/data-pipeline.png?raw=true)

#### Acesso à VM

Para que nossos serviços tenham o devido acesso aos dados (hospedados em uma Máquina Virtual remota e privada), preencha os arquivos em `fetcher/credenciais` com as credenciais e chaves necessárias.
## Tecnologias/framework usadas

#### Acesso aos Bancos
<b>Desenvolvido em: </b>
- [R](https://www.r-project.org/)

Crie uma cópia do arquivo .env.sample no diretório raiz desse repositório e renomeie para .env (deve também estar no diretório raiz desse repositório)
## Setup
Os serviços deste módulo utilizam docker para configuração do ambiente e execução do script. Instale o [docker](https://docs.docker.com/install/), [docker-compose](https://docs.docker.com/compose/install/) e tenha certeza que você também tem o [Make](https://www.gnu.org/software/make/) instalado.

Preencha as variáveis contidas no .env.sample também para o .env. Altere os valores conforme sua necessidade.
Adicione os seguintes arquivos com variáveis de ambiente e credenciais:

- Adicione o arquivo [*.env*](https://doc-08-6s-docs.googleusercontent.com/docs/securesc/qph2akfo04c7b0qviq0omfmbqectvj9r/90pf21leaqv39j5e5hjskd5tf70b2ekb/1593364725000/02066499184667500127/02066499184667500127/1cnKe1G0nO0SukbyHM06iVZ0t1CcPv0H1?e=download&authuser=0&nonce=v1c2japd9r2tu&user=02066499184667500127&hash=kddfpumuv1enicl51mbg80p5a7f5fdj0) na pasta raiz do projeto;
- Adicione os arquivos [*config*, *id_rsa*, *id_rsa.pub* e *known_hosts*](https://drive.google.com/drive/u/0/folders/1QgxQlKgNCvGtUrFAXSl-mm0S3z2GZ2XV) na pasta fetcher/credenciais.

#### Serviços

Faça o build das imagens docker com as dependências:
## 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):

sudo make build
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`;
5. Crie as tabelas no banco AL_DB com `sudo make feed-al-create`;
6. Agora importe os dados para as tabelas do banco com `sudo make feed-al-import`;
7. Você pode verificar se a(s) tabela(s) estão no banco com `sudo make feed-al-shell` e `\dt`.

Execute os serviços:
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

sudo make run

## Executando back-end (server)

A execução do back-end ainda não está sendo feita com o auxílio do docker. Dessa forma, antes de tudo, garanta que você tenha instalado em sua máquina o **nodejs**, **npm** e o **nodemon**.

Adicione as informações do SQLServer no .env (essas informações estão no arquivo '07 - Instruções e Acessos Monitor Cidadão') .
- SQLSERVER_SAGRES19_HOST
- SQLSERVER_SAGRES19_Database
- SQLSERVER_SAGRES19_USER
- SQLSERVER_SAGRES19_PASS
- SQLSERVER_SAGRES19_PORT


Agora, para executar, bastar entrar na pasta **server** via terminal e inserir o comando:
> nodemon
Você pode testar se tudo deu certo com o link abaixo:
> [http://localhost:3000/api/licitacoes](http://localhost:3000/api/licitacoes)

## License

GNU Affero General Public License v3.0 © [Monitor Cidadão]()
32 changes: 29 additions & 3 deletions fetcher/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
# Fetcher

Este diretório contém as funções e rotinas necessárias para a busca e obtenção dos dados utilizados na aplicação Monitor Cidadão, compondo a camada *Fetcher* da mesma.
# Fetcher

Este diretório contém as funções e rotinas necessárias para a busca e obtenção dos dados utilizados na aplicação Monitor Cidadão, compondo a camada *Fetcher* da mesma.

Os dados serão salvos sem qualquer tratamento para posterior processamento.

## Bases de dados utilizadas para o desenvolvimento dos modelos do Monitor Cidadão

### SAGRES

O Sistema de Acompanhamento da Gestão e Recursos da Sociedade (SAGRES) é um sistema voltado para o acompanhamento de atos (eg. compras públicas) dos gestores públicos, e permite o acesso de informações sobre a execução orçamentária e financeira da administração estadual, prefeituras e câmaras municipais. Os dados nele contidos estão disponibilizados de forma bruta, ou seja, conforme foram recebidos.

Abaixo está a listagem das tabelas adicionadas ([seguindo as convenções de nomenclaturas](https://martendb.io/documentation/postgres/naming/)):

| SAGRES| Fetcher | Tradutor | Transformador | Script Feed | AL_DB|
|:-:|:-:|:-:|:-:|:-:|:-:|
| Aditivos | x | x | x | | |
| Codigo_ElementoDespesa | x | x | x | | |
| Codigo_Funcao | x | x | x | | |
| Codigo_Municipios | x | x | x | x | municipio |
| Codigo_Subelemento | x | x | x | | |
| Codigo_Subfuncao | x | x | x | | |
| Codigo_Unidade_Gestora | x | x | x | | |
| Contratos |x | x | x | x | contrato |
| Convenios | x | x | x | | |
| Empenhos | x | x | x | | |
| Licitacao | x | x | x | x | licitacao |
| Pagamentos | x | x | x | | |
| RegimeExecucao | x | x | x | | |
| Tipo_Modalidade_Licitacao | x | x | x | | |
| Tipo_Objeto_Licitacao | x | x | x | | |






Binary file added img/data-pipeline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed server/.DS_Store
Binary file not shown.
Loading

0 comments on commit 9141a6c

Please sign in to comment.