Trilha base para começar a desenvolver/entender o projeto
- Para começar a entender o projeto, faça o fluxo descrito no diagrama, e se atente-se bastante a camada/pasta service, ela contem as regras de negócio.
- O tratamento sobre os dados, em sua maioria se encontra na camada/pasta service, e o restante está na pasta de helpers
- Se estiver difícil acompanhar/entender quais regras o service e o helper estão seguindo, olhe os testes unitários e veja os tratamentos específicos de cada função
Pontos principais do projeto
- Para inicializar o projeto, é só dar um docker compose up, se for a primeira vez adicione a flag -- build (Será necessário ter o node e o docker instalado na maquina )
- as Regras de negócio ficam na camada de serviço src/services
- quando é preciso fazer algum tratamento mais especifico ou recorrente, fica na pasta helpers
- Copie o .env.example para criar o arquivo .env
Exemplos/demonstrações da regra de negocio
o com o swagger, no path /documentation
O projeto tambem conta com o thunderClient para auxiliar. Na pasta /tests tem um json que ja esta escrito o teste para bater nas rotas, para usar é só instalar a extensão do thunderClient, importar o json para lá e configurar para ele ter acesso ao seu arquivo .env ou .env.example e está pronto para uso
Swagger ou equivalente
EndpointSwagger → {host}/documentation
Outra forma para ter as respostas dos endpoints
Na pasta test/thunderClient contem um Json com os testes de cada rota, ele esta configurado para o thunderClient, está pronto para uso(coloque o arquivo .env para ele visualizar para pegar as variáveis de ambientes já cadastradas)
Padrões do código
- como o código está usando o framework nest.js, o código é modularizado e usamos por padrão a inversão de dependência
- Recomendo usar a Cli do nest para criar os módulos/controllers/services no padrão automaticamente, se necessário criar apartir do zero o código, atente-se a colocar o nome da classe em PascalCase e as funções/variaveis ter nomenclaturas descritivas em camelCase
- O código (salvo os helpers) está orientado a objetos