/project-store-manager

API utilizando a arquitetura MSC (model-service-controller)

Primary LanguageJavaScript

Projeto Store Manager 💻

Arquitetura de Software & Testes Unitários

NodeJS Express.js MySQL Docker Mocha


Sobre:

Nesse projeto de back-end pratiquei Arquitetura de Software. Foi proposta a construção de uma API utilizando o ambiente Node.js e o framework Express. A API foi desenvolvida através do modelo de construção MSC (model-service-controller), contendo todas as operações que constituem a forma de manipulação de dados CRUD. Detalhe, nesse projeto era necessário também o desenvolvimento de testes unitários para cobrir a aplicação.

A API construída é um sistema de gerenciamento de vendas no formato dropshipping em que é possível criar, visualizar, deletar e atualizar produtos e vendas.

Foi testada cada camada e consegui realizar 100% de cobertura da aplicação, sem faltar sequer uma linha a ser testada, o que me deixou bastante orgulhoso !

Foram desenvolvidas as seguintes habilidades:

  • Node.js
  • Express
  • Arquitetura de Software
  • MySQL
  • Nodemon
  • Docker
  • CRUD
  • Frameworks de Testes: Mocha, Chai e Sinon;

Instalação do projeto localmente:

Após cada um dos passos, haverá um exemplo do comando a ser digitado para fazer o que está sendo pedido, caso tenha dificuldades e o exemplo não seja suficiente, não hesite em me contatar em através do gmail: pedrodc1236@gmail.com

  1. Abra o terminal e crie um diretório no local de sua preferência com o comando mkdir:
  mkdir projetos
  1. Entre no diretório que acabou de criar e depois clone o projeto:
  cd projetos
  git clone git@github.com:pedrodc1236/project-store-manager.git
  1. Acesse o diretório do projeto e depois utilize o comando npm install para instalar todas as dependências necessárias:
  cd project-store-manager
  npm install
  • Dica: Caso queira utilizar Docker para rodar os testes localmente e validar as funcionalidades, basta seguir as seguintes instruções:

⚠️ 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.

ℹ️ Use o comando docker exec -it store_manager bash.

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