[COLOQUE AQUI A DESCRIÇÃO/MOTIVO DO PROJETO] Ex.: Serviço com as implementações referentes ao domínio core da plataforma Omega.
-
Visão da solução: acesse o Modelo de domínio e a Visão de Plataforma para compreender a solução como um todo e onde este projeto se enaixa.
-
Macro arquitetura: acesse o Desenho de arquitetura da solução para compreender a macro arquitetura da plataforma e onde este projeto se encaixa.
-
Micro arquitetura: acesse a documentação sobre camadas e padrões de arquitetura para compreender como está organizado este projeto.
-
Este projeto foi criado a partir do template example-backend-nestjs, e os detalhes sobre a composição padrão do projeto podem ser vista no README do template.
-
Detalhes da stack e integrações:
- A implementação é feita em TypeScript rodando sobre Node 19.
- Uso do framework NestJs 9.*.
- Persistência de dados é feita em um banco PostgreSQL 14.*.
- Filas são gerenciadas utilizando o Redis 7.*.
- As bibliotecas utilizadas pelo projeto podem ser vista no arquivo package.json que está na raiz do projeto.
O projeto está configurado para execução com docker-compose, onde já estão configuradas variáveis de ambiente e demais dependências. Para rodar o projeto, utilize:
# Para subir a aplicação
docker-compose up app
# Para executar os testes
docker-compose up test
# Para executar acesso ao console e rodar qualquer comando NPM desejado
docker-compose run --rm console
# Para executar apenas as ferramentas auxiliares como banco de dados, cache, mensageria, etc...
docker-compose --profile tools up
Em ambiente local ou de testes, o serviço utiliza variáveis de ambiente que podem ser definidas no arquivo .env
.
Tal arquivo pode ser criado a partir do exemplo .env.example
.
É obrigatório informar as envs (lembrando que via docker-compose isso não é necessário):
- DATABASE_URL: Exemplo
postgres://postgres:postgres@localhost:5432/myapp
. - REDIS_HOST: Exemplo
localhost
- REDIS_PORT: Exemplo
6379
Sugere-se o uso de docker-compose para subir o banco de dados e o redis, através do comando:
# Para executar apenas as ferramentas auxiliares como banco de dados, cache, mensageria, etc...
docker-compose --profile tools up
# Para subir a aplicação
npm run start
# Para executar os testes
npm run test
Ou
# Para executar os testes com relatórios de teste e cobertura
npm run test:cov
Toda alteração no código deve ser realizada respeitando o processo |DETALHAR|.
O testes automatizados são executados através da ferramenta jest, e podem ser executados conforme instruções na seção anterior.
Após execução dos testes, é gerado no diretório report
os relatórios:
- coverage (cobertura de código): /report/coverage/lcov-report/index.html
.
- tests (resultados dos testes): /report/test.html
.
No processo de CI, tais relatórios podem ser visualizados através do Pull Request criado para a alteração, ou ainda nas actions executadas (Aba Actions do github).
Para validar e chamar as API's manualmente acesse a página com o Swagger:
- Local: http://localhost:3000/apidoc
- Ambientes publicados: escolha o ambiente desejado em deployments
|DETALHAR|