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
This commit is contained in:
29
frontend/src/services/api.js
Normal file
29
frontend/src/services/api.js
Normal file
@@ -0,0 +1,29 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const api = axios.create({
|
||||
baseURL: '/api/v1',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
|
||||
export const rankingService = {
|
||||
async getRanking(limite = 100, componente = null) {
|
||||
const params = { limite };
|
||||
if (componente) params.componente = componente;
|
||||
const response = await api.get('/ranking/detalhado', { params });
|
||||
return response.data;
|
||||
},
|
||||
|
||||
async getConsultor(idPessoa) {
|
||||
const response = await api.get(`/consultor/${idPessoa}`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
async getHealth() {
|
||||
const response = await api.get('/health');
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
|
||||
export default api;
|
||||
Reference in New Issue
Block a user