Skip to content

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.

License

Notifications You must be signed in to change notification settings

dev-brunoreis/mini-php-erp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Mini PHP ERP

PHP Version MySQL Version Docker License

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.

🚀 Quick Start

# 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

🎯 Principais Funcionalidades

  • 🛍️ 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

🛠️ Tecnologias

  • Backend: PHP 8.4, MySQL 8.0, Nginx
  • Containerização: Docker, Docker Compose
  • Documentação: Swagger/OpenAPI
  • Email: PHPMailer + MailHog (dev)

📋 Serviços Disponíveis

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

🔐 Autenticação CSRF

Para testar endpoints protegidos no Swagger UI:

  1. Gere token: Execute GET /v1/csrf-token
  2. Configure: Clique em "Authorize" e adicione o token no campo "X-CSRF-Token"
  3. Teste: Agora você pode usar todos os endpoints protegidos

Endpoints que Requerem CSRF

  • POST /v1/cart/* - Operações do carrinho
  • POST /v1/checkout/* - Operações de checkout
  • POST /v1/webhook/order-status - Atualização de status

🔄 Sistema de Estados de Pedido

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

📁 Estrutura do Projeto

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

🐛 Troubleshooting

Problemas Comuns

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

📄 Licença

MIT License - veja LICENSE para detalhes.

About

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.

Resources

License

Stars

Watchers

Forks