Uma API RESTful construída com Node.js seguindo os princípios SOLID para coletar e gerenciar feedback de usuários.
- Envio de feedback (BUG, IDEIA, OUTRO)
- Notificações por email
- Anexos de screenshots
- Validação de entrada
- Tratamento de erros
- Testes unitários
O projeto segue os princípios SOLID e Clean Architecture:
- Controllers: Manipulam requisições/respostas HTTP
- Casos de Uso: Contêm a lógica de negócios
- Repositórios: Camada de acesso a dados
- Entidades: Modelos de domínio
- Adaptadores: Integração com serviços externos (email)
- Node.js
- Docker
- Docker Compose
- Clone o repositório:
git clone https://github.com/seuusuario/feedback-widget-server.git- Instale as dependências:
npm install- Crie o arquivo de ambiente:
cp .env.example .env- Inicie o banco de dados PostgreSQL:
docker-compose up -d- Execute as migrações:
npx prisma migrate dev- Na base do projeto possui a collection para realizar requisições pelo postman.
Modo desenvolvimento:
npm run devBuild de produção:
npm run build
npm startTestes:
npm run testPOST /api/v1/feedbacksCorpo da requisição:
{
"type": "BUG", // BUG, IDEIA, OUTRO
"comment": "Algo não está funcionando",
"screenshot": "data:image/png;base64,..." // opcional
}O projeto inclui testes unitários para os principais casos de uso utilizando Jest:
- Validação de envio de feedback
- Envio de email
- Validação de screenshot
- Tratamento de erros
DATABASE_URL: String de conexão PostgreSQLPORT: Porta do servidor (padrão: 3333)NODE_ENV: Ambiente (dev, test, production)
- Princípio da Responsabilidade Única
- Princípio Aberto/Fechado
- Princípio da Substituição de Liskov
- Princípio da Segregação de Interface
- Princípio da Inversão de Dependência
Se você tiver alguma dúvida ou sugestão, entre em contato e sinta-se à vontade para contribuir !
Feito por Renan L. Silva!
🛠 Dev. FullStack
📍 Santa Catarina - Brasil