Commit Graph

65 Commits

Author SHA1 Message Date
Frederico Castro
6b07cecf4e fix(criterios): atualizar tela de criterios com selos disponiveis
- Remover selos sem dados: POS_DOC, CO_ORIENT_*, MB_BANCA_*, BOL_BPQ, PPG_COORD
- Atualizar seção Orientações para ORIENT_TESE e ORIENT_DISS apenas
- Remover seção Bancas (sem dados no ATUACAPES)
- Criar seções Participações (EVENTO, PROJ) e Características (IDIOMA_MULTILINGUE)
- Alinhar layout das tabelas de selos (65% código, 35% selo centralizado)
- Adicionar classe CSS selo-idioma
2025-12-27 21:39:50 -03:00
Frederico Castro
13ccfb02d3 feat(selos): implementar sistema completo de selos para consultores
- Adicionar coluna SELOS na tabela TB_RANKING_CONSULTOR (migration v1.2)
- Criar script popular_selos.py para popular/atualizar selos em batch
- Simplificar para 22 selos com dados reais (remover selos sem dados)
- Adicionar selo IDIOMA_MULTILINGUE para consultores com 3+ idiomas
- Corrigir filtro de selos com query LIKE exata (evitar matches parciais)
- Alinhar ícones entre FiltroSelos e ConsultorCard
- Reorganizar filtro em 7 categorias: Coordenação, Consultoria, Avaliações,
  Premiações, Orientações, Participações, Características

Selos disponíveis: CA, CAJ, CAJ_MP, CAM, PRESID_CAMARA, CONS_ATIVO,
AVAL_COMIS, COORD_COMIS, AUTOR_GP, AUTOR_PREMIO, AUTOR_MENCAO,
ORIENT_GP, ORIENT_PREMIO, ORIENT_MENCAO, COORIENT_GP, COORIENT_PREMIO,
COORIENT_MENCAO, ORIENT_TESE, ORIENT_DISS, EVENTO, PROJ, IDIOMA_MULTILINGUE
2025-12-27 21:08:22 -03:00
Frederico Castro
c78f48c988 fix(lattes): correcoes finais na integracao Lattes 2025-12-27 01:06:43 -03:00
Frederico Castro
1e15ab64ca fix(frontend): ajustes finais na secao Lattes 2025-12-26 23:59:01 -03:00
Frederico Castro
e8b3868d28 feat(lattes): melhorias na integracao Lattes e estilos da secao
- Aprimorar extracao de dados Lattes no backend
- Melhorar estilos CSS da secao Lattes
- Ajustes no componente ConsultorCard para exibicao do Lattes
2025-12-26 23:45:08 -03:00
Frederico Castro
9d3b4d37b7 feat(backend/frontend): integrar dados do Lattes no ranking
- Adicionar endpoint /consultor/{id}/lattes para buscar producoes
- Incluir id_lattes e titulacoes na resposta do ranking paginado
- Adicionar LattesSchema no backend
- Adicionar funcao getLattes no servico frontend
- Simplificar botao Producoes removendo estado loading desnecessario
2025-12-26 23:35:32 -03:00
Frederico Castro
962cea0fd9 fix(frontend): corrigir formatacao da secao Lattes e configurar acesso Oracle CAPES
- Adicionar estilos CSS para secao Lattes (titulacoes em badges separados)
- Montar arquivo .env no container backend para carregar credenciais Oracle CAPES
- Configurar DNS da VPN CAPES no docker-compose para resolucao de hostnames
2025-12-26 20:43:05 -03:00
Frederico Castro
919d95d1e8 fix(backend): corrigir exibicao de idiomas e selos multilingue
- Adicionar idiomas e formacoes ao _source das queries ES (client.py)
- Corrigir type mismatch int/str no endpoint paginado (routes.py)
- Adicionar campo evento nas inscricoes para nome do premio
- Implementar extracao de idiomas do ES no repository
- Ajustar frontend para exibir selo multilingue corretamente
2025-12-24 18:12:22 -03:00
Frederico Castro
0d355e705e feat(frontend): implementar selos faltantes e corrigir alinhamento tabelas
- Adicionar 10 novos selos: MB_BANCA_*, EVENTO, PROJ, IDIOMA_*, TITULACAO_*
- Adicionar TETOS para Bloco A e B no calculo de pontuacao
- Adicionar modais para selos de banca, evento e projeto
- Corrigir alinhamento de colunas nas tabelas do painel de criterios
- Corrigir alinhamento nos modais de blocos (BlocoCriteriosModal)
- Ajustar layout dos selos para linha dedicada abaixo do nome
- Corrigir distribuicao de espaco nas tabelas com selos
- Corrigir extracao de datas de consultoria no backend
2025-12-24 00:53:28 -03:00
Frederico Castro
9576e55289 feat(frontend): adicionar modais detalhados para cada bloco de criterios
- Criar BlocoCriteriosModal com dados completos da planilha oficial
- Incluir formula, base, teto, tempo, bonus e recorrencias por bloco
- Tornar blocos clicaveis para abrir modal com informacoes detalhadas
- Bloco A: Coordenacao CAPES com bonus atualidade/retorno
- Bloco B: Consultoria com bonus continuidade/retorno
- Bloco C: Premiacoes, Comissoes, Inscricoes com recorrencias
- Bloco D: Indicadores e selos (idioma, titulacao)
- Bloco E: Explicacao do indicador PPG_COORD
2025-12-23 23:05:14 -03:00
Frederico Castro
73ea0943ba fix(frontend): alinhar insights e criterios com planilha oficial
- Corrigir gerarInsights() removendo conceitos inexistentes (TETOS_BLOCO,
  "Destaque em Coordenação CAPES", aproveitamento % do teto de bloco)
