Giter VIP home page Giter VIP logo

legislei's People

Contributors

brosquinha avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar

legislei's Issues

Timeout de 30s do Heroku

As requisição do Heroku tem limite de 30s. Assim, para gerar um relatório de um parlamentar, é necessário que o relatório seja obtido em um work em background.

Verificar presença de sessões

Obter a presença geral de cada sessão, inclusive de eventos ausentes, para determinar, por exemplo, se uma eventual ausência foi para obstrução.

API REST da BR1 pode retornar eventos repetidos

Hoje, estourou uma issue no Sentry (LEGISLEI-4) causada por uma falha na migration 003. O motivo dessa falha foi que aparentemente a API REST da Câmara dos Deputados pode retornar eventos repetidos (ou seja, o mesmo evento mais de uma vez). Para corrigir a falha apontada no Sentry, precisei manualmente corrigir os pontos de falha da migration.

Como o Legislei presume que os eventos são únicos, é necessário fazer uma verificação no retorno da API da Câmara para eliminar duplicatas. Um ponto de atenção, porém, é que acontece algumas vezes de uma das instâncias do evento duplicado ter como situação "Não Confirmada" e a(s) outra(s) outra situação definitiva. Dessa forma, é necessário eliminar as duplicatas dando preferência às instâncias "Não Confirmadas" antes de outras situações.

Corrigir votações da Câmara de Deputados

Foi reportado que os dados de votações da API da Câmara de Deputados não eram confiáveis, e agora as rotas foram retiradas do ar. Portanto, é preciso adaptar o relatório com essa nova realidade.

Atualizar dependências

A versão do Flask utilizada é antiga (até acionou um security alert no GitHub). Precisamos atualizá-la para acima da 1.0

Fazer migration com melhorias no banco de dados

Com a refatoração que tira lógica de negócio do web controller e substitui PyMongo por MongoEngine, a ideia agora é corrigir algumas coisas do banco de dados e escrever uma migration para prod. As mudanças pensadas são as seguintes:

  • Mudar tipo de dataInicial e dataFinal de Relatorio de string para DateTime;
  • Remover campo IdTemp de Relatorio;
  • Mudar tipo de dataInicial e dataFinal de Evento de string para DateTime;
  • Mudar tipo de dataAprentacao de Proposicao de string para DateTime;
  • Mover Inscricoes para um campo de Users.

Tratar erro de obtenção de relatório no scheduler

Se houver um erro ao obter relatório de qualquer parlamentar (como aconteceu nesse fds, em que o portal de dados abertos da ALESP estava fora do ar novamente), o scheduler é interrompido porque não há tratamento desse cenário de erro. Consertar isso!

Definir campos de erro nos schemas para falhas de obtenção de dados

Antes dos schemas definidos, eu usava o padrão [{'error': True}] para sinalizar que o campo em questão (pauta de um evento, uma proposição em particular, votações) não foi possível obter do servidor. Agora, com os schemas, preciso definir alguma flag para fazer essa sinalização.

Usar algum meio alternativo para obter o id de deputados novos da ALESP

Já que a ALESP não está corrigindo o bug em que a rota de deputados está retornando um id nulo para todos os deputados novatos, então temos que fazer uma gambiarra do nosso lado...

Uma ideia é consultar a página de um deputado através de https://www.al.sp.gov.br/alesp/deputado/?matricula=Matricula, e obter do código-fonte o id IdSPL dos links de normas estaduais e/ou proposições.

Reorganizar API no formato REST

Para fazer o app e para uma eventual reestruturação do front com algum framework (como React ou Angular), é necessário primeiro reestruturar a API da aplicação. Para tanto, o ideal seria fazer uma API seguindo os padrões REST. A lib indicada para facilitar essa construção e fornecer documentação automática é a flask-restplus.

Escolher uma framework de front?

O front já está começando a ficar complexo a ponto de um framework (Angular, Vue.js) cair bem. Porém, a consequência disso é que o aplicativo precisará de mais de um container Docker, e o Heroku só fornece um container web por projeto.

Detalhar informações nas exceções das libs das câmaras

Essa semana (27/07/2019), a API REST da Câmara dos Deputados apresentou um problema na rota /eventos (detalhes aqui). Para identificar o problema, porém, precisei fazer algumas modificações na CamaraDeputadosConnectionError para identificar direitinho a rota impactada. O ideal seria que essa e todas as demais classes de exceptions de todas as libs já captassem todas as informações necessárias para um debug em prod. Também preciso de uma forma de guardar o log disso tudo.

Escrever módulos de mock dos SDKs

Adicionar aos SDKs a possibilidade de mockar (stubar mais precisamente) as chamadas de API, visando aos testes (lembrar dos stubs do boto3).

Obter resultado de reunião de comissão

Para começar a resolver a questão da comissão do PL Escola s/ Partido da última semana de Outubro de 2018. Assim, precisa-se obter o resultado de reuniões da Câmara dos Deputados de comissões através da antiga API, o webservice Orgãos.

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.