ocsoares / Send-Email-Microservice-RabbitMQ

Um microsserviço de enviar email desenvolvido com sistema de mensageria, usando a ferramenta RabbitMQ

Home Page:https://send-email-microservice-rabbitmq.onrender.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Send Email Microservice RabbitMQ

NPM

Autor

👤 Cauã Soares

💼 https://www.linkedin.com/in/ocauasoares

Sobre o projeto

Deploy na plataforma Render:

🚀 https://send-email-microservice-rabbitmq.onrender.com

Esse é um microsserviço de enviar email com filas, desenvolvido usando a ferramenta de mensageria chamada RabbitMQ.

⚠️ ATENÇÃO: O email definido no deploy para enviar os emails é: nodevalidation12@gmail.com

Estrutura do projeto

Estrutura

Esse projeto foi desenvolvido para usar as técnicas de mensageria, mas também a segurança e autenticação foram implementadas usando JWT (JSON Web Token)

Módulos e use-cases

Módulos

Email use-cases

Publish

Publish

Consumer

Consumer

RabbitMQ Management

RabbitMQ Management

Principais tecnologias e bibliotecas utilizadas

  • TypeScript
  • NestJS
  • Docker
  • RabbitMQ
  • Nodemailer
  • JWT
  • PostgreSQL
  • Prisma
  • Jest
  • Swagger (documentação)

Características e funcionalidades do projeto:

Estrutural 🛠️

  • Clean Code
  • SOLID
  • Clean Architecture
  • PostgreSQL e RabbitMQ usados no Docker

Funcionalidades 🎯

  • Autenticação e proteção da rota com JWT
  • O usuário pode enviar um email para qualquer outro email que especificar no body da requisição.
  • O email que será responsável por enviar é definido por meios das variáveis de ambiente e passados para o módulo do Nodemailer.

Documentação

Documentação feita com a ferramenta Swagger na rota /docs

Documentação

Executar o projeto localmente

Pré-requisitos: Typescript, NodeJS e Docker

# clonar o repositório
git clone https://github.com/ocsoares/Send-Email-Microservice-RabbitMQ

# instalar as bibliotecas
npm install

# criar um arquivo .env na pasta raíz do projeto

# configurar esse .env baseado no arquivo .env.example

# transpilar os arquivos do projeto para .js
npm run build

# iniciar o container do docker
docker-compose up

# executar o projeto
npm start

About

Um microsserviço de enviar email desenvolvido com sistema de mensageria, usando a ferramenta RabbitMQ

https://send-email-microservice-rabbitmq.onrender.com


Languages

Language:TypeScript 100.0%