Ferramentas utilizadas
No navegador
HTML 5
Última versão do padrão internacional.
SASS
Extensão da sintaxe do CSS com variáveis, templates, blocos e outras funcionalidades.
jQuery
Biblioteca JavaScript comumente utilizada para adicionar comportamentos à página.
Modernizr
Biblioteca que simplifica a criação de páginas compatíveis com múltiplos navegadores.
Mithril.js
Framework que simplifica a criação de Single-Page Applications, como o Editor de Serviços.
No servidor
Java 8
Devida à sua ubiquidade e facilidade de manutenção, ferramental existente, bibliotecas maduras e ampla adoção na infraestrutura do Governo Brasileiro.
Lombok
Gerador de código cerimonial para Java com diversos utilitários e extensões à sintaxe da linguagem. Para a utilização no IntelliJ IDEA, é necessário um plugin.
Tomcat
Servidor web em Java amplamente utilizado.
Slf4j
Biblioteca para gravar, filtrar e organizar a saída de logs.
Spring Data
Facilidades para acesso a dados e geração simplificada de repositórios, queries e controles transacionais.
Spring Boot
Traz o framework Spring e diversas funcionalidades de configuração por convenção, autoconfiguração e empacotamento de aplicações Java.
Spring MVC
Possibilita a escrita de serviços web de alta performance com código intuitivo, direto e fácil de testar.
Thymeleaf
Aumenta a sintaxe de arquivos HTML e XML para permitir construções poderosas de exibição de dados.
Markdown
Linguagem de marcação de texto simples e orientada à produção de textos eficiente e compatível com HTML.
Pegdown
Processador de Markdown em Java.
Slugify
Gerador de slugs, strings de texto simples e que podem ser utilizadas seguramente em trechos de URLs ou identificadores internos de objetos.
ElasticSearch
Mecanismo de busca de dados e documentos, descrito em mais detalhes na seção "ElasticSearch".
PostgreSQL
Banco de dados relacional com código livre que se caracteriza esencialmente por grande aderência às normas SQL e sua extensibilidade, dessa maneira sendo uma opção flexível e popular.
FlywayDB
Ferramenta para migração de banco de dados.
Para operações
CentOS
Distribuição Linux de derivada do Red Hat Enterprise Linux e mantida pelo CentOS Project.
RPM
Sistema e formato de pacotes usado pelo [CentOS] e diversas outras distribuições Linux.
Yum
Gerencia a instalação e remoção de pacotes [RPM].
HAProxy
Balanceador de carga entre servidores HTTP de alta disponibilidade e fácil configuração.
Docker
Ferramenta de gerenciamento de contêineres em máquinas Linux.
Docker-Compose
Gerenciamento e criação de aplicações em múltiplos contêineres Docker.
Docker-Machine
Gerenciamento e criação de máquinas compatíveis com o Docker.
Logstash
Trata e armazena logs gerados por aplicações e sistemas no ElasticSearch.
Logspout
Coordena o envio de logs de todas as aplicações Docker ao Logstash.
Kibana
Permite buscas e visualizações sobre logs armazenados pelo Logstash.
cAdvisor
Monitoramento e diagnóstico para contêineres Docker.
Em desenvolvimento
IntelliJ IDEA 14 CE
Ambiente de desenvolvimento integrado para aplicações Java.
Jolokia
Utilizado em desenvolvimento para facilitar o acesso a objetos Java Management Extensions (JMX).
Gradle
Ferramenta de construção de aplicações Java compatível com repositórios Maven.
Snap CI
Serviço de integração contínua desenvolvido pela [ThoughtWorks]. Se integra ao Github permitindo que, a cada novo código submetido, uma versão da aplicação seja compilada, testada, empacotada e publicada em um ambiente predefinido.
Git
Ferramenta de controle de versão.
Git-Crypt
Permite gerenciar arquivos com informações sigilosas, mesmo em repositórios Git públicos, através de GPG.
GitBook
Ferramenta de formatação e geração de documentação em formatos HTML, PDF, ePub, Mobi, etc.
Docker
Automação de máquinas virtuais e ambientes.
Em testes
JUnit
Biblioteca para testes unitários e de integração amplamente utilizada em aplicações Java.
Mockito
Biblioteca para a criação de objetos falsos (mocks) para facilitar a escrita e aumentar a qualidade de testes.
JaCoCo (Java Code Coverage)
Permite acompanhar e gerar relatórios para encontrar código não executado durante os testes automatizados (cobertos).
Coveralls
Permite visualizar a porcentagem de cobertura de testes da aplicação, visando garantir o acompanhamento público da qualidade de nossos testes automatizados.
Para comunicação
Gitter (bate-papo)
A equipe se mantém diariamente conectada em uma sala de bate-papo no Gitter, e está online nos dias úteis das 9 às 19:00, horário de Brasília.
Github
Uma nova organização foi criada no Github para agrupar qualquer projeto ou subprojeto relacionado ao Portal de Serviços.
Github é o repositório onde o código fonte do projeto é armazenado. Este repositório está desatualizado, para uma versão mais recente entrar em contato pelo e-mail [email protected] ou pelo Gitter.
Waffle Desativado
O Waffle é um quadro virtual e integrado ao Github Issues que gera visualizações em tempo real de cada uma das tarefas e seu estado atual.
Utilizamos esta ferramenta para dar mais visibilidade às tarefas que estão sendo desenvolvidas pelo time e quem são os responsáveis por cada uma delas.