Pular para o conteúdo principal

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 AoVivoIntegracaoController com cache de 30 segundos
  • WordPress API: Via EnrollmentStatsService com 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