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).
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.
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.
Clique e escolha entre Fork collection ou View collection
- Escolha um diretório e clone o repositório utilizando git clone:
git clone git@github.com:AirelRibeiro/store-manager.git
- Acesse o diretório do projeto store-manager e instale as dependências:
cd store-manager
npm install
- Então rode npm start para iniciar a aplicação:
npm start
- Por fim, acesse o projeto via navegador, usando a seguinte url:
http://localhost:3000
- Para acessar a documentação da API, vá para o endpoint /docs:
http://localhost:3000/docs