Gestão de Tráfego

Plataforma para diagnóstico, planejamento, acompanhamento e gestão de tráfego pago,
leads e resultados de marketing digital — voltada a pequenos negócios, profissionais
autônomos e agências.


Visão geral

O produto reúne, em um único painel:


Stack

Camada Tecnologia
Linguagem PHP 8.2 (sem framework)
Banco MySQL 8 (SQLite em testes)
Front HTML5 + CSS3 + JavaScript vanilla
DI Container próprio com autowiring
E-mail PHPMailer (drivers log/smtp)
Logs Logger próprio (text/json) com rotação
Cache Arquivo, TTL por namespace
Fila Banco (fila_jobs) com retry exponencial
2FA TOTP puro (RFC 6238)
Segurança CSP com nonce, HMAC para webhooks, rate limit
Assets app.css / app.js externos
Testes PHPUnit 10 (Unit + Feature em SQLite in-memory)
CI GitHub Actions (PHP 8.1 e 8.2)
Ambiente dev Debian 12 + XAMPP
Ambiente prod Hospedagem compartilhada ou VPS + PHP-FPM + MySQL

Requisitos


Instalação local

git clone https://github.com/<seu-usuario>/gestao-trafego.git \
  /opt/lampp/htdocs/gestao-trafego

cd /opt/lampp/htdocs/gestao-trafego

composer install

cp .env.example .env
# edite .env conforme necessário

mysql -u root -e "CREATE DATABASE gestao_trafego CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

php bin/console migrate
php bin/console seed

# acesse:
# http://localhost/gestao-trafego/

Estrutura de pastas

gestao-trafego/
├── app/
│   ├── Config/            # Configurações auxiliares (AdminConfig)
│   ├── Controllers/       # Controllers HTTP
│   ├── Database/          # Database (PDO singleton), Migrator, Seeder
│   ├── Helpers/           # Helpers globais (base_url, esc, auth_user, is_admin, …)
│   ├── Http/              # Request, Response, Route, Router, Exceptions
│   ├── Jobs/              # Jobs da fila (ProcessarWebhookJob)
│   ├── Kernel/            # Application (bootstrap) e Container
│   ├── Mail/              # Mailer, Message, Drivers (Log/Smtp)
│   ├── Middleware/        # Auth, Guest, Csrf, SecurityHeaders, Throttle, RequireTwoFactor
│   ├── Repositories/      # Repositórios (BaseRepository + concretos)
│   ├── Services/          # Serviços de domínio
│   ├── Support/           # Alerting, Backup, Cache, Csp, Csv, Logger, Onboarding, Queue, RateLimiter, Totp, WebhookSignature, …
│   └── Views/             # Templates PHP (layouts, partials, páginas)
├── bin/
│   ├── console            # CLI (migrate, seed, queue:*, user:promote, alert:*, backup:verify, …)
│   └── backup.sh          # Backup automatizado (mysqldump + tar)
├── config/                # app, auth, cache, container, database, import, logging, mail, queue, security, webhooks
├── database/
│   ├── migrations/        # Pares nome.sql / nome.down.sql
│   └── seeders/           # Seeders idempotentes
├── docs/                  # Documentação (este diretório)
├── public/
│   ├── assets/            # CSS/JS externos
│   ├── .htaccess
│   └── index.php          # Front controller
├── routes/
│   └── web.php            # Definição de rotas
├── storage/               # Cache, uploads, imports, rate-limit, queue, backups
├── logs/                  # app.log (ou app.jsonl), email.log, backup.log
├── tests/
│   ├── Unit/              # Testes unitários
│   ├── Feature/           # Testes de feature (Router + SQLite)
│   └── Support/           # TestCase, HttpClient
├── .env.example
├── .gitignore
├── .editorconfig
├── composer.json
├── phpunit.xml
├── CHANGELOG.md
└── README.md

Comandos CLI

php bin/console migrate              # Aplica migrations pendentes
php bin/console rollback [N]         # Reverte N batches (padrão 1)
php bin/console status               # Estado de cada migration
php bin/console fresh --force        # Apaga tabelas e reaplica
php bin/console seed [nome]          # Executa seeders

php bin/console cache:clear          # Limpa todo o cache
php bin/console cleanup              # Rate-limit + cache expirados
php bin/console audit:prune [N]      # Remove auditoria antiga (padrão 365 dias)

php bin/console user:promote <email> # Promove usuário a admin

php bin/console queue:work [fila]    # Worker contínuo
php bin/console queue:once [fila]    # Processa um lote
php bin/console queue:status         # Status da fila
php bin/console queue:prune [N]      # Remove jobs antigos (padrão 7 dias)

php bin/console backup:verify        # Verifica integridade do último backup

php bin/console alert:test           # Dispara alerta de teste
php bin/console alert:list           # Lista alertas enviados

Variáveis de ambiente

Todas em .env (nunca versionado). .env.example é o modelo.

Grupo Exemplos
App APP_NAME, APP_ENV, APP_DEBUG, APP_TIMEZONE, URL_BASE, URL_PATH
Banco DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
Sessão SESSION_NAME, SESSION_LIFETIME
E-mail MAIL_DRIVER (log/smtp), MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS, MAIL_FROM_NAME, MAIL_LOG_PATH
Logs LOG_PATH, LOG_LEVEL, LOG_FORMAT (text/json), LOG_JSON_PATH
Cache CACHE_ENABLED, CACHE_DRIVER, CACHE_PATH, CACHE_PREFIX
Rate limit RATE_LIMIT_PATH
Backup BACKUP_PATH, BACKUP_KEEP_DAYS
Importação IMPORT_MAX_BYTES, IMPORT_MAX_ROWS
Fila QUEUE_DRIVER, QUEUE_BATCH, QUEUE_SLEEP, QUEUE_RESERVE_TIMEOUT, QUEUE_PRUNE_DAYS
Webhooks WEBHOOK_GOOGLE_SECRET, WEBHOOK_META_SECRET, WEBHOOK_META_VERIFY_TOKEN, WEBHOOK_ALLOW_UNSIGNED, WEBHOOK_TTL_DIAS
Admin/Alertas ADMIN_EMAILS, ADMIN_USER_IDS, ALERT_DEDUP_HOURS, ALERT_DISK_MB, ALERT_500_LIMIT, ALERT_500_COOLDOWN
Segurança CSP_STRICT (implícito por APP_ENV=production)

Driver de e-mail

Formato de log


Documentação

Documento Para quem
docs/ARQUITETURA.md Engenheiros — fluxo de request, camadas, container
docs/MODELO-DOMINIO.md Engenheiros — entidades, relacionamentos
docs/BANCO-DE-DADOS.md Engenheiros — schema, índices, migrations
docs/API-INTERNA.md Engenheiros — rotas e contratos
docs/REGRAS-DO-PRODUTO.md Produto / engenharia — regras de negócio
docs/DICIONARIO-METRICAS.md Todos — o que cada métrica significa
docs/GUIA-GESTOR-TRAFEGO.md Usuário final — manual prático
docs/GLOSSARIO.md Todos — termos técnicos e de negócio
docs/DEPLOY.md DevOps — deploy em produção
docs/OPERACAO.md Operação — runbook
docs/SEGURANCA.md Engenharia / segurança — medidas implementadas
docs/WEBHOOKS.md Engenharia — recepção de eventos externos
docs/TESTES.md Engenharia — como testar
docs/SMOKE-TEST.md QA — checklist ponta a ponta
docs/ONBOARDING.md Produto — jornada do usuário novo
docs/FEEDBACK.md Produto — triagem de feedbacks
docs/ROADMAP.md Todos — o que vem por aí
CHANGELOG.md Todos — histórico de mudanças
CONTEXTO_PROJETO.md Engenharia — decisões arquiteturais

Convenções


Licença

Proprietário. Todos os direitos reservados.