SlideShare uma empresa Scribd logo
1 de 26
Controle de Combustíveis
Programa de Inovação Cívica TCE/PR
Essa Apresentação
• Objetivos
• Informar ao pessoal do TCE/PR e à comunidade a respeito da
estruturação do aplicativo de Controle de Combustível,
• Indicar localização das fontes de dados, códigos e ferramentas que
foram usados na elaboração da versão atual,
• Debater sobre as limitações desafios encontrados durante o
desenvolvimento, incentivar outros agentes a colaborar e dar
continuidade ao trabalho.
Acesso
• http://inova.tce.pr.gov.br/
Fontes de dados
• Arquivos PIT
• https://servicos.tce.pr.gov.br/PIT_Arquivos/201x_PIT_TodosArquivos.zip
• Atualizado periodicamente pela equipe do TCE, substituir acima 201x
por 2013 ou outro ano, até 2017.
• Os arquivos PIT compreendem diferentes fontes de dados, sendo que
para o aplicativo atual são aproveitados apenas os que seguem o
padrão:
• ~/2017_PIT_TodosArquivos/*Combustivel.zip
Fontes de dados
• Arquivo IBGE
• Formato csv, incluído no código da aplicação.
• Contém dados dos municípios paranaenses, usados para calcular
gastos por habitante e gasto por área.
• Convém atualizar de acordo com mudanças no site do IBGE.
Distribuição
• tce-com-3: requerido para uso em
produção,
• InovaTCE17/MongoDB: banco de
dados,
• tce-comb-etl: pode ser usado
somente para gerar e inicializar o
banco de dados,
Código fonte
• tce-com-3:
• https://gitlab.com/inovatcepr/tce-
comb-3
• git clone
https://gitlab.com/inovatcepr/tce-
comb-3.git
Código fonte
• tce-comb-etl:
• https://github.com/iservport/tce-
comb-etl
• git clone
https://github.com/iservport/tce-
comb-etl.git
Licenças
• O código tce-com-3 é distribuído com a licença GPL v. 3.0.
Licenças
• O código tce-comb-etl é distribuído com a licença MIT.
Como Contribuir
• Instale e inicie uma instância local de MongoDb - Community Edition. Ela será
necessária para os testes. Durante o desenvolvimento foi usada a versão 3.6.
• https://docs.mongodb.com/manual/installation/
Como Contribuir
• Instale também:
• Java 1.8+: https://www.java.com/en/download/help/download_options.xml
• Scala 2.11+ e sbt 0.13+: https://www.scala-lang.org/download/
• Prefira a instalação via IntelliJ, conforme instruções acima, caso ainda não tenha
uma IDE Scala.
Como Contribuir
• As demais dependências serão resolvidas e descarregadas pela ferramenta
de construção Scala - sbt. Isso inclui:
• Apache Spark, usado na ETL,
• Lightbend Akka, Akka Streaming e Alpakka, usados na transformação dos
dados.
• Spring Boot, para injeção de dependências e construção de microserviços.
• Plugins para distribuição em contêineres Docker.
• Você pode ter que instalar também o Docker durante os testes.
Modelo Híbrido
• A aplicação que inclui o front-end, tce-com-3, é construída segundo um
modelo híbrido, i.e., é construída em conjunto com o back-end.
• Essa estratégia simplifica a distribuição via contêiners Docker.
• Utiliza webjars, dispensando o uso de node.js, npm ou yarn.
• Cada módulo é uma SPA - Single Page Application.
• Toda a construção é centralizada pela ferramenta sbt.
Modelo Híbrido
• As dependências do front-end incluem:
• Freemarker 2.3.x
• Twitter Bootstrap 3.7.x
• AngularJs 1.6.x
Testando a aplicação
• Baixe os dados do TCE para 2017 e expanda os arquivos.
• Instale e rode a aplicação tce-comb-etl
• Verifique se o banco de dados MongoDB está acessível durante a execução,
• Caso precise, ajuste as configurações em /src/main/resources/application.conf
• Para rodar, use o comando sbt run na pasta raíz do projeto.
• O processamento dos dados pode levar cerca de 5 minutos.
Testando a aplicação
• Instale e rode a aplicação tce-com-3
• Verifique se o banco de dados MongoDB foi atualizado na etapa anterior,
• Caso precise, ajuste as configurações em /src/main/resources/application.yaml
• Para rodar, use o comando sbt run na pasta raíz do projeto.
• Acesse em http://localhost:8081
Distribuição
• A distribuição no servidor do TCE/PR foi realizada com auxílio de docker-
compose,
• A distribuição inicial foi realizada via Kubernetes, os arquivos de
configuração para essa opção encontram-se na pasta k8s do projeto.
• Tanto o Docker Compose como Kubernetes utilizam uma imagem
depositada em um servidor remoto, que precisa se manter atualizada
sempre que uma nova versão é liberada.
Código
• Estrutura típica de um projeto
JVM + maven/sbt/gradle
• Pasta src, subpastas src/main e
src/test, cada uma delas
divididas em resources (front-
end) e scala (back-end).
• Pacote pr.tce.comb com sub-
pacotes separados por
interesses.
Código
• Separação de interesses:
• Controladores
• Serviços
• Repositório
• Domínio
Distribuição
• Para atualizar a imagem Docker, no projeto tce-com-3, use sbt docker:install:
• Confira o resultado em https://hub.docker.com/r/iservport/tce-comb-3/
Instalação no servidor do TCE/PR
Agradecimentos
Obrigado!

Mais conteúdo relacionado

Semelhante a Apresentação do Aplicativo de Controle de Combustíveis

ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Projeto arrastão projeto fábrica de software
Projeto arrastão   projeto fábrica de softwareProjeto arrastão   projeto fábrica de software
Projeto arrastão projeto fábrica de softwareAlan Correa Morais
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018Graziella Bonizi
 
Poco Bibliotecas C++
Poco Bibliotecas C++Poco Bibliotecas C++
Poco Bibliotecas C++Uilian Ries
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013SpinEngenharia
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em PortuguêsOtavio Salvador
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 

Semelhante a Apresentação do Aplicativo de Controle de Combustíveis (20)

ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Cake Php
Cake PhpCake Php
Cake Php
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Aplicativo aula03
Aplicativo aula03Aplicativo aula03
Aplicativo aula03
 
Projeto arrastão projeto fábrica de software
Projeto arrastão   projeto fábrica de softwareProjeto arrastão   projeto fábrica de software
Projeto arrastão projeto fábrica de software
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
Poco Bibliotecas C++
Poco Bibliotecas C++Poco Bibliotecas C++
Poco Bibliotecas C++
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em Português
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 

Mais de Mauricio Fernandes de Castro (16)

Zio motivation to create ZIO-native http package
Zio motivation to create ZIO-native http packageZio motivation to create ZIO-native http package
Zio motivation to create ZIO-native http package
 
tece-report-1
tece-report-1tece-report-1
tece-report-1
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte I
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte I
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte I
 
Intellij windows
Intellij windowsIntellij windows
Intellij windows
 
Capital Humano no Setor de TI
Capital Humano no Setor de TICapital Humano no Setor de TI
Capital Humano no Setor de TI
 
MVP Sustentável
MVP SustentávelMVP Sustentável
MVP Sustentável
 
Akka basics
Akka basicsAkka basics
Akka basics
 
Estrategia digital, uma visão associativista
Estrategia digital, uma visão associativistaEstrategia digital, uma visão associativista
Estrategia digital, uma visão associativista
 
Iservport recipes
Iservport recipesIservport recipes
Iservport recipes
 
CQRS/ES com Lagom
CQRS/ES com LagomCQRS/ES com Lagom
CQRS/ES com Lagom
 
ScalaCamp Meetup - Coleções em Scala
ScalaCamp Meetup - Coleções em ScalaScalaCamp Meetup - Coleções em Scala
ScalaCamp Meetup - Coleções em Scala
 
iservport - Uma Plataforma de Monitoramento para sua empresa e sua rede de ne...
iservport - Uma Plataforma de Monitoramento para sua empresa e sua rede de ne...iservport - Uma Plataforma de Monitoramento para sua empresa e sua rede de ne...
iservport - Uma Plataforma de Monitoramento para sua empresa e sua rede de ne...
 
Scala why
Scala whyScala why
Scala why
 
Iservport circle-game
Iservport circle-gameIservport circle-game
Iservport circle-game
 
O efeito chaminé.
O efeito chaminé.O efeito chaminé.
O efeito chaminé.
 

Apresentação do Aplicativo de Controle de Combustíveis

  • 1. Controle de Combustíveis Programa de Inovação Cívica TCE/PR
  • 2. Essa Apresentação • Objetivos • Informar ao pessoal do TCE/PR e à comunidade a respeito da estruturação do aplicativo de Controle de Combustível, • Indicar localização das fontes de dados, códigos e ferramentas que foram usados na elaboração da versão atual, • Debater sobre as limitações desafios encontrados durante o desenvolvimento, incentivar outros agentes a colaborar e dar continuidade ao trabalho.
  • 4. Fontes de dados • Arquivos PIT • https://servicos.tce.pr.gov.br/PIT_Arquivos/201x_PIT_TodosArquivos.zip • Atualizado periodicamente pela equipe do TCE, substituir acima 201x por 2013 ou outro ano, até 2017. • Os arquivos PIT compreendem diferentes fontes de dados, sendo que para o aplicativo atual são aproveitados apenas os que seguem o padrão: • ~/2017_PIT_TodosArquivos/*Combustivel.zip
  • 5. Fontes de dados • Arquivo IBGE • Formato csv, incluído no código da aplicação. • Contém dados dos municípios paranaenses, usados para calcular gastos por habitante e gasto por área. • Convém atualizar de acordo com mudanças no site do IBGE.
  • 6. Distribuição • tce-com-3: requerido para uso em produção, • InovaTCE17/MongoDB: banco de dados, • tce-comb-etl: pode ser usado somente para gerar e inicializar o banco de dados,
  • 7. Código fonte • tce-com-3: • https://gitlab.com/inovatcepr/tce- comb-3 • git clone https://gitlab.com/inovatcepr/tce- comb-3.git
  • 8. Código fonte • tce-comb-etl: • https://github.com/iservport/tce- comb-etl • git clone https://github.com/iservport/tce- comb-etl.git
  • 9. Licenças • O código tce-com-3 é distribuído com a licença GPL v. 3.0.
  • 10. Licenças • O código tce-comb-etl é distribuído com a licença MIT.
  • 11. Como Contribuir • Instale e inicie uma instância local de MongoDb - Community Edition. Ela será necessária para os testes. Durante o desenvolvimento foi usada a versão 3.6. • https://docs.mongodb.com/manual/installation/
  • 12. Como Contribuir • Instale também: • Java 1.8+: https://www.java.com/en/download/help/download_options.xml • Scala 2.11+ e sbt 0.13+: https://www.scala-lang.org/download/ • Prefira a instalação via IntelliJ, conforme instruções acima, caso ainda não tenha uma IDE Scala.
  • 13. Como Contribuir • As demais dependências serão resolvidas e descarregadas pela ferramenta de construção Scala - sbt. Isso inclui: • Apache Spark, usado na ETL, • Lightbend Akka, Akka Streaming e Alpakka, usados na transformação dos dados. • Spring Boot, para injeção de dependências e construção de microserviços. • Plugins para distribuição em contêineres Docker. • Você pode ter que instalar também o Docker durante os testes.
  • 14. Modelo Híbrido • A aplicação que inclui o front-end, tce-com-3, é construída segundo um modelo híbrido, i.e., é construída em conjunto com o back-end. • Essa estratégia simplifica a distribuição via contêiners Docker. • Utiliza webjars, dispensando o uso de node.js, npm ou yarn. • Cada módulo é uma SPA - Single Page Application. • Toda a construção é centralizada pela ferramenta sbt.
  • 15. Modelo Híbrido • As dependências do front-end incluem: • Freemarker 2.3.x • Twitter Bootstrap 3.7.x • AngularJs 1.6.x
  • 16. Testando a aplicação • Baixe os dados do TCE para 2017 e expanda os arquivos. • Instale e rode a aplicação tce-comb-etl • Verifique se o banco de dados MongoDB está acessível durante a execução, • Caso precise, ajuste as configurações em /src/main/resources/application.conf • Para rodar, use o comando sbt run na pasta raíz do projeto. • O processamento dos dados pode levar cerca de 5 minutos.
  • 17.
  • 18.
  • 19. Testando a aplicação • Instale e rode a aplicação tce-com-3 • Verifique se o banco de dados MongoDB foi atualizado na etapa anterior, • Caso precise, ajuste as configurações em /src/main/resources/application.yaml • Para rodar, use o comando sbt run na pasta raíz do projeto. • Acesse em http://localhost:8081
  • 20. Distribuição • A distribuição no servidor do TCE/PR foi realizada com auxílio de docker- compose, • A distribuição inicial foi realizada via Kubernetes, os arquivos de configuração para essa opção encontram-se na pasta k8s do projeto. • Tanto o Docker Compose como Kubernetes utilizam uma imagem depositada em um servidor remoto, que precisa se manter atualizada sempre que uma nova versão é liberada.
  • 21. Código • Estrutura típica de um projeto JVM + maven/sbt/gradle • Pasta src, subpastas src/main e src/test, cada uma delas divididas em resources (front- end) e scala (back-end). • Pacote pr.tce.comb com sub- pacotes separados por interesses.
  • 22. Código • Separação de interesses: • Controladores • Serviços • Repositório • Domínio
  • 23. Distribuição • Para atualizar a imagem Docker, no projeto tce-com-3, use sbt docker:install: • Confira o resultado em https://hub.docker.com/r/iservport/tce-comb-3/