Skip to content

Rafael-Souza-97/store-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Store Manager Project

Aplicação realizada enquanto aluno da Trybe para reforçar os conhecimentos sobre Node.js conectado à um banco de dados MySQL através de uma API RESTful.

O projeto consiste em desenvolver um sistema de gerenciamento de vendas no formato dropshipping, em que é possível procurar, criar, visualizar e deletar produtos e vendas. A aplicação utiliza uma API com arquitetura MSC (Model-Service-Controller), que é um modelo de arquitetura de software baseado em camadas:

  • Model: Esta camada é responsável por abrigar todo o código que pode acessar os dados no banco de dados ou no sistema de arquivos.
  • Service: Esta camada é responsável por validar as regras de negócio da aplicação.
  • Controller: Essa camada é responsável por validar os valores recebidos de uma aplicação cliente.

Além disso, foi utilizado tecnologias como mocha, chai e sinon para testar e validar a aplicação.


Descrição do Projeto:

A API a ser construída é um sistema de gerenciamento de vendas no formato dropshipping em que será possível procurar, criar, visualizar e deletar produtos e vendas. Você deverá utilizar o banco de dados MySQL para a gestão de dados. Além disso, a API deve ser RESTful.


Como instalar o Projeto Store Manager

Instalação


Rodando a aplicação via 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.
  • ⚠️ Caso opte por utilizar o Docker, TODOS os comandos disponíveis no package.json (npm start, npm test, npm run debug, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comando docker exec citado acima
  • ⚠️ 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.
  • ⚠️ 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>

  • Clone o repositório git@github.com:Rafael-Souza-97/store-manager.git:
git clone git@github.com:Rafael-Souza-97/store-manager.git

  • Entre na pasta do repositório que você acabou de clonar:
cd store-manager

  • Rode o serviço node com o comando docker-compose up -d:
  • Esse serviço irá inicializar um container chamado store_manager.
  • A partir daqui você pode rodar o container via CLI ou abri-lo no VS Code.
docker-compose up -d

  • 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.
  • As credencias de acesso ao banco de dados estão definidas no arquivo docker-compose.yml, e são acessíveis no container através das variáveis de ambiente MYSQL_USER e MYSQL_PASSWORD.
docker exec -it store_manager bash

  • Instale as depëndencias, caso necessário, com npm install (dentro do bash do container):
npm install

Execute a aplicação com npm start ou npm run debug



Rodando a aplicação SEM Docker

⚠️ Para rodar a aplicação desta forma, obrigatoriamente você deve ter o Node instalado em seu computador. :warning: Atenção: Não esqueça de renomear/configurar o arquivo .env.example para os testes locais funcionarem.


  • Clone o repositório git@github.com:Rafael-Souza-97/store-manager.git:
git clone git@github.com:Rafael-Souza-97/store-manager.git

  • Entre na pasta do repositório que você acabou de clonar:
cd store-manager

Execute a aplicação com npm start ou npm run debug


Scripts

  • Criar o banco de dados e gerar as tabelas:
  npm run migration
  • Limpar e popular o banco de dados:
  npm run seed
  • Executar os testes de unidade:
  npm run test:mocha

Autor

Referências

Tecnologias / Ferramentas utilizadas

Testes

Infos Adicionais

  • Percentual de cumprimento de requisitos (Trybe)- 100%

Preview

store_manager.mp4