Este microsserviço foi desenvolvido para ilustrar a essência da minha stack tecnológica e a forma como estruturo os meus códigos. Ele serve como um exemplo vivo do meu estilo de arquitetura, permitindo que eu apresente não apenas as tecnologias que escolhi, mas também a maneira como aplico as melhores práticas de desenvolvimento e organização em projetos de software. O projeto encapsula as funcionalidades, assim como representa o cuidado e a atenção dedicados à concepção e à implementação de um projeto coeso e escalável.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js, Docker Além disto, é imprescindível ter um editor para trabalhar com o código como VSCode
As seguintes ferramentas foram usadas na construção do projeto:
# Clone este repositório
$ git clone git@github.com:gabrielhsantos/project_knowledge.git
# Acesse a pasta do projeto no terminal/cmd
$ cd project_knowledge/microsservice-nestJS/
# Instale as dependências
$ npm ci
# Execute o script para iniciar o container com as dependências
$ npm run infra:up
# Execute a aplicação
$ npm start
# O servidor inciará na porta:3000 - acesse <http://localhost:3000> (ou a porta que foi definida no arquivo .env)
Para rodar os testes, basta utilizar este comando via terminal/cmd:
$ npm t
Caso queira rodar os testes de forma separada, basta rodar:
# Para testes de integração
$ npm run test:integration
# Para testes unitário
$ npm run test:unit
Observação: O Coverage não está em 100% pois é apenas um modelo.
Um arquivo com extensão .json se encontra na pasta:
src/shared/docs
O mesmo pode ser importado dentro do Postman, para facilitar o acesso aos endpoints.
Caso queira acessar a documentação através do Swagger, basta acessar o link pelo seu navegador DOC com o servidor rodando.
Tenho a ideia de acrescentar um BFF (Backend For Frontend), com GraphQL + Websocket para a utilização como um proxy, servindo de Gateway para o microsserviço atual. Somado a isso, tenho como os próximos passos, a implementação dos seguintes módulos:
- Event -> Kafka
- Cache -> Redis
- Observabilidade -> Datadog