-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #27 from analytics-ufcg/ajusta-README-e-remove-server
Ajusta README, adiciona a licence e remove server (arquivo morto)
- Loading branch information
Showing
14 changed files
with
736 additions
and
1,546 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | | | | ||
|
||
|
||
|
||
|
||
|
||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Oops, something went wrong.