Este repositório contém uma aplicação de serviço de mailing desenvolvida utilizando TypeScript, RabbitMQ, Node.js, DDD (Domain-Driven Design), TDD (Test-Driven Development) e Clean Architecture. O objetivo dessa aplicação é enviar e-mails de forma assíncrona, utilizando a fila do RabbitMQ para processar os envios.
Certifique-se de ter os seguintes softwares instalados localmente:
- Node.js
- RabbitMQ
- Clone este repositório em sua máquina local.
- Execute o comando
npm install
para instalar as dependências necessárias. - Crie um arquivo de configuração
.env
baseado no exemplo fornecido no arquivo.env.example
. Certifique-se de fornecer as informações corretas para a conexão com o RabbitMQ. - Execute o comando
npm run start:dev
para iniciar a aplicação em modo desenvolvimento. - Execute o comando
npm run test:unit
para executar os testes unitários. - Execute o comando
npm run test:integration
para executar os testes de integração. - Execute o comando
npm run test:ci
para executar todos os testes e gerar o relatório de cobertura de testes. - Execute o comando
npm run build
para gerar o build da aplicação. - Execute o comando
npm run start:prod
para iniciar a aplicação em modo produção.
A aplicação utiliza o TDD como metodologia de desenvolvimento, garantindo a qualidade e a integridade do código.
Os testes automatizados estão localizados na pasta tests
e podem ser executados usando o comando npm run test:tipo_de_teste
.