- Adicionar valores corretos de bônus conforme Aba 4 do Excel oficial
- Remover "max 300" do Bloco C (não existe teto de bloco na especificação)
- Remover PRES_CAM do Bloco D (código inexistente na planilha oficial)
2025-12-23 22:48:48 -03:00
Frederico Castro
ab1cb1ba8c feat(frontend): adicionar modal de insights explicando posicao no ranking
- Criar funcao gerarInsights() com regras baseadas nos criterios oficiais
- Adicionar botao "?" junto a posicao para abrir modal de insights
- Mostrar percentil, bloco dominante, coordenacoes, premiacoes, etc
- Calcular aproveitamento dos tetos por bloco
2025-12-23 22:11:40 -03:00
Frederico Castro
26a478be05 fix: alinhar estrutura de blocos com especificacao PDF V1.0
- Backend: reorganizar blocos para A (Coord CAPES), B (Consultoria),
  C (Avaliacoes/Premiacoes), D (Indicadores), E (Coord PPG)
- Frontend: atualizar labels e formulas dos blocos
- Frontend: ajustar CSS para blocos com tamanho uniforme e quebra de linha
- Adicionar migration script para COMPONENTE_E no Oracle
2025-12-23 21:57:43 -03:00
Frederico Castro
8799a68c30 feat: extrair docencias PPG e simplificar blocos de pontuacao
Backend:
- Adicionar entidade DocenciaPPG para dados de docencia
- Extrair docencias do Elasticsearch (tipo "Docência")
- Serializar docencias no JSON de detalhes do consultor
- Aumentar batch size de 500 para 2000 para melhor performance

