Giter Club home page Giter Club logo

diferentonas-server's Introduction

Build Status

Diferentonas

Só minha cidade que investe verba federal assim?

Usamos dados dos convênios que os municípios celebram com o governo federal e a sua execução, cruzados com dados socioeconômicos sobre os municípios do Brasil para examinar no que uma cidade é diferentona com relação aos convênios que celebrou com o governo federal. Melhor explicado aqui: https://vimeo.com/162919268 .

Este repositório tem nosso servidor. Um cliente Ionic existe neste outro repositório.

Participe

O Diferentonas está em pleno desenvolvimento. Mantemos o nossos planos nos issues do github, inclusive com um roadmap.

A pilha de tecnologias que usamos para prover a API RESTful do servidor é:

  • Play Framework (2.5) com JPA / Hibernate
  • Postgres.

O pré-processamento dos dados para o BD é feito em R + Bash.

Para rodar o servidor

Você precisará de um postgres instalado na sua máquina, com usuário e senha padrão. Crie nele um bd chamado diferentonas.

Rode ./activator run e seu servidor escutará na porta 9000. Os endpoints REST são os expostos em conf/routes.

Caso você queira colocar seu servidor no Heroku, a configuração está pronta no /Procfile.

Testes automáticos

Java: ./activator test

Para gerar os dados de criação ou atualização do BD a partir dos dados públicos

É preciso ter os pacotes R necessários instalados. No terminal R:

pks = c("tidyverse", "reshape2", "futile.logger", "FastKNN", "testthat")
install.packages(pks, dependencies = TRUE, repos = "http://cran.rstudio.com/")

Com os pacotes, no bash:

dados-externos/cria_snapshot_completo.sh dist/data

O script criará os arquivos necessários para povoar ou atualizar o BD: um com as iniciativas dos municípios e outro com os scores de diferentices calculados.

diferentonas-server's People

Contributors

iararibeiro avatar jeffersonrpn avatar luizaugustomm avatar nazareno avatar ricardoas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

diferentonas-server's Issues

F02 - coaching geral

Como funcionário do governo, envio uma mensagem de coaching a todos os usuários do sistema com dicas ou chamado à ação (por exemplo, "é época de mudança de prefeitos, atenção para isso e aquio"), para ajudar na mobilização e engajamento dos usuários.

BD de teste

Seria ótimo usar nos testes de unidade um BD menor que fosse zerado e repovoado a cada teste que queira usar o BD, e que não bagunçasse o BD usado no activator run.

Comentários em novidades da cidade

Na minha opinião, os comentários dos usuários em todas as iniciativas da cidade não deveriam ser mostrados nas novidades da cidade, pois deixa muito poluído este espaço.

Acho que deveríamos exibir apenas as atualizações de status das áreas, novas iniciativas ou atualizações de iniciativas. Se o usuário quisesse ver as discussões sobre determinada iniciativa, deveria ir na página de discussões dela.

Warnings em consolida_siafi.R siafi/*csv

Ao executar via RScript com muitos arquivos, vemos alguns Warning: unknown column: Número Convênio. Porém não consegui reproduzir no RStudio, e não consigo ver nenhum efeito colateral. Mas é uma boa se livrar das warnings.

F14 - termos mais comuns

Como cidadão, ao navegar no sistema, vejo os termos técnicos (eg. convênio, transferência, etc.) substituídos por palavras mais comuns, para que assim a interface me seja mais inteligível.

Erros ao espelhar o BD local no Heroku

Ao executar util/localbd2heroku.sh:

pg_restore: [archiver (db)] could not execute query: ERROR: unrecognized configuration parameter "row_security"
Command was: SET row_security = off;

pg_restore: creating SCHEMA "public"
pg_restore: creating COMMENT "SCHEMA public"
pg_restore: creating EXTENSION "plpgsql"
pg_restore: creating COMMENT "EXTENSION plpgsql"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2413; 0 0 COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql
Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';

...

WARNING: errors ignored on restore: 2

Tudo parece funcionar, mas seria melhor zero erros...

F13 - tradução do tema da iniciativa

Como cidadão, ao escolher uma cidade, eu visualizo as diferentices de uma cidade catalogadas segundo a função referente à iniciativa, para que assim possa entender melhor a relação entre as diferentices e meu dia a dia.

Municípios no SICONV com nomes que não existem no IBGE

Temos 17 municípios hoje que aparecem nos convênios do SICONV que não existem no IBGE. Por isso, os convênios desses municípios hoje não aparecem. 3 que verifiquei são municípios que ou trocaram de nome (São Miguel dos Touros / São Miguel do Gostoso) ou tem grafias diferentes na administração pública e no ibge (ex Mogi/Moji das Cruzes - SP)

municipios-faltando-ibge.txt

Atualização decentralizada e tolerante a falhas

Implementar o job de atualização de dados (obtenção do SICONV/SIAFI e inserção no BD) como um trabalho decentralizado dos nós que têm servidores web rodando.

Pra isso, cada nó web deve escolher um horário de atualização. Nesse horário, ele vê se o dado do dia atual já foi colocado no BD. Se não foi, ele coloca e marca isso no BD.

Inconsistência de dados em Batalha das Diferentonas

Fiz a seguinte comparação usando a versão 1.0.0:
screenshot_20161212-115951

Achei o valor de 51.9 Milhões altos e cliquei para investigar. O resultado foi estranho:
screenshot_20161212-120005

Ou seja, enquanto numa tela o valor era altíssimo, na outra foi zero!

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.