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.
- 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.
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.
- 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.
O projeto inclui um arquivo docker-compose.yml
para facilitar a execução e configuração do ambiente de desenvolvimento com Docker.
Uma coleção do Postman é fornecida para facilitar a validação das funcionalidades do sistema.
- PHP 8.0
- Laravel 11
- PostgreSQL 12+
- Docker
- Postman
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.
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.
Siga os passos abaixo para configurar e executar o projeto em sua máquina local.
git clone https://github.com/am-matheusoliveira/desafio-back-end-alfa-erp.git
cd desafio-back-end-alfa-erp
composer install
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
php artisan key:generate
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.
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
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
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
-
PHP 8.0
documentação oficial do PHP 8.0. -
Laravel 11
documentação oficial do Laravel. -
PostgreSQL
documentação oficial do PostgreSQL. -
Docker
documentação oficial do Docker. -
Postman
documentação oficial do Postman.
Sinta-se à vontade para explorar o código e fazer melhorias.
Se tiver alguma dúvida, entre em contato.