No final de 2015, conversando com o kov (Gustavo Noronha) sobre a minha vontade de criar o “Me representa” (um projeto onde qualquer cidadão poderia ver se o seu representante estava votando como ele esperava), ele comentou que tinha rabiscado uma ideia de ter em um único lugar todas as informações dos políticos e partidos Brasileiros (Esse é um dos grandes problemas que enfrentamos no OlhoNeles.org, porque toda vez que escrevemos um novo coletor precisamos mapear os políticos e os partidos novamente e ainda encontramos vários problemas para identificar os candidatos que muitas vezes são referenciados pelo apelido).
Ideias foram surgindo em volta do tema e a possibilidade de criar uma base de dados e uma linha do tempo de todos os candidatos e partidos políticos Brasileiros pulsaram forte na minha mente. Algo como um Curriculum Vitae do candidato. Qual ano ele foi eleito, qual não foi. Como foi a sua carreira, se ele começou como vereador, virou deputado estatual, prefeito, etc. Quantas vezes ele mudou de partido e quais foram, etc.
Pesquisei e vi que o TSE disponibilizava os dados em formato zip para cada ano. Abrindo o zip, existem vários arquivos em formato texto para cada Estado Brasileiro. Cada arquivo contém as informações sobre as eleições e os dados pessoais dos candidatos.
Sabendo onde estavam os dados eu poderia fazer download de todos os arquivos zip’s que eles disponibilizam (de 1945 até 2014) e processar todos eles, mas seriam várias horas gastas se mais alguém no mundo teve a mesma ideia e processou todos os arquivos.
Pesquisei novamente e vi que vários projetos utilizavam os “dados abertos” do TSE, mas todos eles faziam só a camada de visualização, não disponibilizavam uma forma onde eu poderia usar a base de dados já processada. Fiquei imaginando as inúmeras vezes e horas gastas para reprocessar esses dados em cada projeto devido a escolha do TSE em disponibilizar os dados em formato zip. Se tivessem feito uma API, não seria necessário processar os arquivos e ainda correr o risco de fazer algo errado. Acredito que esses dados seriam muito bem usados em Hackathons pelo país, por exemplo.
Como uma das nossa ideias era também fazer uma camada de API e deixar os dados realmente abertos, não demorou para que eu começasse a escrever uma versão inicial de uma API com os dados do TSE. O código da API é livre e pode ser testado aqui: http://politicos.olhoneles.org
Como quero validar a ideia rápido, a base da Politicos API é o framework Django. Por isso optei em usar o Tastypie, que é um framework Python poderoso e altamente personalizável de criação de APIs. Também usei o Swagger, que é uma representação simples mas poderosa de uma API RESTful.
Se você esta familiarizado com o Git, basta executar o seguinte comando para fazer download do código:
git clone https://github.com/olhoneles/politicos.git
Caso queria navegar no código fonte, acesse: https://github.com/olhoneles/politicos/
Para a primeira versão, coletei os dados das eleições de 2000 até 2014. Se não ocorreu erros, no total concorrem 1.150.792 candidatos únicos, sendo 841.542 homens, 309.117 mulheres e 133 não informaram o sexo.
Como uma API é voltada para desenvolvedores, também comecei a desenvolver uma visualização desses dados que pode ser acessada no endereço: http://olhoneles.github.io/politicos-react/
O que é uma API?
A sigla API refere-se ao termo em inglês “Application Programming Interface” que significa em tradução livre para o português “Interface de Programação de Aplicativos”. Segundo a Wikipedia: “API é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços”.
Dados abertos
Segundo a Open Definition, dados abertos são dados que podem ser livremente utilizados, reutilizados e redistribuídos por qualquer pessoa – sujeitos, no máximo, à exigência de atribuição à fonte original e ao compartilhamento pelas mesmas licenças em que as informações foram apresentadas. (Fonte: Wikipedia)