Mini ERP/CRM em PHP 8 + MySQL + RabbitMQ + Asaas




Sobre o Projeto
Objetivo
Projeto educacional demonstrando a construção de um Mini ERP/CRM completo usando PHP 8 sem framework, com autenticação por sessão, CRUD de clientes e pedidos, geração de cobranças via Asaas (PIX/Boleto/Cartão), publicação de eventos no RabbitMQ e worker consumidor para orquestração assíncrona. Arquitetura em camadas com MVC enxuto e containers Docker para ambiente completo.
Tools & Technologies
PHP 8.2 (Apache), MySQL 8, RabbitMQ 3 + Management UI, Docker & Docker Compose, Asaas API (sandbox/prod), php-amqplib/php-amqplib, Monolog, PDO, Sessions
Demonstração
Arquitetura, Funcionalidades e Desafios
Arquitetura em camadas com MVC enxuto: Controllers para lógica de fluxo (Auth, Client, Order, Payment), Models com PDO, Services para integrações externas (Asaas), Queue Publisher para RabbitMQ e worker separado para consumo de eventos.
Integração completa com Asaas API: criação automática de clientes, geração de cobranças (PIX, Boleto, Cartão), persistência dos dados retornados (invoiceUrl, pixQrCode, bankSlipUrl).
RabbitMQ para processamento assíncrono: publicação do evento 'order.created' ao criar pedido, exchange de tópico 'orders', worker consumidor (bin/worker.php) processando mensagens e simulando ações como envio de e-mail e atualização de estoque.
Autenticação com PHP nativo usando sessões, seções privadas protegidas por middleware simples e seed inicial de usuário admin (email: admin@example.com / senha: admin123).
Ambiente totalmente containerizado: Docker Compose orquestra PHP+Apache, MySQL, RabbitMQ e worker PHP dedicado. Facilita desenvolvimento, logs centralizados e isolamento de serviços.
Foco educacional em integrações: filas, webhooks futuros, eventos assíncronos, reconciliação de pagamentos e boas práticas na comunicação entre serviços dentro de um mini ecossistema distribuído.