Busca de Disciplinas USP

Busca de Disciplinas da USP

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

Alguém que gosta de estudar coisas.

  3 comments for “Busca de Disciplinas da USP

  1. Alessandro Costa de Oliveira
    07.01.15 at 10.12

    Olá Rafael,
    Parabéns pela aplicação!
    Gostaria de saber se quando uma disciplina é inserida ou alterada no JupiterWeb a aplicação absorve.
    Abs,
    Alessandro
    Informática da ECA

    • zynphull
      07.01.15 at 13.03

      Olá Alessandro,

      Valeu :)

      Então, supondo que as alterações se deem em cada mudança de semestre, eu só preciso refazer a leitura dos dados do Jupiter (usando o Kimono Labs) e atualizar isso no site; ou seja: a atualização é, de certa forma, meio manual ainda :P

      Rafael

      • Alessandro Costa de Oliveira
        08.01.15 at 10.19

        Legal! Obrigado pela resposta. Abs

grite (baixo!)