O SorrySimulator é uma aplicação completa baseada em microsserviços que permite:
✔️ Gerar desculpas personalizadas usando IA (Gemini)
✔️ Enviar essas mensagens por e-mail (SendGrid)
✔️ Salvar e consultar histórico por usuário
✔️ Gerenciar autenticação com JWT
✔️ Interface web moderna em React
O projeto foi desenvolvido com foco em arquitetura limpa, escalabilidade e modularidade.
A aplicação é composta por vários microsserviços independentes:
| Serviço | Porta | Função |
|---|---|---|
| Gateway | 8088 | API Gateway que unifica as rotas dos outros serviços |
| AuthService | 8080 | Autenticação, cadastro, login e emissão de JWT |
| ExcuseGeneratorService | 8083 | Gera mensagens usando a API Gemini |
| ExcusesService | 8081 | Orquestra geração de desculpas e integra com o serviço Gemini |
| EmailService | 8082 | Envio de e-mails via SendGrid e salvamento de histórico |
| SQL Server | 14333 | Banco de dados principal |
| Frontend (React) | 5173 | Interface do usuário |
.
├── docker-compose.yml
├── frontend/ → Aplicação React (Dashboard, Login, Histórico, Criar Desculpa)
└── src/
├── AuthService/ → Autenticação + JWT
├── EmailService/ → Envio de e-mail + histórico
├── ExcuseGeneratorService/ → Integração com Gemini
├── ExcusesService/ → API do gerador de desculpas
└── Gateway/ → API Gateway
- .NET 8
- Entity Framework Core
- SQL Server 2022
- JWT Authentication
- SendGrid API
- Gemini AI API
- Minimal APIs
- CORS configurado por serviço
- React 18
- React Router
- Context API
- Fetch API
- CSS customizado
- Cadastro e login
- Senhas com hash e salt (PBKDF2)
- JWT salvo no
localStoragecomoauth_token
- Personalização: nome, motivo, tom da mensagem
- Geração por IA usando Gemini
- Configuração de remetente via variáveis de ambiente
- Envio via SendGrid
- Registro no histórico por UserId extraído do JWT
- Listagem das mensagens enviadas
- Relacionamento com tabela
gd.Users - Horário ajustado para America/Sao_Paulo
git clone https://github.com/RBoettger/SorrySimulator
cd SorrySimulatorCrie um arquivo .env na raiz:
GEMINI_API_KEY=...
SENDGRID_API_KEY=...
SMTP_FROM=seuemail@dominio.com
SMTP_FROM_NAME=Gerador de Desculpas
docker-compose up --buildPOST /auth/login
POST /auth/register
POST /excuses/generate
POST /email/send
GET /email/history
Todos protegidos via encaminhamento para os microsserviços.
O SQL Server contém:
- UserId
- Name
- PasswordHash
- PasswordSalt
- CreatedAt
- HistoryId
- UserId
- SenderName
- ToEmail
- Subject
- ExcuseText
- SentAt
- Usuário cadastra ou faz login
- Recebe JWT
- Acessa página de gerar desculpa
- Gera mensagem com IA
- Envia por e-mail
- Histórico é salvo no banco
- Tela de histórico exibe mensagens do usuário autenticado
Projeto de estudo. Livre para uso e modificação.
Se gostou, deixe uma star ⭐ no repositório!