Skip to content

AirelRibeiro/store-manager

Repository files navigation

🧾🏬 Store Manager 🛍️🛒

image

Descrição:

O projeto Store Manager, desenvolvido no módulo de Back-end da Trybe, é uma API RESTful que simula um sistema de gerenciamento de vendas no formato dropshipping, onde é possível criar, ler, deletar e atualizar (CRUD) produtos e vendas. A API foi desenvolvida com a arquitetura de software MSC (Model-Service-Controller), através de TDD (Test Driven Development).

Processo e ferramentas de desenvolvimento:

Mocha_logo Chai logo Sinon_logo

Para TDD (Desenvolvimento Orientado a Testes), o teste de cada camada da arquitetura MSC foi desenvolvidos utilizando Mocha, Chai e Sinon. A cada funcionalidade CRUD implementada, foram seguidos os seguintes passos de desenvolvimento:

  • Primeiro o Model , que é responsável pela manipulação dos dados e ligação com o banco de dados. Foram escritos os testes da camada Model, os testes falharam, a camada foi Model foi implementada, então os testes passaram;

  • Segunda camada foi Service, responsável pela aplicação das regras de negócio e a ligação entre o Model e o Controller. O Service foi testado e todos os testes falharam; a camada foi construída e então os testes passaram;

  • Onde era cabível, foram incluídos Middlewares de validação para os dados da requisição. Os Middlewares passaram pelo mesmo processo, foi testado e todos os testes falharam; então foi implementado e os testes passaram;

  • Por último foi implementada a camada Controller, que é responsável pelo contato direto com o Cliente. Os testes foram escritos, falharam; o Controller foi construído e os testes passados.

Docker_logo Mysql_logo NodeJs_logo Express_logo Postman_logo Swagger_logo

O projeto foi executado em um ambiente isolado, utilizando Docker e o banco de dados gerenciado com My SQL. A execução dos códigos JavaScript fora do browser foi feita com Node.js; as requisições com diferentes verbos HTTP e diferentes endpoints foram estruturadas com o Express. A verificação das solicitações HTTP e leitura de suas respostas foi feita utilizando Postman; enquanto a construção da documentação da API foi feita com o Swagger.

Consultando a documentação por meio do Postman:

Clique e escolha entre Fork collection ou View collection

Run in Postman

Rodando o projeto na sua máquina:

  1. Escolha um diretório e clone o repositório utilizando git clone:
  git clone git@github.com:AirelRibeiro/store-manager.git
  1. Acesse o diretório do projeto store-manager e instale as dependências:
  cd store-manager
  npm install
  1. Então rode npm start para iniciar a aplicação:
  npm start
  1. Por fim, acesse o projeto via navegador, usando a seguinte url:
  http://localhost:3000
  1. Para acessar a documentação da API, vá para o endpoint /docs:
  http://localhost:3000/docs