4 KiB
4 KiB
SisuData – Consultas Avançadas SISU + ENEM
SisuData é uma aplicação web para consulta inteligente de candidatos aprovados no SISU, enriquecida com dados detalhados dos microdados do ENEM. O sistema realiza matching probabilístico entre as bases públicas do ENEM e SISU, mostrando notas individuais de cada componente, classificação, cotas e mais – tudo via uma interface moderna e responsiva.
Funcionalidades
- Scraper/Importação: Baixa e processa os arquivos CSV do SISU automaticamente (por co_ies). Faz join com microdados públicos do ENEM, populando o banco PostgreSQL.
- Matching Inteligente: Algoritmo atribui probabilidades a cada match SISU↔ENEM, e exibe a precisão dos dados no site.
- API Express: Endpoints REST
/buscare/filtrospara pesquisa por nome, curso, nota, estado, etc. - Frontend: Interface web moderna, UX responsiva (busca, filtros, stats, ranking TOP 10 e análise detalhada do candidato).
- Help/Transparência: Modal detalhado de "Como funciona?" explicando conexão dos dados e limitações.
- Paginação e stats: Sistema paginado, rankings por curso/universidade/notas e análise por estado.
Estrutura dos arquivos
scraper.py: Faz download automatizado dos CSVs do SISU usando lista de co_ies (arquivo.json).importar_csv.py: Limpa e integra todos os CSVs do SISU e microdados do ENEM, importa ao Postgres.index.js: Backend Express com API (com retry, pooling robusto, filtros avançados e stats).public/index.html: Frontend SPA com abas, busca, cards responsivos, stats, modal de ajuda, etc.arquivo.json: Lista de objetos"co_ies"para download segmentado.csv/: Pasta onde ficam todos os arquivos CSV baixados e usados no pipeline.
Pré-requisitos
- Node.js >= 16
- Python >= 3.8
- PostgreSQL (NeonDB recomendado ou local/cloud)
Instalação
- Clone o repositório:
git clone https://github.com/Revocable/SisuFinderNode.git
cd SisuFinderNode
- Instale dependências Node.js:
npm install
- Instale dependências Python:
pip install -r requirements.txt
- Configure o arquivo
.env(na raiz do projeto):
DATABASE_URL=postgres://usuario:senha@host:porta/database
Como executar
1. Baixe os arquivos CSV do SISU
Coloque um arquivo.json válido na raiz do projeto e execute:
python scraper.py
2. Importe/integre para o banco
python importar_csv.py
3. Inicie o backend Express
node index.js
Site iniciado em: http://localhost:8080
Como usar
- Acesse
http://localhost:8080 - Pesquise por nome, curso, ou use filtros avançados (estado, nota, turno, etc)
- Clique em "Buscar"
- Veja detalhes do candidato, stats, todas as notas ENEM, classificação no SISU, cotas, bônus etc
- Consulte rankings por curso, universidade ou maiores notas
- Clique no botão flutuante de ajuda ("❓") para entender o funcionamento e metodologia do matching.
Transparência dos Dados
- Origem dos dados:
- SISU: Último dataset público.
- ENEM: Microdados públicos, obtidos de gov.br/inep/microdados/enem
- Matching entre bases:
- Realizado por múltiplos critérios (nota, UF, município de prova, dependência, cotas, PcD etc), com score de precisão e thresholds para confiabilidade.
- A nota individual de cada área do ENEM é exibida com um badge de precisão baseado em quão forte foi o matching.
- Limitações:
- Alguns candidatos não foram encontrados no ENEM (sem match acima do threshold).
- Notas detalhadas ("por área") podem não ser 100% precisas para todos. O badge indica isso!
Observações
- É necessário acesso PostgreSQL (preencha
.env). - Scraper pode parar de funcionar caso o MEC altere a estrutura das APIs/arquivos.
- O frontend foi desenhado para uso rápido, transparente e com foco em análise real de dados abertos.
Autor
Desenvolvido por Murilo Scolari
GitHub