Mindmap de Componentização
Introdução ao documento
Este documento organiza visualmente os domínios, módulos e relações principais do repositório.
Versionamento
- Versão do documento: 1.0.0
- Última atualização: 2026-03-09
- Responsável: Marivaldo Vinicius
Referencial teórico
Diagrama
Agrupamento por Domínio
Domínio de Inscrições
Sistema de gestão de inscrições com dados provenientes do Redshift. Controllers API e Admin, jobs de cache dedicados, contexto React para gerenciamento de estado, e cache key inscricoes55. Dados são comprimidos com gzip antes de serem armazenados.
Domínio de NPS
Sistema de Net Promoter Score dividido por 4 produtos (UP Marketing, UP Finanças, Decola MEI, Mulheres em Foco). Cada produto segue o mesmo padrão: Controller API, Job de Cache dedicado, Context React, e cache key específica. Admin unificado via NPSController.
Domínio de AoVivo
Gestão de cursos ao vivo com duas fontes de dados:
- AoVivo API: Integração direta via
AoVivoIntegracaoControllercom cache de 30 segundos - WordPress API: Via
EnrollmentStatsServicecom cache variável (1 minuto a 4 horas)
Múltiplos contexts React para gerenciar estado de ciclos, inscrições e filtros.
Domínio Administrativo
Sistema de administração completo com:
- Autenticação: Laravel Sanctum para API + Spatie Permissions para controle de acesso
- Admin Panel: Backpack for Laravel com CRUD automático
- Funcionalidades: Usuários, Permissões, Configurações, Manutenção, Tokens, Logs
- Middleware: Controle de acesso e redirecionamentos baseados em permissões
Domínio de Cursos
Gestão de cursos e turmas com dados do Redshift. Controllers para visualização de detalhes, progresso e estatísticas. Cache key cursos55 para otimização.
Análise de Sentimento
Funcionalidade de análise de sentimento via Google Gemini API. Processa textos e retorna resumos estruturados com pontos positivos e negativos. Cache por chave de texto para evitar reprocessamento.
Camadas Arquiteturais
Camada API
RESTful API com 12 controllers organizados por funcionalidade. Middlewares para compressão GZIP, forçar JSON, e autenticação Sanctum. Especificação: docs/api/openapi.yaml
Camada de Aplicação
Services para lógica de negócio e integrações, jobs para processamento assíncrono, e enums para constantes (CacheKeys). Separação clara de responsabilidades.
Camada de Dados
Models Eloquent para abstração do banco, migrations para versionamento de schema, e múltiplas conexões (MySQL principal, Redshift analítico).
Camada de Operação
Infraestrutura containerizada com Docker para desenvolvimento e Kubernetes/Helm para produção. CI/CD via GitHub Actions.
Camada Frontend
Aplicação React/TypeScript com arquitetura componentizada. Páginas correspondentes às rotas do admin, componentes reutilizáveis, contexts para estado global, hooks customizados, e bibliotecas especializadas (Highcharts para gráficos).
Integrações Externas
Google Gemini
API de IA generativa para análise de sentimento. Feature: docs/features/analise-sentimento.md
AoVivo API
API externa para dados de cursos ao vivo. Autenticação Bearer token, cache curto (30s) para dados dinâmicos. Feature: docs/features/aovivo.md
WordPress API
Backend WordPress para dados de enrollment e cursos. Autenticação Svc token, cache variável dependendo da criticidade dos dados.
Redshift
Data warehouse PostgreSQL para consultas analíticas. Utilizado pelos jobs para buscar grandes volumes de dados que são processados e cacheados.
MySQL
Banco de dados relacional principal. Modelo de dados: docs/data/model.md