Store Manager é um API Rest desenvolvida com uma arquitetura em camadas MSC (Model-Service-Controller), desenvolvida por TDD(Test-driven development). Essa aplicação faz o gerenciamento de vendas do formado drop shipping, conseguindo criar, ler, editar e excluir um produto ou uma venda(CRUD). A aplicação foi desenvolvida em agosto de 2022, durante o Módulo de Back-End da Trybe.
O projeto foi desenvolvido em uma arquitetura em camadas MSC (Model-Service-Controller), a interação com o banco de dados MySQL foi feita de maneira direta através de querys. Sendo construída com o framework Express para estruturar endpoints e tratar erros. Usando os princípios dos REST para garantir qualidade e padrão do código, além de padronizar o formato que os dados seriam recebidos e retornados.
O framework Mocha foi utilizado para estruturar os testes, as asserções utilizadas foram providas pela biblioteca Chai. Por tratar-se de testes unitários, apenas uma funcionalidade específica era testada por vez, para que as demais funções não influenciassem nos teste, a biblioteca Sinon foi usada para criar dubles.
Para assegurar um ambiente isolado e seguro para o desenvolvimento e dos testes, foi usado o Docker. Os códigos foram escritas na ferramenta da Microsoft, Visual Studio Code. Durante a criação o Nodemon foi utilizado para rodar a execução, essa ferramenta tornou o desenvolvimento mais dinâmico, o monitoramento do comportamento da API foi feito com o Insomnia.
Nesse projeto também foi feita a criação de testes unitários, com cobertura de 100% das linhas¹. Os testes foram feitos para Models, Servirces e Controllers, senso implementado com o uso de Mocha, Chai e Sinon. Os testes possuem dubles, portanto, podem ser executados mesmo sem um banco de dados(npm run test:mocha
).
¹ - Relativo aos arquivos testados.
💻 Localmente
-
Para rodar a aplicação, obrigatoriamente você deve ter o
node
instalado em seu computador. -
É necessário ter o MySQL sendo executado
-
✨ Dica: Caso não possua o banco de dados criado ainda, user o comando
npm run migration
² -
✨ Dica: Para povoar o banco de dados, execute o comando
npm run seed
²
- Clone o projeto para sua maquina
git clone git@github.com:JeffersonSimplicio/project-store-manager.git
- Entre no diretório gerado
cd project-store-manager
- Instale as dependências
npm i
-
Renomeie o arquivo
.env.example
para.env
e edite os dados para os da sua maquina -
Inicialize a aplicação
npm start
🐳 Docker
-
Para rodar a aplicação com docker, é necessário ter instalando em sua maquina
Docker
eDocker Compose
-
✨ Dica: Caso não possua o banco de dados criado ainda, user o comando
npm run migration
² -
✨ Dica: Para povoar o banco de dados, execute o comando
npm run seed
²
² - execute esses comandos no terminal do container
- Clone o projeto para sua maquina
git clone git@github.com:JeffersonSimplicio/project-store-manager.git
- Entre no diretório gerado
cd project-store-manager
- Suba o ambiente do docker
docker-compose up -d
- Acesse o terminal do contêiner
docker exec -it store_manager bash
- Instale as dependências
npm i
- Inicialize a aplicação
npm start