Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/am-matheusoliveira/desafio-estrategia-wms
Sistema de Gerenciamento de Estratégias WMS | PHP Laravel e PostgreSQL
https://github.com/am-matheusoliveira/desafio-estrategia-wms
api composer docker docker-compose json laravel laravel-framework mysql mysql-database php php-programming postgresql postgresql-database postman postman-collection rest-api
Last synced: 27 days ago
JSON representation
Sistema de Gerenciamento de Estratégias WMS | PHP Laravel e PostgreSQL
- Host: GitHub
- URL: https://github.com/am-matheusoliveira/desafio-estrategia-wms
- Owner: am-matheusoliveira
- License: mit
- Created: 2024-07-26T13:03:31.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-06T19:51:08.000Z (2 months ago)
- Last Synced: 2024-09-28T19:21:31.864Z (about 1 month ago)
- Topics: api, composer, docker, docker-compose, json, laravel, laravel-framework, mysql, mysql-database, php, php-programming, postgresql, postgresql-database, postman, postman-collection, rest-api
- Language: PHP
- Homepage:
- Size: 271 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sistema de Gerenciamento de Estratégias WMS
O Sistema de Gerenciamento de Estratégias WMS (Warehouse Management System) é uma aplicação desenvolvida em PHP utilizando o framework Laravel 11 e banco de dados PostgreSQL 12+.
Este sistema permite a criação, gerenciamento e consulta de estratégias de prioridade dentro de um ambiente de gerenciamento de armazém.## Funcionalidades Principais
- **Criação de Estratégias**: Permite a criação de estratégias com descrição e prioridade, bem como a definição de horários específicos para essas estratégias.
- **Gestão de Prioridades**: Define e gerencia a prioridade das estratégias em horários específicos, garantindo uma ordem de execução eficiente e organizada.
- **Consultas de Prioridade**: Permite a consulta de prioridade de uma estratégia com base no tipo da estratégia, hora e minuto informados, retornando a prioridade correspondente ou a prioridade padrão se o horário estiver fora dos intervalos definidos.## Componentes Técnicos
### Migrations
- `tb_estrategia_wms`: Tabela principal para armazenar as estratégias.
- `tb_estrategia_wms_horario_prioridade`: Tabela para armazenar os horários e prioridades das estratégias.### Rotas
- **POST `/estrategiaWMS`**: Endpoint para criar uma nova estratégia com horários e prioridades.
- **GET `/estrategiaWMS/{cdEstrategia}/{dsHora}/{dsMinuto}/prioridade`**: Endpoint para consultar a prioridade de uma estratégia com base no tipo da estratégia, hora e minuto informados.### Configuração com Docker
O projeto inclui um arquivo `docker-compose.yml` para facilitar a execução e configuração do ambiente de desenvolvimento com Docker.### Validação com Postman
Uma coleção do Postman é fornecida para facilitar a validação das funcionalidades do sistema.### Ferramentas
* PHP 8.0
* Laravel 11
* PostgreSQL 12+
* Docker
* Postman## Como Funciona
### Cadastro de Estratégias
Os usuários podem cadastrar novas estratégias, especificando a descrição e a prioridade. Além disso, podem definir horários específicos e suas respectivas prioridades para cada estratégia.### Consulta de Prioridades
Através da rota de consulta, o sistema retorna a prioridade da estratégia com base no tipo da estratégia, hora e minuto informados pelo usuário, garantindo um gerenciamento eficiente das operações do armazém.### Instalação
Siga os passos abaixo para configurar e executar o projeto em sua máquina local.### 1. Clonar o Repositório
```
git clone https://github.com/am-matheusoliveira/desafio-back-end-alfa-erp.git
cd desafio-back-end-alfa-erp
```### 2. Instalar Dependências
```
composer install
```### 3. Configurar o Arquivo `.env`
Crie um arquivo `.env` a partir do `.env.example` e configure as variáveis de ambiente.
```
cp .env.example .env
```
Edite o arquivo `.env` para incluir suas configurações de banco de dados, use este exemplo já configurado para rodar com Docker:
```
# PostreSQL
DB_CONNECTION=pgsql
DB_HOST=my-postgres
DB_PORT=5432
DB_DATABASE=estrategia_wms
DB_USERNAME=postgres
DB_PASSWORD=postgres
```### 4. Gerar a Chave da Aplicação
```
php artisan key:generate
```### 5. Criar o Banco de Dados
Ao executar o arquivo `docker-compose.yml` o Banco de Dados será automaticamente criado, e também sera executado o comando `php artisan migrate` para a criação das tabelas do sistema.### 6. Execute o Docker Compose
Na raiz do projeto execute o comando:
```
docker compose up -d
```
Esse comando cria as imagens e inicia os contêineres da aplicação e do banco de dados e inicia o Servidor Web Interno do Laravel. A aplicação estará disponível em:
```
http://localhost:8000
```### 7. Importar a Collection do Postman
Localize na pasta `/postman-collections` abra o Postman e importe a Collection.
Todas as rotas da aplicação já estarão disponíveis para uso em:
```
http://localhost:8000
```### Conclusão
Este projeto demonstra minhas habilidades no desenvolvimento de Rotas e Migrations com PHP e Laravel, incluindo:
* Desenvolvimento de endpoints para criar e buscar registros
* Respostas em formato JSON
* Conteinerização com Docker
* Manipulação de Banco de Dados
* Criação do arquivo `docker-compose.yml`
---### Referências
- **PHP 8.0**
[documentação oficial do PHP 8.0](https://www.php.net/releases/8.0/).- **Laravel 11**
[documentação oficial do Laravel](https://laravel.com/docs).- **PostgreSQL**
[documentação oficial do PostgreSQL](https://www.postgresql.org/docs/).- **Docker**
[documentação oficial do Docker](https://docs.docker.com/).- **Postman**
[documentação oficial do Postman](https://learning.postman.com/docs/getting-started/introduction/).
---
Sinta-se à vontade para explorar o código e fazer melhorias.
Se tiver alguma dúvida, entre em contato.