🚀 Projeto desenvolvido em 07/2022 - Bloco 23/Trybe
Desenvolver uma API de gerenciamento de vendas contendo endpoints para criar, exibir, atualizar e excluir produtos e vendas, utilizando o modelo de arquitetura MSC (model-service-controller) juntamente com o padrão REST, assim criando uma API RESTful.
- Acessar o banco de dados do MySQL através do Docker
- Utilizar o Express para o desenvolvimento da API
- Gerenciar as vendas e produtos com um CRUD (Create, Read, Update e Delete)
- Tratar erros com o express-recue
- Validar dados recebidos através do Joi
- Monitorar mudanças nos arquivos com o Nodemon
- Criar testes para cada camada MSC utilizando Mocha, Chai e Sinon
- MySQL
- Docker
- Express
- Express-rescue
- Joi
- Nodemon
- Mocha, Chai e Sinon
⚡ Todos os projetos da Trybe utilizam Linters, Git e Github
Rotas de produtos | Descrição | - | Rotas de vendas | Descrição |
---|---|---|---|---|
GET /products |
Lista todas os produtos | - | GET /sales |
Lista todas as vendas |
GET /products/:id |
Lista um produto específico | - | GET /sales/:id |
Lista uma venda específica |
GET /products/search |
Exibe o produto pesquisado | - | POST /sales |
Cadastra uma nova venda |
POST /products |
Cadastra um novo produto | - | PUT /sales/:id |
Altera os dados de uma venda |
PUT /products/:id |
Altera os dados de um produto | - | DELETE /sales/:id |
Deleta uma venda específica |
DELETE /products/:id |
Deleta um produto específico |
Clone o projeto e entre no diretório
git clone git@github.com:Jacqueline-Silva/store-manager.git && cd store-manager
Instale as dependências
npm install
Crie seu arquivo .env e adicione as variáveis de ambiente necessárias
MYSQL_HOST
MYSQL_USER
MYSQL_PASSWORD
PORT
Suba o container docker
docker-compose up -d db
Crie o banco de dados e o popule
npm run migration && npm run seed
Inicie o servidor
npm run start
Para verificar os endpoints utilizados use a ferramenta desejada, por exemplo o Insomnia (como no vídeo)
Para visualizar o banco de dados faça a conexão do MySQL com a porta 3306
Os arquivos docker-compose, seed.sql, migration.sql e connectUtils foram disponibilizados pela Trybe para realização deste projeto