Ecossistema de microsserviços para automação da geração e envio de certificados
Certificates Hub: ProGirls é um sistema completo para geração e envio automatizado de certificados digitais.
O projeto utiliza arquitetura de microsserviços e comunicação assíncrona com RabbitMQ, garantindo escalabilidade, modularidade e baixo acoplamento entre os serviços.
Principais responsabilidades do sistema:
- Receber arquivos de participantes (
csv
oujson
) e colocá-los em uma fila de processamento. - Gerar certificados personalizados para cada participante.
- Enviar os certificados por e-mail de forma automática.
O sistema é formado por 3 microsserviços RESTful, todos em Spring Boot:
-
Data Upload (MS1)
- Endpoint:
POST /api/uploads/participants
- Recebe arquivos (
csv
oujson
), mapeia os dados para DTOs e envia para a fila do RabbitMQ.
- Endpoint:
-
Certificates Generator (MS2)
- Consome os dados da fila.
- Gera certificados digitais personalizados.
- Salva localmente e envia (
name
,email
,certificate
) via POST para o MS3.
-
Certificates Sender (MS3)
- Endpoint:
POST /api/v1/certificates/send-email
- Recebe os certificados gerados e dispara o envio por e-mail para cada participante.
- Endpoint:
Fluxo resumido:
sequenceDiagram
participant User as Usuário
participant MS1 as MS1: Data Upload
participant Queue1 as RabbitMQ - Fila de Participantes
participant MS2 as MS2: Certificate Generator
participant MS3 as MS3: Certificate Sender
participant Email as Servidor de Email
User->>MS1: POST /api/uploads/participants (arquivo CSV/Excel)
MS1->>MS1: Escolher estratégia baseada no tipo de arquivo
MS1->>MS1: Mapear dados para DTOs
MS1->>Queue1: Publicar mensagem (ParticipantDTO)
Queue1-->>MS2: Consumir mensagem (ParticipantDTO)
MS2->>MS2: Preencher template HTML (Thymeleaf)
MS2->>MS2: Gerar PDF a partir do template
MS2->>MS3: POST /api/v1/certificates/send-email (PDF anexado)
MS3->>Email: Enviar certificado por e-mail
Email-->>User: Certificado entregue na caixa de entrada
Para executar o sistema completo, é necessário ter instalado:
- Docker
- Docker Compose
Clone o repositório principal:
❯ git clone https://github.com/nataliatsi/certificates-hub-progirls
Entre no diretório:
❯ cd certificates-hub
Suba todos os microsserviços e dependências com um único comando:
❯ docker compose up --build -d
Isso iniciará automaticamente:
- RabbitMQ
- certificates-data-upload
- certificates-generator
- certificates-sender
Após os serviços estarem rodando, basta acessar no navegador:
👉 http://localhost:8081/swagger-ui/index.html
No Swagger UI:
-
Faça o upload do arquivo de participantes (
csv
oujson
). -
Clique em Enviar.
-
Pronto 🎉 → o fluxo completo será iniciado automaticamente:
- Dados vão para a fila RabbitMQ
- Certificados são gerados
- Certificados são enviados por e-mail
Cada microsserviço possui sua própria documentação detalhada em repositórios separados:
- Certificates Data Upload → Recebe e despacha dados de participantes
- Certificates Generator → Gera certificados a partir da fila
- Certificates Sender → Envia certificados por e-mail
Made with 💜 by Natália