ecommerce-backend
eCommerce
TypeScript
E-Commerce Backend
API com endpoints para criação de usuários, produtos, compras e avaliações com autenticação e autorização
🔗 Demo com Swagger
📑 Índice
📌 Features
- CRUD de usuários
-
Autenticação de usuário
-
Rotação de Refresh Token
- Detecção de Reuso Automático
-
Rotação de Refresh Token
- Autorização de usuário (admin)
-
CRUD de produtos
- Upload de imagens
- CRUD de categorias
- CRUD de compras
📚 Docs e Demo
🔗 Demo usando Swagger
🔗 Docs usando Compodoc no GitHub Pages
🔧 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
<pre> # Roda as migrations no bando de testes
yarn migrate:test
Roda todos os testes unitários e de integração>Roda todos os testes unitários e de integração #
Pode demorar alguns poucos minutos>Pode demorar alguns poucos minutos #
10 suites e 187 testes>10 suites e 187 testes #
yarn test:all
Roda apenas os testes unitários>Roda apenas os testes unitários #
yarn test
Roda apenas os testes de integração>Roda apenas os testes de integração #
yarn test:e2e
Para visualizar o banco de dados de testes>Para visualizar o banco de dados de testes #
yarn studio:test
-
🖇️ 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
📄 Licença
MIT