Neste projeto, eu desenvolvi uma API para gerenciamento de vendas no formato dropshipping, utilizando a arquitetura MSC (model-service-controller). Com essa API, é possível realizar operações CRUD (criar, visualizar, atualizar e deletar) tanto em produtos quanto em vendas. Além disso, para garantir a qualidade do código, implementei testes unitários utilizando as ferramentas Mocha, Chai e Sinon. Esses testes permitem verificar se as funcionalidades da API estão operando corretamente e ajudam a prevenir erros futuros.
- Desenvolver uma API RESTful utilizando a arquitetura MSC (model-service-controller) para gerenciamento de vendas no formato dropshipping.
- Permitir a criação, visualização, deleção e atualização de produtos e vendas através da API.
- Utilizar o Node.js em conjunto com o framework Express para criar o servidor HTTP e gerenciar as rotas.
- Criar um ambiente de desenvolvimento e produção isolado utilizando o Docker.
- Gerenciar o banco de dados MySQL através do MySQL Workbench.
- Garantir que a API seja segura, eficiente e que siga os princípios RESTful.
- Node.js
- Express
- Docker
- MySQL
- MySQL Workbench
- Joi
- Mocha
- Sinon
- Chai
⌨️ Rotas
- Retorna todos os produtos cadastrados no banco de dados, ordenados pelo campo id.
- Retorna apenas o produto com o id informado na URL.
-
Cadastra um novo produto no banco de dados.
-
O corpo da requisição deve seguir o seguinte formato: json
{
"name": "Nome do Produto"
}
- Atualiza o produto com o id informado na URL. O corpo da requisição deve seguir o mesmo formato do cadastro.
- Deleta o produto com o id informado na URL.
- Busca produtos no banco de dados que contenham o termo informado no query param q da URL. Retorna um array vazio caso nenhum produto satisfaça a busca.
- Retorna todas as vendas cadastradas no banco de dados, ordenadas pelos campos saleId e productId.
- Retorna apenas a venda com o id informado na URL.
- Cadastra uma nova venda no banco de dados.
- O corpo da requisição deve seguir o seguinte formato:
[ { "productId": 1, "quantity": 1 }, { "productId": 2, "quantity": 5 }]
- É possível cadastrar a venda de vários produtos através de uma única requisição.
- Deleta a venda com o id informado na URL.
- Nodejs 16 +
- Docker
- Docker-compose
No terminal
https://github.com/ErickArgollo/project-Store-Manager
Após clonar, execute o docker compose na pasta raiz do projeto, executando o comando
docker-compose up -d --build
Execute o container e instale os pacotes da aplicação:
docker exec -it store_manager bash
npm install
Rode a aplicação com o comando:
npm start
A visualização e utilização dos endpoints pode ser feita através do postman, thunderclient, etc.
- Faça um fork do projeto;
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
; - Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
; - Envie as suas alterações:
git push origin my-feature
; - Abra o seu pull-request na página do GitHub.
Esse projeto está sob a licença: