Projeto realizado no módulo de Back-end durante o curso de Desenvolvimento Web pela Trybe, a escola que te ensina a programar, a aprender e a trabalhar.
Store Manage é uma API RESTful desenvolvida com a arquitetura MSC
(model-service-controller).
Esta API é um sistema de gerenciamento de vendas no formato dropshipping em que é possível criar, visualizar, deletar e atualizar produtos e vendas utilizando o banco de dados MySQL
para a gestão.
- Criar endpoints;
- Criar uma API de um CRUD (Create, Read, Update e Delete);
- Criar middlewares e validações;
- Desenvolvimento seguindo a arquitetura MSC;
- Aderência ao padrão REST;
- Desenvolvimento de testes unitários utilizando
Mocha
,Chai
eSinon
.
🗄️ Fornecido pela Trybe
- Arquivo
Dockerfile
,docker-compose.yml
,.vscode
,migration.sql
,seed.sql
,index.js
,.eslintrc.json
,.eslintignore
,.env.example
,.editorconfig
,erStoreManager.png
,utils.js
.
Diagrama de Entidade-Relacionamento
O Banco possui 3 tabelas:
- A tabela
products
, com os atributosid
ename
; - A tabela
sales
, com os atributosid
edate
; - A tabela
sales_products
, com os atributossale_id
,product_id
equantity
;
npm run migration
npm run seed
Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env
referenciando o seu usuário e senha do seu SQL
MYSQL_HOST=localhost
MYSQL_USER=seuusuario
MYSQL_PASSWORD=suasenha
MYSQL_DATABASE=StoreManager
PORT=3000
Caso opte por uma configuração padrão basta renomear o arquivo .env.example
para .env
Para rodar esta aplicação é necessário ter o Docker 🐳 e Docker Compose instalados no seu computador.
O Docker Compose precisa estar na versão 1.29 ou superior.
git clone git@github.com:tiemifaustino/store-manager.git
- Entre na pasta do repositório que você acabou de clonar:
cd store-manager
docker-compose up -d
Esses serviços irão inicializar um container chamado store_manager
e outro chamado store_manager_db
3. Use o comando abaixo para ter acesso ao terminal interativo do container store_manager
criado pelo compose, que está rodando em segundo plano.
docker exec -it store_manager bash
npm install
npm start
6. Para verificar a cobertura dos testes unitários rode o seguinte comando dentro do terminal do container store_manager
npm run test:mocha
7. Com a aplicação em execução, acesse a documentação 🗂️ (em construção) através da rota:
http://localhost:3000/docs/