Skip to content

IgorBrizack/ProjetoStoreManager

Repository files navigation

Projeto Store Manager

Sobre:

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.

📋 Execute o projeto em sua máquina

🐳 Rodando no Docker vs Localmente

👉 Com Docker

⚠️ Antes de começar, seu docker-compose precisa estar na versão 1.29 ou superior. Veja aqui ou na documentação como instalá-lo. No primeiro artigo, você pode substituir onde está com 1.26.0 por 1.29.2.

ℹ️ Rode os serviços node e db com o comando docker-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 chamado store_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 no package.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 comando docker 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 a porta 3000, seja com outro processo do Node.js (que você pode parar com o comando killall node) ou algum container! Neste caso você pode parar o container com o comando docker 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 comando docker stop nomeContainer e se quiser parar e excluir os containers, basta executar o comando docker-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.


👉 Sem Docker

ℹ️ 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 o Node.js instalado em seu computador.

  • ⚠️ Atenção: A versão do Node.js e NPM a ser utilizada é "node": ">=16.0.0" e "npm": ">=7.0.0", como descrito a chave engines no arquivo package.json. Idealmente deve-se utilizar o Node.js na versão 16.14, a versão na que esse projeto foi testado.


👨🏻‍💻 Habilidades

  • 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.

🛠️ Ferramentas & Metodologias Utilizadas

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •