Skip to content

gustavo-martins-pereira/E-commerce_FullStack-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend do E-commerce FullStack

Backend para o funcionamento do site do Ecommerce FullStack, usando rotas HTTP e as entidades relacionadas as regras de negócio da aplicação, com rotas autorizadas através de JWT.

Sumário

🖥 Tecnologias Usadas

Javascript Logo  Nodejs Logo  Express Logo  JWT Logo  NPM Logo  PostgreSQL Logo 

⚙ Instalação

Instruções para configurar o projeto localmente.

Pré-requisitos

⚠ A versão do Node.js que o projeto foi feito foi na versão v20.15.1, versões anteriores/posteriores podem não ser compatíveis com o projeto, caso tenha o NVM instalado, instale a versão correspondente com os comandos:

# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# download and install Node.js (you may need to restart the terminal)
nvm install 20.15.1

# verifies the right Node.js version is in the environment
node -v # should print `v20.15.1`

# verifies the right npm version is in the environment
npm -v

OPCIONAL

  • Baixe o aplicativo dektop do Postman.
    • Baixe o arquivo JSON das Requisições
      1. Em seguida, no canto superior esquerdo no aplicativo do Postman, clique no botão "Import": Botão de import ao lado do botão de New
      2. Selecione o arquivo JSON baixado no link do JSON acima e importe o arquivo.

Passos

  1. Clone o repositório:
git clone https://github.com/gustavo-martins-pereira/E-commerce_FullStack-Backend.git
  1. Navegue até o diretório do projeto:
cd nome-do-repositorio
  1. Instale as dependências:
npm install
  1. Configure o arquivo de ambiente .env conforme o seu banco PostgreSQL.

Até o momento o banco usado no projeto é um banco de dados local

Passos para a configuração inicial do banco
1. Caso esteja usando o psql, para criar o banco de dados digite o comando:
CREATE DATABASE ecommerce;
⚠ Lembre-se que o nome do banco será usado para configurar a conexão com o banco de dados no arquivo .env
  1. Para executar as migrations e seeds do projeto, em um terminal na raiz do projeto, digite o comando:
npm run setup-db

⚠ Existe a possibilidade de erro de dado duplicado quando o comando de seed estiver sendo executado, essa é uma ação NORMAL do banco de dados para evitar inconsistências na DB, caso aconteça, tente executar o comando npm run seed até que todas as seeds sejam executadas com sucesso

  1. Em seguida, execute o projeto com:
npm run start

⚠ JWT ⚠

Todas as rotas são protegidas por JWT (exceto a de registro, login e refreshToken), então antes de executar qualquer requisição, crie um novo usuário na rota de registro, e faça o login na rota de login para obter o Access Token. O Access Token tem um prazo de validade de apenas 1 minuto, e para obter um novo token de acesso, basta executar a rota de refreshToken.

A duração é pequena para impedir danos relativos ao vazamento do token de acesso as rotas, para mais informações, acesse o conceito de Access token e Refresh token

Lembrando que dependendo do tipo de usuário que você criar, as rotas podem ter acesso restrito, permitindo que somente usuário com certos tipos de role possam acessar aquele recurso.

📁 Estrutura do Projeto

/src
├── /config
├── /controllers
│   ├── entityController.js
├── /db
│   ├── /config
│   ├── /migrations
│   ├── /models
│   ├── /seeders
│   └── package.json
├── /middlewares
├── /repositories
│   ├── entityRepository.js
├── /routes
│   ├── /validators
│   └── routes.js
├── /services
│   ├── /entity
├── /utils
│   ├── /errors
│   └── encryption.js
└── server.js
.env
.env.example
.gitignore
.sequelizerc
LICENSE
package-lock.json
package.json
readme.md