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
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á com1.26.0
por1.29.2
.
⚠️ Caso opte por utilizar o Docker, TODOS os comandos disponíveis nopackage.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 comandodocker 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 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>
- 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 comandodocker-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 ambienteMYSQL_USER
eMYSQL_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
ounpm 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
ounpm run debug
- 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
- API REST
- Express
- Node
- MySQL
- MySQL Workbench
- Camelize
- Docker
- Javascript
- Zoom
- Slack
- VsCode
- Git & GitHub
- Linux - Ubuntu
-
Percentual de cumprimento de requisitos (Trybe)- 100%