Visao Geral do Sistema
O que e o Radar Eleitoral
O Radar Eleitoral e uma plataforma de inteligencia eleitoral que monitora, analisa e gera recomendacoes estrategicas para campanhas politicas. O sistema opera com uma arquitetura campaign-scoped (escopo por campanha), onde cada campanha possui seu proprio dashboard, timeline, alertas, insights e entidades.
Arquitetura
- SPA (Single Page Application) com roteamento por campanha:
/campaigns/{uuid}/... - Autenticacao por email/senha com sessao persistente
- Multi-campanha: usuario pode gerenciar multiplas campanhas e trocar entre elas
- 7 tipos de entidades: Alert, Briefing, Recommendation, Priority, Insight, Narrative, Event
- Sistema de rastreabilidade (audit trail) com grafos de linhagem entre entidades
Dados encontrados na exploracao
Autenticacao e Login
Fluxo de Login
O sistema utiliza autenticacao por email e senha. Apos o login, o usuario e redirecionado para a tela de selecao de campanhas.
- URL:
https://radar-eleitoral.shinp.ai/login - Campos: Email, Senha
- Botao: "Entrar"
- Pos-login: redireciona para
/campaigns(selecao de campanha)
Gestao de Campanhas
Selecao de Campanhas
Apos o login, o usuario visualiza todas as campanhas disponiveis em formato de cards. Cada card mostra o nome da campanha e badges indicando o estado (draft, active).
Campanhas encontradas
| Nome | Status | Cargo | Estado | Dados |
|---|---|---|---|---|
| Tarcisio de Freitas | draft | Governador | SP | Vazia (0 entidades) |
| E2E_Campanha_Test | active | - | - | 7 entidades (dados E2E) |
| Test Campaign Sprint 4 | draft | - | - | - |
| Campanha Alpha Dev | draft | - | - | - |
Criar Nova Campanha
O botao "Criar Campanha" abre um modal com os seguintes campos:
- Nome da Campanha (texto livre)
- Ano da Eleicao (dropdown, ex: 2026)
- Cargo (dropdown: Governador, Prefeito, etc.)
- Estado (dropdown: SP, RJ, MG, etc.)
Dashboard da Campanha
Estrutura do Dashboard
O dashboard e a pagina principal apos selecionar uma campanha. URL: /campaigns/{uuid}/dashboard
E composto por 4 secoes principais:
1. Centro de Acao
Painel de acao rapida com 3 colunas:
- Alertas Abertos - cards com nome, severidade (critical) e status (active)
- Recomendacoes Pendentes - cards com nome, prioridade (high) e status (pending)
- Briefings Prontos - cards com nome e status (published)
Acima do Centro de Acao, ha 6 contadores com links: Alertas, Insights, Recomendacoes, Briefings, Eventos, Narrativas.
2. Timeline de Movimentos
Lista cronologica dos ultimos movimentos na campanha. Mostra tipo (badge colorido), titulo, tempo relativo e status. Link "Ver timeline completa" para a pagina dedicada.
3. Insights Ativos
Lista de insights ativos com titulo, descricao, tipo (trend) e status. Link "Ver todos os insights".
4. Entregas Recentes
Historico de entregas realizadas (WhatsApp, email). Na campanha E2E, mostra: "Nenhuma entrega realizada."
Dados do Dashboard (Campanha E2E)
Entidades visíveis no Dashboard
| Entidade | Tipo | Severidade | Status |
|---|---|---|---|
| E2E_Alerta_Fake_News | alert | critical | active |
| E2E_Recomendacao_Campanha_Jovem | recommendation | high | pending |
| E2E_Briefing_Semanal | briefing | - | published |
| Priority: recommendation | priority | critical | active |
| E2E_Insight_Crescimento_Rejeicao | insight | - | active |
| Narrative e2e00000-...-ffffffffffff | narrative | - | contextualized |
| Event e2e00000-...-eeeeeeee0001 | event | - | contextualized |
Timeline de Movimentos
Pagina de Timeline
URL: /campaigns/{uuid}/timeline
A timeline mostra todos os movimentos da campanha em ordem cronologica. Inclui filtros avancados:
Filtros disponiveis
- Tipo (dropdown): Briefing, Alerta, Prioridade, Recomendacao, Insight, Narrativa, Evento
- Status (dropdown): Publicado, Ativo, pending, Contextualizado
- Severidade (dropdown): Critico
- Busca textual: campo "Buscar na timeline..."
- Atualizar: botao de refresh
Itens na Timeline (E2E)
7 itens mostrados na campanha de teste:
| Tipo | Nome | Status | Severidade |
|---|---|---|---|
| Briefing | E2E_Briefing_Semanal | Publicado | - |
| Alerta | E2E_Alerta_Fake_News | Ativo | Critico |
| Prioridade | Priority: recommendation | - | - |
| Recomendacao | E2E_Recomendacao_Campanha_Jovem | pending | - |
| Insight | E2E_Insight_Crescimento_Rejeicao | Ativo | - |
| Narrativa | Narrative e2e00000-...-ffffffffffff | Contextualizado | - |
| Evento | Event e2e00000-...-eeeeeeee0001 | Contextualizado | - |
Entidades e Paginas de Detalhe
Cada entidade possui uma pagina de detalhe acessivel via /campaigns/{uuid}/dashboard/detail/{type}/{id}. Todas seguem um layout padrao com secoes consistentes.
Alerta: E2E_Alerta_Fake_News
URL: /campaigns/{uuid}/dashboard/detail/alert/{id}
Badges
Critico Alerta Ativo monitoring
Secoes da pagina
- Resumo do Alerta: "Deteccao de desinformacao sobre candidato em redes sociais"
- Evidencias: "Nenhuma evidencia registrada para esta entidade."
- Historico: "Nenhuma mudanca de status registrada."
- Campanha: E2E_Campanha_Test / Estrategia v1
- Como chegou aqui: grafo de linhagem mostrando a entidade
- Relacionamentos: "Esta entidade nao possui relacionamentos com outras entidades."
- Detalhes Tecnicos: botao expansivel (colapsado por padrao)
Navegacao
- Link "Dashboard" - volta ao dashboard
- Link "E2E_Campanha_Test" - volta ao dashboard da campanha
- Link "Ver rastreabilidade" - abre pagina de auditoria
Recomendacao: E2E_Recomendacao_Campanha_Jovem
URL: /campaigns/{uuid}/dashboard/detail/recommendation/{id}
Badges
Recomendacao pending analysis
Secoes da pagina
- Resumo da Recomendacao: "Intensificar campanha digital focada no publico jovem"
- Evidencias: "Nenhuma evidencia registrada para esta entidade."
- Fatores contribuintes: "Nenhum fator contribuinte registrado." (secao exclusiva de recomendacoes)
- Historico: "Nenhuma mudanca de status registrada."
- Campanha: E2E_Campanha_Test / Estrategia v1
- Como chegou aqui: grafo de linhagem
- Relacionamentos: mostra "Pais / Origens" com link para Briefing E2E_Briefing_Semanal
- Detalhes Tecnicos: botao expansivel
E2E_Briefing_Semanal. Isso mostra que o sistema de linhagem entre entidades esta funcional — a recomendacao foi derivada do briefing.
Briefing: E2E_Briefing_Semanal
URL: /campaigns/{uuid}/dashboard/detail/briefing/{id}
Badges
Briefing Publicado
Secoes da pagina
- Secoes do Briefing: "As secoes deste briefing nao estao disponiveis no detalhe. Os itens de cada secao requerem endpoint dedicado."
- Evidencias: "Nenhuma evidencia registrada para esta entidade."
- Timeline: mostra historico de status — "10/08 22:08 Generated" (com data real)
- Campanha: E2E_Campanha_Test / Estrategia v1
- Como chegou aqui: grafo de linhagem
- Relacionamentos: "Esta entidade nao possui relacionamentos com outras entidades."
- Detalhes Tecnicos: botao expansivel
Padrao Comum das Paginas de Detalhe
Todas as paginas de detalhe seguem uma estrutura consistente:
| Secao | Descricao | Presente em |
|---|---|---|
| Header com badges | Tipo, severidade, status, categoria | Todos |
| Resumo | Texto descritivo da entidade | Todos |
| Evidencias | Lista de evidencias vinculadas | Todos |
| Fatores contribuintes | Fatores que levaram a entidade | Recomendacoes |
| Secoes do Briefing | Conteudo do briefing em secoes | Briefings |
| Historico / Timeline | Mudancas de status com timestamps | Todos |
| Campanha | Nome e estrategia da campanha | Todos |
| Como chegou aqui | Grafo de linhagem simplificado | Todos |
| Relacionamentos | Pais/Origens e Filhos/Derivados | Todos |
| Detalhes Tecnicos | Expansivel com metadados internos | Todos |
| Ver rastreabilidade | Link para pagina de auditoria | Todos |
Rastreabilidade e Auditoria
Pagina de Rastreabilidade
URL: /campaigns/{uuid}/audit?entity_type={type}&entity_id={id}
Cada entidade possui uma pagina de auditoria dedicada acessivel via o link "Ver rastreabilidade" na pagina de detalhe.
Estrutura da pagina
- Titulo: "Rastreabilidade: {Tipo}" (ex: "Rastreabilidade: Alerta")
- Botao "Ver detalhe": volta para a pagina de detalhe da entidade
- Status atual: badge com o status corrente
- Historico: lista de transicoes de status (vazio nos dados E2E)
- Explicacao: texto em ingles descrevendo a estrutura do grafo. Ex: "Alert has 0 parent(s), 0 child(ren), and 0 status transition(s)."
- Grafo de linhagem: visualizacao com nos e arestas mostrando relacionamentos entre entidades
- Lista de Entidades: lista de nos no grafo com tipo, nome e botao "Ver detalhe"
Rastreabilidade por tipo
| Entidade | Status | Pais | Filhos | Transicoes |
|---|---|---|---|---|
| E2E_Alerta_Fake_News | Ativo | 0 | 0 | 0 |
| E2E_Recomendacao_Campanha_Jovem | pending | 0 | 0 | 0 |
| E2E_Briefing_Semanal | Publicado | 0 | 0 | 0 |
Campanha Vazia (Tarcisio de Freitas)
Estado de Campanha sem Dados
A campanha "Tarcisio de Freitas" esta em estado draft e nao possui estrategia configurada. Isso permite verificar como o sistema se comporta quando vazio:
Dashboard vazio
- Banner de alerta: "Esta campanha ainda nao possui estrategia ativa. Alguns recursos dependem da estrategia configurada." com link "Configurar Estrategia"
- Contadores: Alertas: 0, Insights: 0, Recomendacoes: 0, Briefings: 0, Eventos: 0, Narrativas: 0
- Centro de Acao: "Nenhuma acao pendente neste momento. O sistema esta monitorando e avisara quando algo precisar de atencao."
- Timeline: "Nenhum movimento registrado ainda. Eventos, alertas e mudancas aparecerao aqui conforme o monitoramento avanca."
- Insights: "Nenhum insight ativo. Insights sao gerados automaticamente quando o sistema detecta padroes ou anomalias no cenario eleitoral."
- Entregas: "Nenhuma entrega realizada. Quando briefings ou alertas forem enviados por WhatsApp ou email, o historico aparecera aqui."
Timeline vazia
- Filtros: Tipo, Status, Severidade — todos funcionais mas sem dados
- Contador: "Mostrando 0"
- Mensagem: "Nenhum movimento registrado nesta campanha. Quando o monitoramento detectar eventos, alertas, insights ou outras mudancas, elas aparecerao aqui em ordem cronologica."
Mapa Completo de Rotas
Rotas da Sidebar (Implementadas)
Estas sao as rotas presentes na navegacao lateral da aplicacao:
- /campaigns/{id}/dashboard Dashboard Funcional
- /campaigns/{id}/timeline Timeline Funcional
- /campaigns/{id}/alerts Alertas 404
- /campaigns/{id}/events Eventos 404
- /campaigns/{id}/narratives Narrativas 404
- /campaigns/{id}/insights Insights 404
- /campaigns/{id}/recommendations Recomendacoes 404
- /campaigns/{id}/priorities Prioridades 404
- /campaigns/{id}/briefings Briefings 404
- /campaigns/{id}/deliveries Entregas 404
- /campaigns/{id}/strategies Estrategia 404
- /campaigns/{id}/territories Territorios 404
- /campaigns/{id}/political-actors Atores Politicos 404
Rotas de Detalhe (Funcionais)
Paginas de detalhe individual acessiveis via o dashboard:
- /campaigns/{id}/dashboard/detail/alert/{id} Funcional
- /campaigns/{id}/dashboard/detail/recommendation/{id} Funcional
- /campaigns/{id}/dashboard/detail/briefing/{id} Funcional
- /campaigns/{id}/audit?entity_type={t}&entity_id={id} Funcional
Rotas Exploradas (Todas 404)
O sistema de exploracao testou 49 rotas adicionais alem das da sidebar. Todas retornaram 404, indicando que sao rotas planejadas mas nao implementadas no frontend:
/overview
/sources
/topics
/sentiments
/sentiment
/monitoring
/monitor
/reports
/analytics
/candidates
/polls
/news
/social
/media
/personas
/audiences
/regions
/municipalities
/competitors
/adversaries
/strategy
/content
/messages
/themes
/keywords
/trends
/mentions
/clippings
/clips
/settings
/config
/team
/members
/integrations
/analysis
/risks
/opportunities
/proposals
/agenda
/calendar
/voters
/electors
/demographics
/segments
/survey
/research
/vulnerability
/strengths
/scenarios
Barra Superior e Controles
Elementos da Barra Superior
A barra superior esta presente em todas as paginas da aplicacao (apos login) e contem:
| Elemento | Tipo | Descricao |
|---|---|---|
| "Radar Eleitoral" | Logo/Titulo | Nome do sistema no canto esquerdo |
| "Buscar" | Botao | Busca global (presente no dashboard) |
| "Admin" | Botao | Acesso a area administrativa |
| "Switch Campaign" | Botao | Trocar entre campanhas sem fazer logout |
| "RC" | Avatar | Iniciais do usuario logado (Rodrigo Castro) |
| "Logout" | Botao | Encerrar sessao |
| "Atualizar" | Botao | Refresh dos dados do dashboard |
Matriz de Completude de Funcionalidades
Funcionalidades Implementadas vs Planejadas
| Funcionalidade | Status | Observacao |
|---|---|---|
| Login / Autenticacao | Completo | Email/senha funcional, sessao persistente |
| Selecao de Campanhas | Completo | Cards com badges de status |
| Criar Campanha | Completo | Modal com Nome, Ano, Cargo, Estado |
| Dashboard da Campanha | Completo | Centro de Acao, Timeline, Insights, Entregas |
| Contadores no Dashboard | Completo | 6 contadores (Alertas, Insights, Recomendacoes, Briefings, Eventos, Narrativas) |
| Empty States | Completo | Mensagens contextuais em todas as secoes vazias |
| Banner de Estrategia | Completo | Aviso quando campanha nao tem estrategia |
| Timeline de Movimentos | Completo | Filtros por Tipo, Status, Severidade + busca |
| Detalhe de Alerta | Completo | Resumo, evidencias, historico, campanha, linhagem, relacionamentos |
| Detalhe de Recomendacao | Completo | Inclui "Fatores contribuintes" exclusivo |
| Detalhe de Briefing | Parcial | Secoes do briefing requerem endpoint dedicado (nao integrado) |
| Relacionamentos entre Entidades | Completo | Pais/Origens funcional (Recomendacao -> Briefing) |
| Rastreabilidade / Auditoria | Completo | Grafo de linhagem, status, explicacao, lista de entidades |
| Detalhes Tecnicos (expandable) | Completo | Botao expansivel em todas as paginas de detalhe |
| Switch Campaign | Completo | Trocar campanha via barra superior |
| Sidebar com Badges | Completo | 4 grupos, 13 links, badges numericos dinamicos |
| Admin | Nao testado | Botao presente, funcionalidade nao explorada |
| Busca Global | Nao testado | Botao presente no dashboard |
Paginas de Lista (Sidebar) - Nao Implementadas
Estas paginas sao referenciadas na sidebar mas retornam 404:
| Modulo | Rota | Status | Impacto |
|---|---|---|---|
| Lista de Alertas | /alerts |
404 | Alto - usuario nao pode ver todos os alertas |
| Lista de Eventos | /events |
404 | Alto - eventos so visiveis na timeline |
| Lista de Narrativas | /narratives |
404 | Alto - narrativas so na timeline |
| Lista de Insights | /insights |
404 | Alto - insights so no dashboard e timeline |
| Lista de Recomendacoes | /recommendations |
404 | Alto |
| Lista de Prioridades | /priorities |
404 | Alto |
| Lista de Briefings | /briefings |
404 | Alto - briefings so no dashboard |
| Entregas | /deliveries |
404 | Medio - secao de entregas existe no dashboard |
| Estrategia | /strategies |
404 | Critico - configuracao de estrategia nao funciona |
| Territorios | /territories |
404 | Medio - configuracao geografica |
| Atores Politicos | /political-actors |
404 | Medio - gestao de atores |
/dashboard/detail/{type}/{id}, mas nao ha paginas de listagem para nenhum tipo de entidade. O usuario depende inteiramente do Dashboard e da Timeline para acessar o conteudo.