⏳ ...

26/12/2014

Busca de Disciplinas da USP

Aviso (agosto de 2020): após algumas mudanças de servidor e domínio, o buscador está offline. Em breve quero trazê-lo de volta. Enquanto isso, monte sua grade com o Matrusp (que não faz as buscas que eu queria abaixo, mas ok).

tl;dr: fiz uma página pra buscar disciplinas da USP por palavras-chave, facilitando pesquisas temáticas pra quem tá procurando optativas, etc.

O nome não é dos mais criativos, eu sei, mas fazer o quê? Buscar por disciplinas no JupiterWeb é uma tortura, não só aquele sistema é completamente arcaico e desatualizado, como a busca não possui acessibilidade nenhuma. Se você buscar por “direito”, por exemplo, receberá um erro de “resultados demais para exibir.” Se especificar para “direito filosofia”, só uma matéria aparece. Se em vez disso pesquisar por “filosofia direito”, umas seis matérias aparecem (!). Não serve pra descobrir, mas no máximo pra encontrar o que você já sabe que existe. Além de contra-intuitiva, a busca só funciona nos nomes das disciplinas, deixando de fora campos que trazem mais informações relevantes, como Programa, Objetivo e Bibliografia.

Porque eu tinha pouca coisa pra fazer, queria aprender mais web design, queria um jeito pra eu mesmo buscar matérias interessantes, e precisava de um projeto final pro MOOC CS50x, resolvi ir ao trabalho e montar esse sistema, que -espero eu- vai facilitar a vida (ou ao menos a curiosidade) de uma galera por aí (:

Você pode acessar a busca clicando na imagem ou aqui.

Enjoy! \o

Tecnicalidades, e um convite

Pra extrair os dados do Júpiter, usei o web crawler automatizado KimonoLabs. Esses dados eu armazenei em uma spreadsheet no Google Drive, cujo link é usado como parâmetro de um plugin de jQuery chamado sheetrock. Esse plugin, basicamente, recebe queries parecidas com as de SQL (nesse caso, queries no estilo da Google Query Language usada pra visualização de dados) e retorna os resultados extraídos daquela spreadsheet do Google. O que o javascript que eu escrevi faz é receber o input do usuário e montar a query, além de interpretar, formatar e exibir os dados que a query retorna. Pra quem quiser, o código tá no github.

Versões alternativas desse mesmo projeto chegaram a incluir uma live search de um JSON com todas as disciplinas (abandonado porque o client teria que lidar com ~50mb de dados a cada vez que abrisse o site) e uma tentativa de extrair os dados usando o Scrapy (sem sucesso).

Esse projeto é como um experimento pra outro projeto de maior escala no qual eu tenho trabalhado, relacionado à USP e a busca de disciplinas, etc. Se você curtiu a ideia, e manja de web dev, me manda um olar que eu te conto mais :3

Posted in academia, code
Write a comment