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

https://github.com/brenonsc/laravel-sales-manager

Repositório criado com o objetivo de armazenar uma API em Laravel que gerencia usuários, clientes, endereços, produtos e vendas.
https://github.com/brenonsc/laravel-sales-manager

docker jwt-authentication laravel mysql php sales swagger

Last synced: 20 days ago
JSON representation

Repositório criado com o objetivo de armazenar uma API em Laravel que gerencia usuários, clientes, endereços, produtos e vendas.

Awesome Lists containing this project

README

          

# Laravel Sales Manager 💰📊
![License](https://badgen.net/badge/License/MIT/purple?icon=)
![PHP](https://badgen.net/badge/icon/v8.3/blue?icon=php&label)
![Laravel](https://badgen.net/badge/Laravel/v11/green?icon=)
![Docker](https://badgen.net/badge/icon/Available?icon=docker&label)

O **Laravel Sales Manager** é uma aplicação backend desenvolvida em Laravel com integração via Docker e documentação de endpoints em Swagger. O sistema gerencia usuários, clientes, endereços, produtos e vendas, com autenticação JWT para segurança e rastreamento eficiente.



## Tecnologias utilizadas  🔨


php     
laravel     
jsonwebtoken     
mysql  
swagger  
docker


## Requisitos  ☑️

1. 🐳 **Docker**: Caso não tenha instalado, baixe no [site oficial do Docker](https://www.docker.com/products/docker-desktop).
2. 🐱 **Git**: Para clonar o repositório.

## Passos para Instalação  🖥️

1. **Clone o Repositório**
Abra o terminal, navegue até a pasta desejada e execute:
```bash
git clone https://github.com/brenonsc/laravel-sales-manager.git
```

2. **Entre na Pasta do Projeto**
```bash
cd laravel-sales-manager
```

3. **Inicie o Projeto**
Execute o comando para configurar o ambiente e subir os containers Docker:
```bash
cp .env.example .env && docker compose up --build
```

4. **(Opcional)** **_Gere uma nova chave JWT_**
> **⚠️ Importante:** Este passo garante segurança no processo de autenticação.
Abra uma nova aba no terminal e execute o comando após os containers estarem ativos:
```bash
docker compose exec app php artisan jwt:secret
```

## Endpoints Documentados  🟢

Os endpoints estão documentados em **Swagger** e podem ser acessados via:
- [http://localhost:8000](http://localhost:8000)
- [http://localhost:8000/api/docs](http://localhost:8000/api/docs)

## Principais Endpoints  ▶️

### **Autenticação**  🔐

**Controller:** `AuthController`
- **POST /login**: Autentica o usuário e retorna um token JWT.
- **POST /signup**: Registra um novo usuário.
- **POST /logout**: Encerra a sessão autenticada.
- **GET /me**: Retorna os dados do usuário autenticado.

---

### **Clientes**  :busts_in_silhouette:

**Controller:** `ClientController`
- **GET /clients**: Lista todos os clientes.
- **GET /clients/{id}**: Exibe detalhes de um cliente específico.
- **POST /clients**: Cria um novo cliente com seus endereços.
- **PUT /clients/{id}**: Atualiza informações do cliente e seu endereço.
- **DELETE /clients/{id}**: Deleta logicamente um cliente.

---

### **Produtos**  📦

**Controller:** `ProductController`
- **GET /products**: Lista produtos ativos.
- **GET /products/{id}**: Exibe detalhes de um produto.
- **POST /products**: Cria um novo produto.
- **PUT /products/{id}**: Atualiza informações de um produto.
- **DELETE /products/{id}**: Marca um produto como inativo.

---

### **Vendas**  :chart_with_upwards_trend:

**Controller:** `SaleController`
- **GET /sales**: Lista todas as vendas.
- **POST /sales**: Registra uma nova venda.


## Testes  :man_scientist:

Esta aplicação possui **testes unitários** implementados para todos os **controllers**, garantindo a funcionalidade e a estabilidade da aplicação.

#### Executando os Testes

Para rodar os testes, siga os passos abaixo:

1. Execute as migrações no ambiente de testes:
```bash
docker compose exec app php artisan migrate --env=testing
```

2. Execute os testes:
```bash
docker compose exec app php artisan test
```

## Licença  :clipboard:

Este software está licenciado sob a [Licença MIT](https://github.com/brenonsc/laravel-sales-manager/blob/main/LICENSE).