Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonataslaguna/store-manager
API RESTful utilizando a arquitetura em camadas. Essa API é um sistema de gerenciamento de vendas em que é possível criar visualizar, deletar e atualizar produtos e vendas.
https://github.com/jonataslaguna/store-manager
api-restful docker express mocha mysql
Last synced: 9 days ago
JSON representation
API RESTful utilizando a arquitetura em camadas. Essa API é um sistema de gerenciamento de vendas em que é possível criar visualizar, deletar e atualizar produtos e vendas.
- Host: GitHub
- URL: https://github.com/jonataslaguna/store-manager
- Owner: jonataslaguna
- Created: 2023-11-03T17:47:08.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-20T21:37:20.000Z (11 months ago)
- Last Synced: 2024-10-11T22:41:23.860Z (about 1 month ago)
- Topics: api-restful, docker, express, mocha, mysql
- Language: JavaScript
- Homepage:
- Size: 920 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Store Manager
API RESTful utilizando a arquitetura em camadas. Essa API é um sistema de gerenciamento de vendas em que é possível criar visualizar, deletar e atualizar produtos e vendas.
## Instalação
> Aviso: Não é necessário entrar no container para rodar os testes e nem para iniciar a aplicação.
>
> - O container `backend` inicia a aplicação automaticamente.
>
>
> - É necessário ter a versão Node 16.14 ou superior instalada localmente.#
🐳 Iniciando a aplicação no Docker Compose
```bash
# Instale as dependências
npm install# Inicie os containers do compose `backend` e `db`
# A aplicação estará disponível em `http://localhost:3001` em modo de desenvolvimento
docker-compose up -d# É possível ver os logs da aplicação com `docker logs -n 10 -f `
docker logs -n 10 -f store_manager
```
#🖥️ Iniciando a aplicação localmente
> Atenção: Ao rodar localmente, a aplicação deverá receber variáveis de ambiente como exemplificado em [`env.example`](./env.example) para poder se comunicar com o serviço de banco de dados.
```bash
# Instale as dependências
npm install# Inicie apenas o serviço `db` no compose
docker-compose up -d db# Inicie a aplicação em modo de desenvolvimento
npm run dev:local
```
#### Principais Funcionalidades
### Produtos
- **Listar Produtos:**
- Endpoint: `GET /products`
- Retorna a lista de todos os produtos cadastrados.- **Encontrar Produto por ID:**
- Endpoint: `GET /products/:id`
- Retorna as informações detalhadas de um produto específico com base no ID fornecido.- **Cadastrar Novo Produto:**
- Endpoint: `POST /products`
- Permite a criação de um novo produto. O corpo da requisição deve conter os dados do produto a ser adicionado, conforme o exemplo abaixo:
```json
{
"name": "Playstation 5"
}
```- **Atualizar Produto:**
- Endpoint: `PUT /products/:id`
- Permite a atualização das informações de um produto específico com base no ID fornecido. O corpo da requisição deve conter os dados atualizados do produto.- **Deletar Produto:**
- Endpoint: `DELETE /products/:id`
- Remove um produto específico com base no ID fornecido.### Vendas
- **Listar Vendas:**
- Endpoint: `GET /sales`
- Retorna a lista de todas as vendas registradas.- **Encontrar Venda por ID:**
- Endpoint: `GET /sales/:id`
- Retorna as informações detalhadas de uma venda específica com base no ID fornecido.- **Cadastrar Nova Venda:**
- Endpoint: `POST /sales`
- Permite a criação de uma nova venda. O corpo da requisição deve conter um array de objetos, cada um representando um item da venda, conforme o exemplo abaixo:
```json
[
{
"productId": 1,
"quantity": 1
},
{
"productId": 2,
"quantity": 5
}
]
```- **Deletar Venda:**
- Endpoint: `DELETE /sales/:id`
- Remove uma venda específica com base no ID fornecido.> Observação: Na raiz do projeto, você encontrará um arquivo Thunder Client (thunder-collection-store-manager.json) que pode ser importado no Thunder Client para facilitar as requisições.
## Contribuição
Este projeto está aberto para contribuições. Se você deseja contribuir, siga estas etapas:
1. Faça um fork do projeto
2. Crie uma nova branch (`git checkout -b feature/sua-feature`)
3. Faça commit das alterações (`git commit -m 'Adicione sua feature'`)
4. Faça push para a branch (`git push origin feature/sua-feature`)
5. Abra um Pull Request## Contato
Se você deseja entrar em contato comigo, sinta-se à vontade para enviar um e-mail para [[email protected]](mailto:[email protected]).