Skip to content

Projeto de uma API RESTful de gerenciamento de vendas no formato dropshipping utilizando arquitetura MSC

Notifications You must be signed in to change notification settings

joaoespacheco/Trybe-Project-25-store-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cc114a7 · Dec 23, 2022

History

20 Commits
Oct 22, 2022
Oct 22, 2022
Oct 22, 2022
Oct 11, 2022
Oct 11, 2022
Oct 11, 2022
Oct 11, 2022
Oct 11, 2022
Dec 23, 2022
Oct 11, 2022
Oct 11, 2022
Oct 11, 2022
Oct 17, 2022
Oct 17, 2022
Oct 11, 2022
Nov 14, 2022

Repository files navigation

Store Manager 🏬

📄 Sobre:

Projeto desenvolvido durante o módulo de back-end do curso de desenvolvimento web da Trybe.

Neste projeto foi desenvolvida uma API RESTful de gerenciamento de vendas no formato dropshipping. Dentro da API é possível criar, visualizar, deletar e atualizar os produtos e as vendas.

Para está aplicação foi utilizado um banco de dados MySQL.

A API foi criada utilizando arquitetura MSC (model-service-controller).

Foram desenvolvidos testes unitários para a aplicação utilizando as ferramentas Mocha, Chai e Sinon.


Desempenho Aprovado com 100% de desempenho em todos os requisitos
Requisitos
Requisitos obrigatórios:
  1. Crie endpoints para listar produtos
  2. Desenvolva testes que cubram no mínimo 5% das camadas da sua aplicação
  3. Crie endpoint para cadastrar produtos
  4. Crie validações para produtos
  5. Desenvolva testes que cubram no mínimo 10% das camadas da sua aplicação
  6. Crie endpoint para validar e cadastrar vendas
  7. Desenvolva testes que cubram no mínimo 15% das camadas da sua aplicação
  8. Crie endpoints para listar vendas
  9. Desenvolva testes que cubram no mínimo 20% das camadas da sua aplicação
  10. Crie endpoint para atualizar um produto
  11. Desenvolva testes que cubram no mínimo 25% das camadas da sua aplicação
  12. Crie endpoint para deletar um produto

Requisitos bônus:

  1. Desenvolva testes que cubram no mínimo 30% das camadas da sua aplicação
  2. Crie endpoint para deletar uma venda
  3. Desenvolva testes que cubram no mínimo 35% das camadas da sua aplicação
  4. Crie endpoint para atualizar uma venda
  5. Desenvolva testes que cubram no mínimo 40% das camadas da sua aplicação
  6. Crie endpoint products/search?q=searchTerm
  7. Desenvolva testes que cubram no mínimo 50% das camadas da sua aplicação
  8. Desenvolva testes que cubram no mínimo 60% das camadas da sua aplicação
Diagrama Entidade-Relacionamento

image


↪️ Rotas:

Products:

GET /products

Lista todos os produtos cadastrados no banco de dados

  • Se bem-sucedido, retorna status 200 e um array com todos os produtos cadastrados
GET /products/:id

Lista apenas o produto correspondente ao id da rota

  • Se bem-sucedido, retorna status 200 e um objeto contendo as informações do produto
GET /products/search?q=searchTerm

Lista todos os produtos que possuem em seu nome o termo passado na rota

  • Se bem-sucedido, retorna status 200 e um array contendo os produtos que correspondem a busca
  • Se o termo de busca for vazio, retorna status 200 e um array contendo todos os produtos cadastrados
POST /products

Cadastra um novo produto no banco de dados

  • Se bem-sucedido, retorna status 201 e um objeto contendo os dados do novo produto
PUT /products/:id

Altera as informações de um produto cadastrado no banco de dados

  • Se bem-sucedido, retorna status 200 e um objeto contendo os dados atualizados do produto
DELETE /products/:id

Remove um produto cadastrado do banco de dados

  • Se bem-sucedido, retorna apenas o status 204

Sales:

GET /sales

Lista todas as vendas cadastradas no banco de dados

  • Se bem-sucedido, retorna status 200 e um array com todas as vendas cadastradas
GET /sales/:id

Lista apenas a venda correspondente ao id da rota

  • Se bem-sucedido, retorna status 200 e um array contendo as informações da venda
POST /sales

Cadastra uma nova venda no banco de dados

  • Se bem-sucedido, retorna status 201 e um objeto contendo o id da venda e um array com as informações dos produtos vendidos
PUT /sales/:id

Altera as informações de uma venda cadastrada no banco de dados

  • Se bem-sucedido, retorna status 200 e um objeto contendo o id da venda e um array com as informações atualizadas dos produtos vendidos
DELETE /sales/:id

Remove uma venda cadastrada no banco de dados

  • Se bem-sucedido, retorna apenas um status 204

🤹🏽 Habilidades Desenvolvidas:

  • Criar uma aplicação utilizando Express.js
  • Criar uma API RESTful utilizando arquitetura MSC (Model-Service-Controller)
  • Validar dados das requisições utilizando a biblioteca Joi
  • Implementar testes unitários utilizando as ferramentas Mocha, Chai e Sinon

🧰 Ferramentas:

  • JavaScript
  • Node.js
    • Express.js
  • DotEnv
  • Joi
  • MySQL
  • Mocha.js
  • Chai.js
  • Sinon.js
  • Docker

📝 Desenvolvido por:

About

Projeto de uma API RESTful de gerenciamento de vendas no formato dropshipping utilizando arquitetura MSC

Topics

Resources

Stars

Watchers

Forks