Frontend:
- Remover Bloco B (Coord. PPG) - reservado para V2
- Simplificar formula para: Bloco A + Bloco C + Bloco D
- Filtrar orientacoes/bancas da listagem (sao apenas selos)
- Atualizar Header com nota que PPG_COORD e apenas indicador
- Exibir pontuacao base nos modais de orientacao/banca
2025-12-23 04:27:36 -03:00
Frederico Castro
d33695ed65 feat(frontend): colorir selos ao passar o mouse por cima 2025-12-22 20:29:10 -03:00
Frederico Castro
b585272701 fix(backend): corrigir calculo de anos consecutivos para consultores ativos
- Nao usar inativacaoSituacao como data fim quando situacao indica ativo
- Evita que consultores com "Atividade Continua" tenham 0 anos consecutivos
- Corrigir alinhamento dos headers nas tabelas de criterios (Header.css)
2025-12-22 06:25:47 -03:00
Frederico Castro
46ffe72fef fix(frontend): alinhar stats e adicionar modais de pontuacao clicaveis 2025-12-22 05:38:05 -03:00
Frederico Castro
06f241aea0 fix(frontend): adicionar cursor pointer e click nos totais de cada bloco 2025-12-22 04:31:43 -03:00
Frederico Castro
e11c80f6ca fix(frontend): aplicar cursor pointer nos score items clicaveis 2025-12-22 04:29:12 -03:00
Frederico Castro
89f5a8484f feat(frontend): adicionar modais de calculo nas caixas de pontuacao
- Substituir tooltips por modais clicaveis nos score items
- Adicionar PontuacaoModal com formula de calculo detalhada
- Criar ScoreItemClickable para itens de pontuacao clicaveis
- Exibir breakdown: base, tempo, bonus, teto e total
- Estilar formula-box com fonte monospace para clareza
- Manter consistencia visual com outros modais do sistema
2025-12-22 04:27:52 -03:00
Frederico Castro
32b404d1a8 feat(frontend): adicionar modais de detalhes para itens das listas
- Criar componente ItemDetalheModal para exibir detalhes de atuações
- Adicionar modais clicáveis em: vínculos, coordenações, premiações,
  avaliações, inscrições e participações
- Melhorar healthcheck do Oracle no docker-compose
- Adicionar retry com backoff na conexão Oracle
- Padronizar tamanho dos badges de tipos de atuação
2025-12-22 04:17:12 -03:00
Frederico Castro
061a3e8768 feat(frontend): melhorias no ConsultorCard
- Adicionar função corrigir_encoding para fix de caracteres Latin1
- Melhorias visuais no CSS do card de consultor
2025-12-21 22:23:16 -03:00
Frederico Castro
d4aa75ca0b feat(ranking): adicionar badges de tipos de atuação nos cards
- Adiciona campo tipos_atuacao ao schema e extração no mapper
- Exibe tipos de atuação (Coordenador, Consultor, Avaliador, etc.)
  na seção expandida do card, acima de Selos e Reconhecimentos
- Inclui estilos visuais distintos para cada tipo de atuação
- Melhorias no Header e SugerirConsultores
2025-12-21 05:36:26 -03:00
Frederico Castro
bb36961b4c feat(equipe): implementar montagem de equipe interdisciplinar com PDF
- Adicionar seleção múltipla de consultores entre diferentes buscas
- Criar endpoint POST /api/v1/equipe/pdf para gerar documento da equipe
- Implementar template HTML profissional para PDF da equipe
- Exibir estatísticas: total, ativos, coordenadores, premiados, IES
- Persistir seleção ao trocar termos de busca (equipe interdisciplinar)
- Mostrar temas combinados na barra flutuante e no PDF
- Corrigir renderização de emojis no PDF (substituir por texto)
- Melhorar contraste da cor do ranking no frontend (roxo → ciano)
- Corrigir validação Pydantic para ignorar campos extras do .env
2025-12-20 18:30:37 -03:00
Frederico Castro
81acf1895f fix: exigir match de tema na busca e corrigir verificacao de status ativo 2025-12-20 12:27:29 -03:00
Frederico Castro
342e52880e fix: corrigir filtro de ativos, remover count de areas e navegacao ao clicar 2025-12-20 12:22:45 -03:00
Frederico Castro
45ab7412fe feat: adicionar sistema de sugestao de consultores por tema
- Novo endpoint GET /api/v1/consultores/sugerir com busca por tema
- Busca inteligente em areas de avaliacao, conhecimento e pesquisa
- Filtro por consultores ativos e area de avaliacao especifica
- Endpoint GET /api/v1/consultores/areas-avaliacao com lista de areas
- Novo componente SugerirConsultores no frontend
- Botao 'Sugerir por Tema' integrado na interface principal
- Score de match baseado em relevancia do tema e experiencia
2025-12-20 07:35:03 -03:00
Frederico Castro
f7557831eb feat(modal): ordenar atuações por data e ajustar layout do nome
- Adicionar ordenação das atuações por data (mais recente primeiro)
- Ajustar grid de dados pessoais para campo nome ocupar 2 colunas
- Reduzir minmax do grid de 220px para 150px para melhor distribuição
2025-12-20 07:20:57 -03:00
Frederico Castro
26492c880c fix: alinhar criterios 100% com documento PDF oficial
Backend:
- Reescrever criterios_pontuacao.py com valores corretos do PDF
- Adicionar Blocos B e E ao enum
- Corrigir Base/Teto: AVAL_COMIS_GP (40), COORD_COMIS_PREMIO (40),
  COORD_COMIS_GP (50), PROJ teto (30)
- Orientacoes/Bancas agora sao selos (Base=0, Teto=0)
- CONS_FALECIDO agora pontua tempo (5 pts/ano)
- Remover codigos obsoletos (PREMIACAO, MENCAO, BOL_BPQ_SUP/INT)
- Usar apenas BOL_BPQ_NIVEL, PREMIACAO_*_AUTOR, MENCAO_AUTOR
- Atualizar ranking_store.py e validar_ranking.py

Frontend:
- Atualizar ConsultorCard e CompararModal com codigos corretos
- Adicionar logo CAPES em PNG com transparencia
- Ajustar espacamento do header e tamanho das fontes
- Mapear pasta public no docker-compose
2025-12-20 06:53:45 -03:00
Frederico Castro
7ba2c2be9d feat(ui): atualizar painel de criterios com todos os blocos do documento V1
- Reorganizar layout em 3 linhas com 5 blocos (A, B, C, D, E)
- Bloco A: Coordenacao CAPES (CA, CAJ, CAJ_MP, CAM)
- Bloco B: Consultoria (ATIVO, HIST, FALECIDO)
- Bloco C: Premiacoes, Avaliacoes, Inscricoes, Orientacoes, Bancas
- Bloco D: Indicadores (BOL_BPQ, PROJ, EVENTO, IDIOMA, TITULACAO)
- Bloco E: Coord. PPG (reservado para V2)
- Atualizar valores Base/Teto conforme documento oficial
- Adicionar logo CAPES no header
- Melhorar alinhamento de colunas nas tabelas
- Ajustar tamanhos de fonte para melhor legibilidade
2025-12-20 06:02:35 -03:00
Frederico Castro
9457c18cbd feat: implementar novos critérios de pontuação da planilha atualizada
- Adicionar critérios diferenciados por papel (autor vs orientador)
- Implementar INSC_INST_AUTOR, PREMIACAO_GP_AUTOR, PREMIACAO_AUTOR, MENCAO_AUTOR
- Adicionar bônus de recorrência para inscrições, eventos e projetos
- Corrigir lógica de bônus de consultoria (continuidade e retorno)
- Ajustar extração de selos no frontend para novos códigos
- Adicionar BOL_BPQ_NIVEL para bolsas sem nível especificado
- Refinar cálculo de pontuação com novos tetos e multiplicadores
2025-12-19 22:30:21 -03:00
Frederico Castro
cbdeddb5d8 feat(ui): expandir modal de dados e melhorar template PDF
- Expandir RawDataModal com mais funcionalidades de visualização
- Ajustar template HTML da ficha do consultor
- Adicionar configuração MCP do projeto
- Atualizar gitignore para ignorar arquivos locais
2025-12-19 11:59:41 -03:00
Frederico Castro
47f0a80f3f feat(pdf): adicionar exportação de ficha do consultor em PDF
- Novo endpoint GET /api/v1/consultor/{id}/pdf para download
- Serviço PDFService usando WeasyPrint para geração
- Template HTML com layout padrão governo federal
- Botão de exportar PDF no card e modal de dados brutos
2025-12-18 22:43:42 -03:00
Frederico Castro
7dc1284d0b feat(ui): exibir coordenação CAPES no card em vez de status consultoria
Substitui exibição de CONS_ATIVO/HIST pela coordenação CAPES mais
relevante (CA > CAJ > CAJ_MP > CAM), priorizando coordenações ativas.
2025-12-18 12:27:39 -03:00
Frederico Castro
b8b97e2f88 style(selos): aplicar estilo monocromático nos selos da listagem
- Selos compactos agora usam tons de slate/cinza
- Emojis com filtro grayscale para visual uniforme
- Selos completos (internos) mantêm cores originais
2025-12-18 06:37:31 -03:00
Frederico Castro
c388509acb feat(raw-data): adicionar visualização de dados brutos do ATUACAPES
- Novo endpoint GET /api/v1/consultor/{id}/raw para buscar documento completo do ES
- Novo componente RawDataModal com formatação inteligente de campos
- Botão de acesso rápido no ConsultorCard (ícone ⋮)
- Melhorias de estilo no Header e ConsultorCard
2025-12-17 23:28:11 -03:00
Frederico Castro
99ce6e30d8 feat(vinculos): adicionar vínculos de consultoria com IES e ordenação cronológica
- Adicionar entidades e DTOs para vínculos de consultoria (IES, período, situação)
- Extrair vínculos do Elasticsearch com datas e informações da IES
- Exibir vínculos no card do consultor com sigla e nome completo da IES
- Ordenar todas as listas do detalhe por data/ano decrescente (mais recente primeiro)
2025-12-17 20:48:50 -03:00
Frederico Castro
678be6170f fix(ui): corrigir exibição de posição e status no ranking
- Ajustar caixa do rank para crescer automaticamente com números grandes
- Reduzir fonte proporcionalmente para posições com 4-7 dígitos
- Exibir STATUS com valor padrão '-' quando consultoria não existe
- Ajustar responsividade para telas menores
2025-12-17 17:22:24 -03:00
Frederico Castro
15570be9c9 feat(avaliacao): adicionar nome da comissão nas avaliações
- Adiciona campo nome_comissao em AvaliacaoComissao (entity, DTO, schema)
- Extrai nome da comissão do Elasticsearch no repository
- Propaga campo pelo job de processamento e use case
- Exibe nome da comissão no ConsultorCard (frontend)
- Remove link do manual PDF do footer
2025-12-17 14:15:43 -03:00
Frederico Castro
0f61b55944 fix(comparacao): corrigir alinhamento simétrico no modal de comparação
Ajusta layout para que valores absolutos fiquem próximos ao centro
e diferenças nas extremidades de cada lado.
2025-12-15 13:24:04 -03:00
Frederico Castro
6034289403 feat(comparacao): exibir selos de cada consultor no modal de comparacao 2025-12-15 13:13:47 -03:00
Frederico Castro
3254374486 fix(filtros): corrigir extração de selos e melhorar UX do filtro
- Corrigir lógica de extração de selos para usar códigos exatos
- Filtro agora exige todos os selos selecionados (AND em vez de OR)
- Botão Aplicar volta: seleção não dispara filtro automaticamente
- Layout dos controles unificado em barra com fundo
2025-12-15 13:04:06 -03:00
Frederico Castro
c294d4cc77 feat(filtros): adicionar filtro multi-select por selos no ranking
- Backend: extrair selos de detalhes e filtrar por eles
- API: endpoint /ranking/selos e parâmetro selos em /ranking/paginado
- Frontend: componente FiltroSelos com dropdown e seleção múltipla
- Selos disponíveis: funções, premiações, orientações
2025-12-15 12:32:24 -03:00
Frederico Castro
4876d4d9f5 feat(frontend): adicionar link para perfil no ATUACAPES
- Adiciona ícone de link externo antes do nome do consultor
- Link abre perfil no ATUACAPES em nova aba (/perfil/{id_pessoa})
- Variável de ambiente HOST_ATUACAPES configurável
- Adiciona retry automático (10 tentativas) ao carregar ranking
- Corrige espaçamento da seção de selos
- Atualiza arquivos .env.example
2025-12-15 11:14:10 -03:00
Frederico Castro
df3d03d3b2 fix: resolver problemas identificados no code review
Correções de segurança:
- SQL Injection: usar prepared statements em ranking_repository.py
- Validação de entrada para parâmetros page/size

Correções de bugs:
- Bônus de continuidade: 15→20 pts para 8+ anos (conforme especificação)
- Memory leak: limpar _consultores após processamento do ranking

Melhorias de robustez:
- Substituir bare except por exceções específicas
- Threading.Lock para padrão singleton thread-safe
- Pool Oracle com configuração otimizada (timeout/getmode)
- ES client com timeouts diferenciados e verificação is_closed
- Logging para tipos de coordenação desconhecidos

Correções frontend:
- Polling com timeout máximo de 5 minutos
- useEffect cleanup para setTimeout
- React.memo e useMemo para otimização de performance
2025-12-15 07:11:28 -03:00
Frederico Castro
d639b82087 fix(selos): corrigir geração de selos e adicionar ícones visuais
- Corrigir extração de orientações (tipo "Orientação de Discentes")
- Selos de premiação agora usam campo papel (Autor/Orientador/Coorientador)
- Adicionar ícones visuais aos selos (emojis Unicode)
- Adicionar estilos CSS para novos tipos de selos
- Melhorias no Oracle client e ranking repository
2025-12-15 05:01:52 -03:00
Frederico Castro
6369ac5d22 feat(frontend): alinhar critérios e selos/hints 2025-12-15 00:13:15 -03:00
Frederico Castro
7928062cb8 Add visual badges (selos) to ConsultorCard
- Add SELOS constant with 18 badge types (coord, bolsa, premio, orientacoes, etc)
- Add gerarSelos() function to extract badges from consultor data
- Add SelosBadges component with compact and full display modes
- Integrate badges in card header (compact) and expanded details (full)
- Add CSS styles with gradient backgrounds and hover effects for each badge type
- Badges show achievement counts and support tooltips
2025-12-14 21:06:31 -03:00
Frederico Castro
120593831c Atualiza criterios de pontuacao para V2
Backend:
- CAJ retorno 20->15, CAJ_MP retorno 20->10, CAM atualidade 10->20, retorno 20->10
- CONS_ATIVO/HIST/FALECIDO continuidade 8a+ = 20 (simplificado)
- CONS_FALECIDO agora pontua tempo (5 pts/ano, teto 50)
- AVAL_COMIS_PREMIO e AVAL_COMIS_GP mudaram tipo para PAPEL
- AVAL_COMIS_GP teto 100->80
- Novo bonus de recorrencia anual para comissoes (2-6 pts/ano)
- PREMIACAO base 150->100, PREMIACAO_GP base 30->50, MENCAO base 10->30
- BOL_BPQ_INTERMEDIARIO base 50->30 (consolidado)
- Orientacoes/Co-orientacoes/Bancas: tetos zerados (sem limite)
- TipoAtuacao.RESULTADO renomeado para COMPETENCIA_RECONHECIMENTO

Frontend:
- Atualiza PONTOS_BASE e TETOS com novos valores V2
- Atualiza descricoes das formulas nos tooltips
- Melhora exibicao de teto=0 como "sem limite"
- Adiciona info de bonus de recorrencia nos tooltips
2025-12-14 20:37:55 -03:00
Frederico Castro
7000268261 Adiciona suporte ao Bloco B (Coordenacao PPG) e melhora tooltips
- Adiciona Bloco B no ConsultorCard com formula e detalhes
- Ajusta calculo de pontuacao total para incluir Bloco B
- Melhora tooltips com informacoes de teto e calculo detalhado
- Ajusta routes.py para preencher blocos corretamente
- Adiciona bloco_b no schema de ranking
2025-12-14 20:31:47 -03:00