O projeto Store Manager consiste na criação de uma API em conexão com um banco de dados SQL. Durante o desenvolvimento foram necessário a criação de uma CRUD para interagir com o banco de dados e a nossa API, aplicação do MSC (Model, Service e Controller) assim como foi necessário desenvolver testes unitários que cobrisse no minimo 60% da nossa aplicação.
🐳 Rodando no Docker vs Localmente
1.26.0
por 1.29.2
.
ℹ️ Rode os serviços
node
edb
com o comandodocker-compose up -d
.
- Lembre-se de parar o
mysql
se estiver usando localmente na porta padrão (3306
), ou adapte, caso queria fazer uso da aplicação em containers; - Esses serviços irão inicializar um container chamado
store_manager
e outro chamadostore_manager_db
; - A partir daqui você pode rodar o container
store_manager
via CLI ou abri-lo no VS Code.
ℹ️ Opção 1: Use o comando
docker-compose run node npm test
, ou para acessar o container e executar lá:
ℹ️ Opção 2: Use o comando
docker exec -it store_manager bash
e sigas passos abaixo.
- Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
ℹ️ Instale as dependências [Caso existam] com
npm install
-
⚠️ Atenção: Caso opte por utilizar o Docker, TODOS os comandos disponíveis nopackage.json
(npm start, npm test, npm run dev, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comandodocker exec
citado acima. -
⚠️ Atenção: O git dentro do container não vem configurado com suas credenciais. Ou faça os commits fora do container, ou configure as suas credenciais do git dentro do container. -
⚠️ Atenção: Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador. -
⚠️ Atenção: Se você se deparar com o erro abaixo, quer dizer que sua aplicação já esta utilizando aporta 3000
, seja com outro processo do Node.js (que você pode parar com o comandokillall node
) ou algum container! Neste caso você pode parar o container com o comandodocker stop <nome-do-container>
. -
✨ Dica: Antes de iniciar qualquer coisa, observe os containers que estão em execução em sua máquina. Para ver os containers em execução basta usar o comando
docker container ls
, caso queira parar o container basta usar o comandodocker stop nomeContainer
e se quiser parar e excluir os containers, basta executar o comandodocker-compose down
-
✨ Dica: A extensão
Remote - Containers
(que estará na seção de extensões recomendadas do VS Code) é indicada para que você possa desenvolver sua aplicação no container Docker direto no VS Code, como você faz com seus arquivos locais.
ℹ️ Instale as dependências [Caso existam] com
npm install
-
⚠️ Atenção: Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador. -
⚠️ Atenção: Não esqueça de renomear/configurar o arquivo.env.example
para os testes locais funcionarem. -
⚠️ Atenção: Para rodar o projeto desta forma, obrigatoriamente você deve ter oNode.js
instalado em seu computador. -
⚠️ Atenção: A versão doNode.js
eNPM
a ser utilizada é"node": ">=16.0.0"
e"npm": ">=7.0.0"
, como descrito a chaveengines
no arquivopackage.json
. Idealmente deve-se utilizar o Node.js naversão 16.14
, a versão na que esse projeto foi testado.
- Criar uma aplicação usando o Express.js;
- Criar uma API RESTful utilizando a arquitetura MSC (Model-Service-Controller);
- Implementar testes unitários com Mocha, Chai e Sinon.
- Node.js;
- Express.js;
- Mocha;
- Chai;
- Sinon.js;
- sinon-chai;
- MYSQL;
- mysql2;
- Joi;
- Docker;
- JavaScript ES6+;
- TDD (Test Driven Development) - Desenvolvimento Orientado por Testes.