01

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

4
Campanhas
13
Modulos na Sidebar
7
Tipos de Entidade
49
Rotas Testadas
4
Rotas Funcionais
45+
Rotas 404
02

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)
Tela de login
Tela de login - campos email e senha
Login preenchido
Formulario preenchido com credenciais
Apos login
Tela apos login - selecao de campanhas
03

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 - - -
Selecao de campanhas
Tela de selecao de campanhas - 4 cards visiveis
Campanhas scroll
Campanhas com scroll - mostrando todas

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.)
Observacao: O formulario de criacao de campanha foi validado visualmente. Os dropdowns de Cargo e Estado contem opcoes reais (Governador, SP foram confirmados).
Modal criar campanha
Modal de criacao de campanha - Nome, Ano, Cargo, Estado
04

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."

Dashboard topo
Dashboard - Centro de Acao com contadores e cards de alerta/recomendacao/briefing
Dashboard scroll
Dashboard - Timeline, Insights Ativos e Entregas Recentes

Dados do Dashboard (Campanha E2E)

1
Alertas
1
Insights
1
Recomendacoes
1
Briefings
1
Eventos
1
Narrativas

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
05

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 -
Timeline
Timeline com filtros (Tipo, Status, Severidade) e 7 itens cronologicos
07

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
Detalhe do alerta
Detalhe do alerta - badges, resumo, evidencias, historico
Auditoria do alerta
Rastreabilidade do alerta - grafo de linhagem, status, explicacao

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
Relacionamento encontrado: A recomendacao tem um relacionamento "Pais / Origens" apontando para o briefing E2E_Briefing_Semanal. Isso mostra que o sistema de linhagem entre entidades esta funcional — a recomendacao foi derivada do briefing.
Detalhe recomendacao
Detalhe da recomendacao - resumo, evidencias, fatores, relacionamentos
Auditoria recomendacao
Rastreabilidade da recomendacao - grafo, status pending

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
Nota: O briefing indica que "as secoes requerem endpoint dedicado", sugerindo que a visualizacao completa do conteudo do briefing (com suas secoes internas) depende de um endpoint de API que ainda nao esta integrado na UI de detalhe.
Detalhe briefing
Detalhe do briefing - secoes, evidencias, timeline com data real
Auditoria briefing
Rastreabilidade do briefing - grafo, status Publicado

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
08

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"
Observacao tecnica: A pagina de auditoria usa classes CSS semanticas (audit-graph, audit-graph__nodes, audit-graph__node-list) para renderizar o grafo de linhagem. O grafo suporta multiplos nos e arestas, embora nos dados E2E so apareca 1 no e 0 arestas por entidade.

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
09

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."
Boa pratica: O sistema trata estados vazios com mensagens explicativas contextuais, orientando o usuario sobre o que esperar e como comecar. Os empty states sao informativos e nao apenas "nenhum dado encontrado".
Dashboard Tarcisio
Dashboard vazio - banner de estrategia, contadores zerados, empty states
Timeline Tarcisio
Timeline vazia - filtros funcionais, mensagem contextual
10

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

Conclusao: Das 62 rotas testadas (13 sidebar + 49 exploradas), apenas 4 sao funcionais no frontend: Dashboard, Timeline, detalhe de entidade via /dashboard/detail/, e auditoria via /audit. Todas as demais retornam 404.
11

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
12

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
Resumo critico: 11 dos 13 modulos da sidebar (84.6%) retornam 404. Apenas Dashboard e Timeline funcionam. As paginas de detalhe individual funcionam via /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.

Resumo Final

16
Funcionalidades Completas
1
Parcialmente Implementada
11
Paginas 404 (Sidebar)
2
Nao Testadas
Nota para revisao: Este documento cobre a varredura completa da aplicacao Radar Eleitoral em agosto de 2026. O sistema possui uma arquitetura solida (campaign-scoped SPA com rastreabilidade), mas a maioria das paginas de lista nao foi implementada no frontend. O Dashboard centraliza o acesso a todas as entidades, e as paginas de detalhe individual sao completas e consistentes. A principal lacuna e a ausencia de paginas de listagem dedicadas para cada tipo de entidade.