Skip to content

renyzeraa/feedback-widget-server

Repository files navigation

Widget de Feedback - Servidor 📥

Uma API RESTful construída com Node.js seguindo os princípios SOLID para coletar e gerenciar feedback de usuários.

Repositório do Frontend

🚀 Tecnologias

📋 Funcionalidades

  • Envio de feedback (BUG, IDEIA, OUTRO)
  • Notificações por email
  • Anexos de screenshots
  • Validação de entrada
  • Tratamento de erros
  • Testes unitários

🏗️ Arquitetura

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)

💻 Começando

Pré-requisitos

  • Node.js
  • Docker
  • Docker Compose

Instalação

  1. Clone o repositório:
git clone https://github.com/seuusuario/feedback-widget-server.git
  1. Instale as dependências:
npm install
  1. Crie o arquivo de ambiente:
cp .env.example .env
  1. Inicie o banco de dados PostgreSQL:
docker-compose up -d
  1. Execute as migrações:
npx prisma migrate dev
  1. Na base do projeto possui a collection para realizar requisições pelo postman.

Executando

Modo desenvolvimento:

npm run dev

Build de produção:

npm run build
npm start

Testes:

npm run test

📝 Documentação da API

Enviar Feedback

POST /api/v1/feedbacks

Corpo da requisição:

{
  "type": "BUG", // BUG, IDEIA, OUTRO
  "comment": "Algo não está funcionando",
  "screenshot": "data:image/png;base64,..." // opcional
}

🧪 Testes

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

📦 Variáveis de Ambiente

  • DATABASE_URL: String de conexão PostgreSQL
  • PORT: Porta do servidor (padrão: 3333)
  • NODE_ENV: Ambiente (dev, test, production)

🛠️ Construído com Princípios SOLID

  • 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

LinkedIn Badge  Gmail Badge  Discord Badge  GitHub Badge 


About

APIRESTFull para receber relatórios de widget onde vem bugs, idéias ou outros assuntos, feito em Node.js com testes em Jest

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors