Sistema Mini ERP completo em PHP puro com arquitetura MVC customizada, oferecendo gestão de produtos, carrinho de compras, checkout e processamento de pedidos com sistema de estados robusto.
# Clone e configure
git clone [email protected]:dev-brunoreis/mini-php-erp.git
cd mini-php-erp
cp app/env.example app/.env
# Inicie os containers
docker-compose up -d
# Acesse a aplicação
http://localhost
- 🛍️ Gestão de Produtos: CRUD completo com variações e controle de estoque
- 🛒 Carrinho de Compras: Sessões persistentes com validação de estoque
- 💳 Checkout: Processo multi-etapas com cálculo de frete e impostos
- 📦 Gestão de Pedidos: Sistema de estados com State Pattern
- 🔌 API RESTful: Documentação Swagger integrada
- 🔒 Segurança: CSRF protection, headers de segurança e validação
- Backend: PHP 8.4, MySQL 8.0, Nginx
- Containerização: Docker, Docker Compose
- Documentação: Swagger/OpenAPI
- Email: PHPMailer + MailHog (dev)
Serviço | URL | Descrição |
---|---|---|
Aplicação | http://localhost | Interface principal do ERP |
Swagger UI | http://localhost/api | Interface principal para testar APIs |
Adminer | http://localhost:8080 | Gerenciamento do banco MySQL |
MailHog | http://localhost:8025 | Servidor de email para desenvolvimento |
Para testar endpoints protegidos no Swagger UI:
- Gere token: Execute
GET /v1/csrf-token
- Configure: Clique em "Authorize" e adicione o token no campo "X-CSRF-Token"
- Teste: Agora você pode usar todos os endpoints protegidos
POST /v1/cart/*
- Operações do carrinhoPOST /v1/checkout/*
- Operações de checkoutPOST /v1/webhook/order-status
- Atualização de status
O sistema usa State Pattern para controle robusto de estados:
Estado | Transições Permitidas | Descrição |
---|---|---|
Pending | approved , cancelled , shipped |
Pedido criado, aguardando aprovação |
Approved | cancelled , shipped |
Pedido aprovado, pronto para envio |
Shipped | cancelled |
Pedido enviado, em trânsito |
Cancelled | Nenhuma | Estado final - pedido cancelado |
mini-php-erp/
├── app/ # Código da aplicação
│ ├── public/ # Entry point e APIs
│ ├── src/ # Código fonte (MVC)
│ │ ├── Controller/ # Controladores
│ │ ├── Model/ # Modelos
│ │ ├── View/ # Views
│ │ ├── Middleware/ # Middlewares
│ │ └── State/ # State Pattern
│ ├── routes/ # Definição de rotas
│ └── config/ # Configurações
├── .docker/ # Configurações Docker
├── docker-compose.yml # Orquestração
└── Dockerfile # Imagem da aplicação
Container não inicia:
# Verificar logs
docker-compose logs app
# Reconstruir containers
docker-compose down
docker-compose up --build -d
Erro de permissão:
# Ajustar permissões
sudo chown -R $USER:$USER .
Porta já em uso:
# Verificar portas em uso
sudo lsof -i :80
sudo lsof -i :8080
MIT License - veja LICENSE para detalhes.