Skip to content

Latest commit

 

History

History
391 lines (254 loc) · 7.9 KB

README.md

File metadata and controls

391 lines (254 loc) · 7.9 KB

Logo

Shopper

Back-end
Api desenvolvida para atender as demandas de um teste tecnico da Shopper.com.br

-----------------------------------------------------

🧩 Introdução    |    🚀 Resultados   |    🧪 Dependências   |    💡 Possíveis Melhorias    |    🏆 Créditos       


🧩 Introdução

⠀⠀⠀⠀Essa API foi desenvolvida para representar a dinâmica básica de um supermercado virtual. Aqui será encontrado três entidades fundamentais para o bom funcionamento de um supermercado: produtos, usuário e carrinho de compra. As funcionalidades básicas encontradas nessa API são: ver os produto e mudar a quantidade de estoque, cadastrar usuário, adicionar, remover e ver produtos dentro do carrinho.


Documentação no PostemanLink


Projeto Front-endLink GitHub



🚀 Resultados

Todos os resultados foram alcançados com sucesso. De modo geral são esses os resultados de cada requisição.


🚩 As funcionalidades básicas da API são:

  • Pegar todos os produtos
  • Pegar o id do usuario atraves do nome
  • Pegar os produtos dentro do carrinho do usuario
  • Pegar a soma de todos os item do usuario
  • Adicionar produtos dentro do carrinho
  • Adicionar um novo usuario
  • Mudar a quantidade de um item dentro do carrinho
  • Mudar a quantidade de um produto dentro do estoque
  • Deletar um produto dentro do carrinho

🎒 Tabelas MySQL


🍉🍊🥝 Produtcs

Nessa tabela possui todos os produtos cadastrados pela empresa.

🎲 No Banco de dados o produto Possuir:

  • id: Identificador único
  • name: Nome do produto
  • price: Preço do produto
  • qty_stoke: A quantidade em estoque do produto

⛵ Endpoints


GET All Products

http://localhost:3003/shopper/products

🎯 PEGAR TODOS OS PRODUTOS CADASTRADO NO BANCO DE DADOS.


PUT Products Quantity

http://localhost:3003/shopper/products/:id/:quantity

🎯 MUDA A QUANTIDADE DE ESTOQUE DE UM DETERMINADO PRODUTO.


PATH VARIABLES

  • id = Indentificador do produto
  • quantity = Quantidade

👨‍ User

Aqui é onde fica todos os dados do usuário

🎲 No Banco de dados o user Possuir:

  • id: identificador único gerado pela própria aplicação
  • name: nome da pessoa
  • data_nasc: Data de entrega

⛵ Endpoints


POST Create User and Delivery Date

http://localhost:3003/shopper/user

🎯 CRIAR UM USUÁRIO COM A DATA DE ENTREGA DO PEDIDO.

{
    "name": "user",
    "delivery_date": "2022-10-01"
}

GET Id User

http://localhost:3003/shopper/user/:name

🎯 PEGA O ID DO USUÁRIO QUE É GERADO PELA APLICAÇÃO, APÓS A CRIAÇÃO DE UM USUÁRIO.


PATH VARIABLES

  • name = nome do usuario

GET Cart User

http://localhost:3003/shopper/user/products/:name

🎯 PEGA TODOS OS PRODUTOS QUE USUÁRIO CADASTROU NO CARRINHO.


PATH VARIABLES

name = id do usuario gerado pela aplicação


GET Price Total

http://localhost:3003/shopper/user/product/total/price/:id

🎯 Pega a soma total de todos item que tem dentro do carrinho. 


PATH VARIABLES

id = id do usuario gerado pela aplicação


👨‍🛒🍉🍊🥝 Products User

Nessa tabela possui todos os produtos cadastrados pelo usuário.

🎲 No Banco de dados o Products User Possuir:

  • id: identificador único gerado pela própria aplicação
  • id_product: relação entre product_user e produtos
  • id_user: relação entro product_user e usuario
  • quantity: A quantidade de itens dentro do carrinho

⛵ Endpoints


POST Put in Cart

http://localhost:3003/shopper/user/products

🎯 CADASTRA UM DETERMINADO PRODUTO NO CARRINHO.

{
    "id_product": 45,
    "id_user": "9313154f-4bbf-454d-a0dd-7cbe2eed465d"
}

PUT Quantity of Item in Cart

http://localhost:3003/shopper/user/:id/:quantity

🎯 MUDA A QUANTIDADE DE UM DETERMINADO PRODUTO QUE ESTAR NO CARRINHO.


PATH VARIABLES

id = id do produto quantity = quantidade desejada


DEL Remove Item From Cart

http://localhost:3003/shopper/user/products/:id

🎯 REMOVE UM DETERMINADO PRODUTO DO CARRINHO.


PATH VARIABLES

id = id do produto


🚀 Tecnologias/Tools

  • Nodejs
  • Express/Cors
  • MySQL - banco relacional
  • Typescript
  • NPM

📖 Volta ao Sumário


🧪 Dependências

Requisitos para rotar o codigo...


📖 Instalação


Caso tenha Git basta da git clone, caso não tenha baixe o projeto completo em dowlon

git clone https://github.com/MayconCoutinho/Api-Shopper

Caso já tenha o Node em sua maquina basta instalar o projeto com npm i

npm i 

OBS - Muito importante, caso não tenha um banco de dados MySQL disponivel, não vai da para rodar o projeto, pois o projeto conecta diretamente com o banco de dados sendo assim crie um arquivo ".env" para por os dados do MySQL.

DB_HOST = Dados MySQL
DB_USER = Dados MySQL
DB_PASSWORD = Dados MySQL
DB_SCHEMA = Dados MySQL

📖 Scripts

  "scripts": {
   "start": "node ./build/src/index.js",
    "migrations": "npx prisma migrate dev",
    "build": "tsc",
    "dev": "ts-node-dev ./src/server.ts ",
    "test": "vitest",
    "commit": "git-cz"
  }

📖 Dependencies

  "dependencies": {
   "cors": "^2.8.5",
    "dotenv": "^16.0.3",
    "express": "^4.18.1",
    "knex": "^2.3.0",
    "mysql": "^2.18.1",
    "swagger-ui-express": "^4.6.3",
    "uuid": "^9.0.0"
  }

📖 devDependencies

  "devDependencies": {
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.14",
    "@types/knex": "^0.16.1",
    "@types/node": "^18.8.2",
    "@types/swagger-ui-express": "^4.1.3",
    "@types/uuid": "^8.3.4",
    "ts-node-dev": "^2.0.0",
    "typescript": "^4.8.4"
  }

📖 Volta ao Sumário


💡 Possíveis Melhoras

Possíveis melhorias no código e no projeto, caso queira voltar e melhorá lo.


  • ***- ***
  • ***- ***

📖 Volta ao Sumário


🏆 Créditos

Todo o projeto foi feito por...



Maycon Coutinho
Hello 😃 Se você chegou até aqui, acredito que gostou do meu projeto, nesse caso temos algo em comum, sendo assim que tal conversamos um pouco? Meu chama no linkedin 😁