Imagem de capa do projeto: NEXUS Affiliates EM ANDAMENTO

Resumo técnico

Plugin NEXUS de gestão centralizada de links de afiliados e cupons promocionais: CRUD completo com organização por projeto e categoria, rastreamento de cliques (redirecionamento 302 + contador + log detalhado), Dead Link Detector com verificação periódica de saúde HTTP via cron a cada 12 horas, sugestão de cupons no Intelligence Hub, geração de QR Codes e snippets de divulgação — 100% interno, sem API externa (primeiro da série).

Escopo executado

  • Backend backend.php (519 linhas): CRUD interno em MySQL — sem dependência de API externa (único da série até aqui).
  • Tabelas (criadas por affiliates_install()): nexus_affiliates (project, name, url, promo_code, status, category, commission_rate, clicks_count, notes, expires_at, http_code, last_checked_at; índices idx_project, idx_status, idx_category, idx_expires_at) com migrations silenciosas (ADD COLUMN para expires_at/http_code/last_checked_at) e nexus_affiliate_clicks (affiliate_id, ip, user_agent, referer, clicked_at; idx_affiliate_id, idx_clicked_at).
  • Seeds iniciais: 3 cadastros de exemplo (Cloudflare Enterprise 15%, Hetzner Cloud VPS €10 de crédito, Shodan Pro Engine 20%) criados quando a tabela está vazia.
  • affiliates_list — filtros por project/status/category/search (LIKE em name/promo_code/url/notes), limit ≤ 100; auto-marcação expired quando expires_at passou; short_url montado a partir de site_url (/api.php?action=affiliate_redirect&id=X); flag is_expiring_soon (< 3 dias); categorias distintas e stats embutidos.
  • affiliates_save — valida nome obrigatório, URL via FILTER_VALIDATE_URL, whitelist de status (active/pending/cancelled/expired) e auto-expira quando a data está no passado; insert ou update.
  • affiliates_delete — remove o cadastro e os cliques vinculados (cascade manual).
  • affiliates_check_health (Dead Link Detector) — HEAD request (CURLOPT_NOBODY), follow de até 5 redirecionamentos, timeout 8s / connect 4s, UA NEXUS-Affiliate-HealthCheck/1.0; com ID checa 1 link; sem ID checa até 10 links ativos mais antigos (last_checked_at ASC); grava http_code + last_checked_at.
  • affiliate_redirect — incrementa clicks_count, registra clique detalhado (IP, User-Agent, Referer) em nexus_affiliate_clicks e redireciona com HTTP 302 (ou retorna JSON em chamadas AJAX).
  • affiliates_stats — total, ativos, pendentes, cancelados, expirados, total de cliques, com cupom e dead_links (http_code ≥ 400 ou 0).
  • Configurações (affiliates_settings / affiliates_settings_save) — base_url (validada), enable_tracking, default_category, auto_shorten via DB::setConfig('plugin.affiliates.*').
  • Intelligence Hub: enricher nexus-affiliates (prioridade 20, tipos affiliate, promo, cupom, cloud, hosting, vpn, vps) — formato de sugestão (não sinal de severidade): quando o usuário menciona serviços (Hetzner, Cloudflare, Shodan...), sugere até 3 cupons ativos com link encurtado, código promocional e comissão.
  • Cron (cronjob.json): job Affiliate Link Health Check com **agendamento cron real 0 */12 * * *** (a cada 12 horas) → affiliates_check_health — primeiro da série com cron expression (os anteriores usavam soft-cron tick).
  • API: 9 actions via PluginManager::registerApiAction (affiliates_list, affiliates_get, affiliates_save, affiliates_delete, affiliates_check_health, affiliate_redirect, affiliates_stats, affiliates_settings, affiliates_settings_save).
  • UI Alpine.js (tab.php, 712 linhas — maior da série): tema indigo; 2 sub-abas (Painel / Configurações); 5 KPI cards (Total de Links, Ativos, Cliques Acumulados, Cupons, Links Inacessíveis); toolbar com busca (debounce 300ms) e filtros de projeto/status/categoria; botão Testar Saúde dos Links; cards com badge de status (Ativo/Pendente/Cancelado/Expirado), badge HTTP (verde 2xx / azul 3xx / vermelho 4xx ou 0) e alerta "⏰ Expira em breve" (< 3 dias); ações de QR Code (api.qrserver.com), copiar link encurtado, testar redirecionamento, gerar snippet Markdown e editar/excluir; modal de cadastro/edição; configurações com guia de uso.
  • Fastr: 2 comandos — /afiliados (PT) e /affiliates (EN) → affiliates_list.
  • Sem API externa — 100% interno: MySQL + cURL (apenas para health check e redirecionamento).

Stack e ferramentas

  • PHP 8 (sem framework)
  • MySQL 8 (nexus_affiliates + nexus_affiliate_clicks)
  • Alpine.js + Tailwind CSS (premium light, indigo ring)
  • Sistema de plugins do NEXUS (PluginManager + cronjob.json)
  • cURL (health check HEAD + redirecionamento 302)

Tags operacionais

  • Afiliados
  • Cupons
  • Marketing
  • Link Building
  • Rastreamento de Cliques
  • QR Code
  • Plugin NEXUS

Resultado operacional

  • Cadastro centralizado de links de afiliados e cupons com organização por projeto e categoria (Geral, NEXUS, Security, etc.).
  • Rastreamento de conversão: link encurtado NEXUS com contador de cliques e log detalhado (IP, User-Agent, Referer).
  • Dead Link Detector: verificação automática a cada 12 horas + manual, sinalizando links quebrados com badge HTTP.
  • Sugestão de cupons no chat/tarefas via Intel Hub (menção a serviços → cupom com link e comissão).
  • QR Codes e snippets Markdown prontos para divulgação em 1 clique.
  • 100% interno: sem custo de API externa, dados próprios no MySQL.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Plugin NEXUS de gestão centralizada de links de afiliados e cupons promocionais: CRUD completo com organização por projeto e categoria, rastreamento de cliques com redirecionamento 302 e contador, Dead Link Detector com verificação periódica de saúde HTTP via cron a cada 12 horas, sugestão de cupons no Intelligence Hub, geração de QR Codes e snippets de divulgação — 100% interno, sem API externa.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.