Commit Graph

26 Commits

Author SHA1 Message Date
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
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
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
7d73510101 perf(ranking): otimizar paginação usando Oracle direto
- Remover carregamento de 350k registros em memória no startup
- Refatorar endpoints para buscar dados direto do Oracle:
  - ranking_paginado
  - buscar_por_nome
  - ranking_estatisticas
  - obter_posicao_ranking
- Adicionar healthcheck leve no Oracle com start_period de 60s
- Corrigir start-ngrok.sh para subir todos os containers
- Adicionar domínio ngrok-free.dev no vite.config.js
2025-12-21 22:22:58 -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
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
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
ffdd4cad2c feat(api): adicionar endpoint para consulta de posição individual no ranking
- Novo endpoint GET /api/v1/ranking/posicao/{id_pessoa}
- Retorna posição, pontuação por bloco e total de consultores
- Para integração com frontend do ATUACAPES
2025-12-18 05:50:11 -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
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
2a0dc1a652 feat(backend): ranking 100% Elasticsearch e critérios do PDF 2025-12-15 00:13:12 -03:00
Frederico Castro
f91651056a Refatoracao de qualidade de codigo
- Mover logica de routes.py para RankingMapper na camada de aplicacao
- Consolidar funcoes mesclar_periodos e anos_completos_periodos em periodo.py
- Extrair RankingCache para modulo separado em infrastructure/cache
- Substituir todos os print() por logging adequado
- Corrigir exception handlers genericos para tipos especificos
- Remover classe Atuacao e atributo atuacoes_raw nao utilizados
- Documentar status dos scripts utilitarios
2025-12-14 21:47:00 -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
Frederico Castro
48c1074a91 Adiciona campo pontuacao detalhada ao retorno do ranking paginado 2025-12-13 17:25:37 -03:00
Frederico Castro
2d4e93f82a Reimplementa sistema de ranking com novos critérios V2
Mudanças principais:
- Substitui 4 Componentes (A,B,C,D) por 3 Blocos (A,C,D)
- Remove Componente B (Coordenação PPG = 0 pts no V1)
- Adiciona novos tipos de atuação do Elasticsearch
- Implementa critérios de pontuação com tetos individuais

Bloco A - Coordenação CAPES:
- CA (max 450), CAJ (max 370), CAJ_MP (max 315), CAM (max 280)
- Calcula base + tempo + bônus atualidade + bônus retorno

Bloco C - Consultoria:
- CONS_ATIVO (base 150), CONS_HIST (base 100), CONS_FALECIDO (base 100)
- Bônus continuidade: 3anos=+5, 5anos=+10, 8anos=+15
- Bônus retorno: +15

Bloco D - Premiações/Avaliações:
- Inscrições (INSC_AUTOR, INSC_INST)
- Avaliações (AVAL_COMIS_PREMIO, AVAL_COMIS_GP)
- Coordenações (COORD_COMIS_PREMIO, COORD_COMIS_GP)
- Premiações (PREMIACAO, PREMIACAO_GP, MENCAO)
- Bolsas CNPQ, Participações, Orientações, Membros de Banca

Frontend:
- Header, ConsultorCard, CompararModal atualizados para 3 blocos
- API service atualizado para nova estrutura de dados
2025-12-13 16:41:55 -03:00
Frederico Castro
97cd328415 Adiciona calculo de continuidade no endpoint paginado 2025-12-13 16:13:36 -03:00
Frederico Castro
9df56075ef Corrige import List no endpoint de busca 2025-12-10 16:30:45 -03:00
Frederico Castro
01aace497b Busca por nome com destaque e navegação para página 2025-12-10 16:20:37 -03:00
Frederico Castro
90552fe607 Permite page size até 1000 no ranking paginado 2025-12-10 16:12:59 -03:00
Frederico Castro
71a8aa4417 Inclui detalhes de coordenacoes e premiações no ranking paginado 2025-12-10 15:25:28 -03:00
Frederico Castro
6f11b7c166 Automatiza componente B e ajuste frontend do ranking 2025-12-10 13:49:43 -03:00
Frederico Castro
3ea6a4409e feat: Implementa job de ranking para 300k consultores
Backend:
- Adiciona Scroll API no cliente Elasticsearch para processar todos os 300k+ consultores
- Cria tabela TB_RANKING_CONSULTOR no Oracle para ranking pré-calculado
- Implementa job de processamento com APScheduler (diário às 3h)
- Adiciona endpoints: /ranking/paginado, /ranking/status, /ranking/processar, /ranking/estatisticas
- Repository Oracle com paginação eficiente via ROW_NUMBER
- Status do job com progresso em tempo real (polling)
- Leitura automática de LOBs no OracleClient

Frontend:
- Componente RankingPaginado com paginação completa
- Barra de progresso do job em tempo real
- Botão para reprocessar ranking
- Alternância entre Top N (rápido) e Ranking Completo (300k)

Infraestrutura:
- Docker compose com depends_on para garantir Oracle disponível
- Schema SQL com procedure SP_ATUALIZAR_POSICOES
- Índices otimizados para paginação
2025-12-10 01:33:00 -03:00
Frederico Castro
9e6ba459a8 feat: Sistema de Ranking de Consultores CAPES - versão inicial
Backend (FastAPI + DDD):
- Arquitetura DDD com camadas Domain, Application, Infrastructure, Interface
- Integração com Elasticsearch (ATUACAPES) para dados de consultores
- Integração com Oracle (SUCUPIRA_PAINEL) para coordenações PPG
- Cálculo dos 4 componentes de pontuação (A, B, C, D)
- Cache em memória para otimização de performance
- API REST com endpoints /ranking, /ranking/detalhado, /consultor/{id}

Frontend (React + Vite):
- Interface responsiva com cards expansíveis
- Visualização detalhada de pontuação por componente
- Filtro por quantidade de consultores (Top 10, 50, 100, etc)

Docker:
- docker-compose com shared_network externa
- Backend com Oracle Instant Client
- Frontend com Vite dev server
2025-12-09 01:24:35 -03:00