An open API service indexing awesome lists of open source software.

https://github.com/tonyycruz/store_manager

Desenvolvimento de uma API de vendas utilizando a arquitetura MSC
https://github.com/tonyycruz/store_manager

commit-conventions express mysql mysql2 nodejs

Last synced: 2 months ago
JSON representation

Desenvolvimento de uma API de vendas utilizando a arquitetura MSC

Awesome Lists containing this project

README

        

Projeto Store Manager


Desenvolvimento de uma API de vendas utilizando a arquitetura MSC (model-service-controller)

---


Diagrama DER (Diagrama de Entidade-Relacionamento)

---


📃 Sobre o Projeto

A API desenvolvida é um sistema de gerenciamento de vendas no formato dropshipping em que será possível criar, visualizar, deletar e atualizar produtos e vendas. A API é RESTful e a gestão de dados é feita com o MySQL.

---

Rotas utilizáveis

Ver rotas


- POST `/products` para cadastrar produtos. Utilize um body nesse formato:

```jsx
{
"name": "ProductName"
}
```

---

- POST `/sales` para cadastrar vendas. Utilize um body nesse formato:

```jsx
[
{
"productId": 1,
"quantity":3
},
]
```

---

- GET `/products` ou `/sales` para receber todos os produtos ou vendas.

---

- GET `/products/:id` ou `/sales/:id` para receber produtos ou vendas de acordo com o id.

---

- GET `/products/search?q=` para buscar produto por palavra chave.

---

- DELETE `/products/:id` ou `/sales/:id` para deletar produtos ou vendas de acordo com o id.

---

- PUT `/products/:id` para atualizar o nome do produto. Utilize um body nesse formato:

```jsx
{
"name": "ProductName"
}
```
---

- PUT `/sales/:id` para atualizar a venda. Utilize um body nesse formato:

```jsx
[
{
"productId": 1,
"quantity":2
},
]
```


---

### 🛠 Tecnologias e Bibliotecas utilizadas no desenvolvimento do projeto

- **[Node.js](https://nodejs.org/en/)**

- **[MySQL](https://www.mysql.com/products/workbench/)**

- **[Mysql2](https://www.npmjs.com/package/mysql2)**

- **[Express](http://expressjs.com/pt-br/)**

- **[Nodemon](https://www.npmjs.com/package/nodemon)**

---

### 🚀 Como executar o projeto

_Pré-requisitos_

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:
[Git](https://git-scm.com),
[Node.js](https://nodejs.org/en/).

É recomendado utilizar algum cliente HTTP, como [Postman](https://www.postman.com/) ou o [Insomnia](https://insomnia.rest/download).

Além disto é bom ter um editor para trabalhar com o código como [VSCode](https://code.visualstudio.com/)

---

_Clone o repositorio_

```jsx
git clone [email protected]:TonyyCruz/store_manager.git
```

---

:whale: Rodando no Docker


## Com Docker


_Rode o serviço `node` com o comando_

```jsx
docker-compose up -d
```

- Esse serviço irá inicializar dois containers chamados `store_manager e store_manager_db`, respectivamente.
- A partir daqui você pode rodar o container via CLI ou abri-lo no VS Code.

_Via CLI use o comando_
```jsx
docker exec -it store_manager bash
```
- Ele te dará acesso ao terminal interativo do container store_manager(node) criado pelo compose, que está rodando em segundo plano.

_Instale as dependências `dentro do container` com_

```jsx
npm install
```

⚠️Atenção: Caso opte por utilizar o Docker, TODOS os scripts disponíveis no package.json devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comando docker exec.



---

:computer: Rodando Localmente


_Instale as dependências com o comando_

```jsx
npm install
```
- Para rodar o projeto desta forma, **obrigatoriamente** você deve ter o `node` instalado em seu computador.
- Recomenda-se a versão `^16`

⚠️Atenção: Não esqueça de renomear/configurar o arquivo .env.example

---

### 💡 Scripts prontos

Scripts

- Criar o banco de dados e gerar as tabelas:
```sh
npm run migration
```

- Limpar e popular o banco de dados:
```sh
npm run seed
```

- Iniciar o servidor Node:
```sh
npm start
```

- Iniciar o servidor Node com nodemon:
```sh
npm run dev
```

- Executar os testes de unidade:
```sh
npm run test:mocha
```


---