Skip to content

NicolasChirazawa/e-commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Ā 

History

60 Commits
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 

Repository files navigation



• Descrição • Inicializando • Endpoint • Banco de Dados • Lista de Ideias •

šŸ’» Descrição

Um estudo para o desenvolvimento do backend de e-commerce.

Funcionalidades

• CRUD de usuĆ”rio e produto;
• Login com autorização e autenticação atravĆ©s de JSON Web Token;
• Carrinhos de compra por usuĆ”rio;
• RevisĆ£o do preƧo e disponibilidade dos itens ao pagar o carrinho;
• Pagamento por cartĆ£o de crĆ©dito e PIX respectivamente manejados pelos Gateways de Pagamento Stripe e AbacatePay;
• Processamento da resposta dos pagamentos por PIX atravĆ©s do BullMQ para controlar os itens reservados e o status do carrinho;
• Suporte de testes unitĆ”rios e integrados utilizando do Node Test Runner;

šŸš€ Inicializando

Passos para utilizar este projeto:
/ Instalação do projeto / Configuração das variÔveis de ambiente / Instalações dos Softwares / Inicialização /

Instalação do projeto

Clone o projeto ou baixe-o;

gh repo clone NicolasChirazawa/e-commerce

Definindo as variƔveis de ambientes

Use o arquivo '.env-teste' de referência para criar o seu próprio '.env', e defina as seguintes variÔveis de acordo a descrição.

SERVER_PORT = /* Porta do Express */

POSTGRES_HOST =     /* Configuração do host do Postgres */
POSTGRES_PORT =     /* Configuração da porta do Postgres */
POSTGRES_DATABASE = /* Configuração da base de dados do Postgres */
POSTGRES_USER =     /* Configuração do user do Postgres */
POSTGRES_PASSWORD = /* Configuração da senha do Postgres */

REDIS_HOST = /* Configuração do host do Redis */ 
REDIS_PORT = /* Configuração da porta do Redis */

JWT_SECRET = /* Segredo do JWT */

STRIPE_SECRET_KEY =  /* Chave do gateway de pagamento Stripe */
ABACATE_SECRET_KEY = /* Chave do gateway de pagamento Abacate Pay */

Softwares necessƔrios

• Docker (Windows / Linux);
• Postgres;

Recomendação: Um editor de código: Visual Studio Code;
Recomendação: Um Cliente API para manejar requisições, como o: Postman ou o Insomnia;

Inicialização

docker-compose up

šŸ“ Endpoints API

Users

rotas descrição
POST/register Registra um usuƔrio.
POST/login Loga no sistema para gerar um JWT.
GET/users Apanha informaƧƵes dos usuƔrios.
GET/users:/user_id Apanha informação do usuÔrio selecionado.
PUT/users:/user_id Atualiza todas as informaƧƵes do usuƔrio selecionado.
DELETE/users:/user_id Deleta um usuƔrio especƭfico.
PATCH/users:/user_id Atualiza um ou mais campos de um usuƔrio especƭfico.

Products

rotas descrição
POST/products Registra um produto.
GET/products Apanha informaƧƵes dos produtos.
GET/products:/product_id Apanha informação do produto selecionado.
PUT/products:/product_id Atualiza todas as informaƧƵes do produto selecionado.
DELETE/products:/product_id Deleta um produto especĆ­fico.
PATCH/products:/product_id Atualiza um ou mais campos de um produto especĆ­fico.

Shopping_Products

rotas descrição
GET/shoppingCart Apanha os itens de todos os carrinhos de compra.
GET/shoppingCart/:cart_id Apanha os itens de um carrinho de compra especĆ­fico
POST/currentCart/:product_id Acrescenta um item no carrinho de compras atual.
GET/currentCart Apanha informaƧƵes do carrinho de compra atual do usuƔrio.
DELETE/currentCart/:product_id Deleta um produto do carrinho de compras atual do usuƔrio.
PATCH/currentCart/:product_id Atualiza um atributo especƭfico do carrinho de compras atual do usuƔrio.
POST/updatePrice Atualiza o preƧo dos itens do carrinho de compra atual do usuƔrio.
POST/verifyStorage Verifica os itens do carrinho de compra atual.

Products

rotas descrição
POST/payment Gera o código PIX para pagamento de um carrinho de compra.

🧱 Banco de dados

šŸ“‹ Lista de Tarefas

  • Estruturação do banco de dados;
  • CRUD usuĆ”rios;
  • Login de usuĆ”rios com bcrypt e JWT;
  • CRUD de produtos;
  • Carrinho de compras por usuĆ”rio;
  • Testes unitĆ”rios;
  • Testes integrados;
  • Verificação de produtos no estoque ao pagar;
  • Verificação da precificação dos produtos no carrinho de compras;
  • Implementação do Gateway de pagamento Stripe;
  • Implementação do Gateway de pagamento AbacatePay;
  • Implementação do BullMQ para o processamento do PIX;
  • Criação do Docker;
  • Criação do Swagger para documentação da API;

About

🌐 Backend de um E-commerce desenvolvido em Node.JS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors