Skip to main content
  1. All Posts/

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
  • 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

  • Representação dos módulos com Compodoc:

🔧 Instalação

  1. Você precisará ter o Node.js instalado
  2. 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
  1. Crie um arquivo .env na raiz do projeto preenchendo as informações descritas no .env.example
  2. 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

  • 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

📄 Licença

MIT