Português (BR) | English (US)
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:
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. |
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.
-
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. -
Abra um terminal no diretório do seu clone deste repositório
-
Construa a imagem do contêiner usado no desenvolvimento com o seguinte comando:
make build
- Pronto! Com isso, você terá uma imagem do contêiner que poderá executar a API localmente no processo de desenvolvimento.
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
As pessoas mantenedoras devem seguir as diretrizes do Guia para Mantenedoras do Querido Diário.