Skip to content

Latest commit

 

History

History
72 lines (52 loc) · 6.45 KB

CONTRIBUTING.md

File metadata and controls

72 lines (52 loc) · 6.45 KB

Português (BR) | English (US)

Contribuindo

O Querido Diário possui um Guia para Contribuição principal que é relevante para todos os seus repositórios. Este guia traz informações gerais sobre como interagir com o projeto, o código de conduta que você adere ao contribuir, a lista de repositórios do ecossistema e as primeiras ações que você pode tomar. Recomendamos sua leitura antes de continuar.

Já leu? Então vamos às informações específicas deste repositório:

Arquitetura

arquitetura

Abaixo, uma breve descrição de seus componentes:

Tipo Nome Descrição Dependências
Aplicação api Configuração e criação de endpoints da API. serviços e recursos
Aplicação main Configuração e execução da API. api, serviços, módulos e recursos
Serviço cities Consultas ao banco do Censo de Diários Municipais. Banco de dados do Censo
Serviço companies Consultas ao banco de dados de CNPJ. database
Serviço gazettes Consultas ao índice de busca textual principal do QD. index
Serviço suggestions Envio de emails de sugestão. Mailjet
Serviço themed_excerpts Consultas ao índices de busca textual temáticos do QD. index
Módulo database Classe de interação com bancos de dados Postgres. Postgres
Módulo config Configuração de variáveis de ambiente.
Módulo index Classe de interação com índices Opensearch. Opensearch
Recurso Postgres Banco de dados de CNPJ. Contém informações sobre empresas e sócios cadastrados na Receita Federal.
Recurso Banco de dados do Censo Banco de dados de municípios. Contém metadados municipais.
Recurso Opensearch Índices de busca textual.
Recurso Mailjet Serviço de envio de email.

Como configurar o ambiente de desenvolvimento

Em Linux

A API é construída e executada em contêineres podman. Para conhecer mais sobre o podman, veja esta postagem da Red Hat ou navegue nos tutoriais de sua documentação. E é desenvolvida em Python (3.6+) utilizando as bibliotecas FastAPI e Pydantic, assim como outras bibliotecas que permitem interação com os recursos da tabela acima.

  1. Instale o podman em sua máquina. Ele existe em quase todos os repositórios de pacotes de distribuição Linux. Consulte a documentação do podman para entender como instalá-lo na distribuição que utiliza.

  2. Abra um terminal no diretório do seu clone deste repositório

  3. Construa a imagem do contêiner usado no desenvolvimento com o seguinte comando:

make build
  1. Pronto! Com isso, você terá uma imagem do contêiner que poderá executar a API localmente no processo de desenvolvimento.

Testes

Este projeto foi desenvolvido com o paradigma TDD (Test Driven-Development). Isso significa que não há mudanças sem testes. Devemos sempre buscar ter uma cobertura de testes de todo código-fonte. Outra maneira de encarar os testes é o seguinte:

“Escreva o teste que o força a escrever o código que você já sabe que quer escrever” Por Robert C. Martin (a.k.a. Uncle Bob), tradução nossa.

Para executar os testes, faça o seguinte:

make test

ATENÇÃO: Não é necessário reiniciar a base de teste a cada vez que você quiser executar os testes. Uma vez que o banco de dados esteja em execução, você só precisa rodar o make retest novamente. Se você remover o banco de dados com make destroydatabse ou reiniciar a máquina, você terá que iniciar o banco de dados novamente.

Para checar a cobertura do código:

make coverage

Mantendo

As pessoas mantenedoras devem seguir as diretrizes do Guia para Mantenedoras do Querido Diário.