ecommerce-backend
ecommerce-backend copied to clipboard
E-Commerce API to practice NestJS and Prisma ORM
E-Commerce Backend
API com endpoints para criação de usuários, produtos, compras e avaliações com autenticação e autorização
📑 Índice
- 📌 Features
- 📚 Docs e Demo
- 🔧 Instalação
- 🔩 Testes
- 🖇️ Requisições no Insomnia
- 💻 Tecnologias
- 📄 Licença
📌 Features
- [x] CRUD de usuários
- [x] Autenticação de usuário
- [x] Rotação de Refresh Token
- [x] Detecção de Reuso Automático
- [x] Rotação de Refresh Token
- [x] Autorização de usuário (admin)
- [x] CRUD de produtos
- [x] Upload de imagens
- [x] CRUD de categorias
- [x] CRUD de compras
📚 Docs e Demo
🔗 Docs usando Compodoc no GitHub Pages
-
Representação dos módulos com Compodoc:
🔧 Instalação
-
Você precisará ter o Node.js instalado
-
Instalação
# Clona o projeto para sua máquina
git clone https://github.com/alvaromrveiga/ecommerce-backend
# Entra na pasta do projeto
cd ecommerce-backend
# Instala as dependências
yarn
-
Crie um arquivo .env na raiz do projeto preenchendo as informações descritas no .env.example
-
Iniciar servidor
# Roda as migrations
yarn migrate:dev
# Inicia o servidor em modo de desenvolvimento
yarn start:dev
# O servidor abrirá na porta 3000.
# Você pode acessar a documentação com Swagger em http://localhost:3000/api/
# Para visualizar o banco de dados
yarn prisma studio
🔩 Testes
-
Crie um arquivo .env.test na raiz do projeto alterando no mínimo o banco de dados que colocou no .env
- Exemplo: postgresql://username:password@localhost:5432/ecommerce-test?schema=public
# Roda as migrations no bando de testes yarn migrate:test # Roda todos os testes unitários e de integração # Pode demorar alguns poucos minutos # 10 suites e 187 testes yarn test:all # Roda apenas os testes unitários yarn test # Roda apenas os testes de integração yarn test:e2e # Para visualizar o banco de dados de testes yarn studio:test
-
Cobertura dos testes:
🖇️ Requisições no Insomnia
A coleção de 30 requisições para testar o projeto no Insomnia pode ser encontrada aqui.
- Para importar no Insomnia:
- Clique na engrenagem no canto superior direito
- Aba de Data
- Import Data
- From File
- Selecione o arquivo insomnia-requests.json dentro da pasta assets na raiz do projeto
💻 Tecnologias
- Typescript - tooling e minimizar erros
- Node.js e NestJS com Express - construir o servidor
- Prisma com PostgreSQL - armazenar dados
- Passport e passport-jwt - autenticação com Json Web Token
- Class-validator e class-transformer - validações nos dados de entrada dos endpoints
- Bcrypt - hashs de senhas
- currency.js - cálculos monetários
- ms - cálculo da data de expiração do refresh token
- Prisma-error-enum - identificar os códigos para tratar as exceções do prisma
- Jest, SuperTest - testes
- Swagger UI Express e compodoc - documentação
- ESLint e Prettier - linting e formatação de código