https://github.com/renyzeraa/feedback-widget-server
APIRESTFull para receber relatórios de widget onde vem bugs, idéias ou outros assuntos, feito em Node.js com testes em Jest
https://github.com/renyzeraa/feedback-widget-server
cors docker fastify javascript jest jest-tests nodejs postgresql typescript
Last synced: about 2 months ago
JSON representation
APIRESTFull para receber relatórios de widget onde vem bugs, idéias ou outros assuntos, feito em Node.js com testes em Jest
- Host: GitHub
- URL: https://github.com/renyzeraa/feedback-widget-server
- Owner: renyzeraa
- Created: 2025-04-12T02:09:51.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-12T02:22:13.000Z (about 1 year ago)
- Last Synced: 2025-04-12T03:25:07.966Z (about 1 year ago)
- Topics: cors, docker, fastify, javascript, jest, jest-tests, nodejs, postgresql, typescript
- Language: TypeScript
- Homepage:
- Size: 81.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# 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](https://github.com/renyzeraa/feedback-widget-web)
## 🚀 Tecnologias
- [Node.js](https://nodejs.org/)
- [TypeScript](https://www.typescriptlang.org/)
- [Fastify](https://www.fastify.io/)
- [Prisma](https://www.prisma.io/)
- [PostgreSQL](https://www.postgresql.org/)
- [Nodemailer](https://nodemailer.com/)
- [Jest](https://jestjs.io/)
- [Zod](https://zod.dev/)
## 📋 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:
```bash
git clone https://github.com/seuusuario/feedback-widget-server.git
```
2. Instale as dependências:
```bash
npm install
```
3. Crie o arquivo de ambiente:
```bash
cp .env.example .env
```
4. Inicie o banco de dados PostgreSQL:
```bash
docker-compose up -d
```
5. Execute as migrações:
```bash
npx prisma migrate dev
```
6. Na base do projeto possui a collection para realizar requisições pelo postman.
### Executando
Modo desenvolvimento:
```bash
npm run dev
```
Build de produção:
```bash
npm run build
npm start
```
Testes:
```bash
npm run test
```
## 📝 Documentação da API
### Enviar Feedback
```http
POST /api/v1/feedbacks
```
Corpo da requisição:
```json
{
"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 **R**esponsabilidade Única
- Princípio **A**berto/Fechado
- Princípio da **S**ubstituição de Liskov
- Princípio da **S**egregação de Interface
- Princípio da **I**nversã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](https://github.com/renyzeraa)!
🛠 Dev. FullStack
📍 Santa Catarina - Brasil