Este repositório compõe projeto de pesquisa com foco empírico nas eleições brasileiras de 2018 do grupo de pesquisa Resocie do Instituto de Ciência Política - IPOL com o apoio técnico do Departamento de Computação - CIC da Universidade de Brasília - UnB.
O projeto consiste na coleta sistemática de informações quantitativas de diferentes plataformas com o objetivo de subsidiar a análise do comportamento político de alguns atores da cena eleitoral durante o período de campanha. Além de seu objetivo finalístico para a coleta de dados, o projeto tem também por intuito servir de material de estudo dos alunos da disciplina Engenharia de Software do Departamento de Ciência da Computação da UnB no 1º semestre de 2018.
As instruções a seguir trazem orientações para aqueles que quiserem contribuir com a iniciativa.
Seu sistema precisa ter Node.js v9.x (preferencialmente) ou v8.x (mínimo) e npm instalados.
O projeto utiliza a biblioteca chartjs-node, que requer a instalação da biblioteca Cairo em seu sistema, guias de como instalar podem ser encontrados clicando aqui.
Também é necessário que seu sistema possua MongoDB instalado, instruções de como instalá-lo podem ser encontradas no site Install MongoDB.
Uma parte do projeto (visualização de planilhas Google) precisa de uma chave de autenticação para usar a Google API. Para conseguir as credenciais, acesse o Console de Desenvolvedores. Selecione o projeto do grupo resocie-data-viz
, clique em APIs & auth e em seguida em credentials, e crie sua credencial ou escolha uma existente.
Mais informações de como funciona a autenticação em Oauth2 das APIs do Google podem ser encontradas no seguinte link:
Garanta que todos os pré-requisitos foram completados
O primeiro passo para executar o código deste repositório consiste em clona-lo localmente.
git clone https://github.com/unb-cic-esw/data-viz.git
Logo após, precisamos instalar as dependências do projeto. No seu terminal, digite o seguinte comando:
npm install
Entre na página de credencials no painel da Google API e baixe a credencial de sua escolha, salve-a na pasta config
como credentials.json
.
Renomeie o arquivo de configurações .env.example
para .env
, executando mv .env.example .env
, abra-o e altere os dados preenchendo com as configurações de sua máquina.
# Ambiente de desenvolvimento
NODE_ENV=development
# Porta do servidor
PORT=3000
# Host do servidor de MongoDB
# data-viz é o nome do banco de dados
MONGO_HOST=mongodb://localhost/data-viz
# Porta aberta pelo servidor Mongo
# Normalmente 27017
MONGO_PORT=27017
Após a instalação das dependências, a escrita do arquivo de credenciais e o de configurações execute o projeto com:
npm start
O projeto estará rodando em
http://localhost:3000
Ou na porta definida em .env
.
Este projeto usa principalmente, mas não exclusivamente:
- Javascript ES2017
- Node.js
- Mongoose/MongoDB
- Express.js
- googleapis
- Chart.js
Sugere-se usar o SemVer para o versionamento do código. A versão atual é 1.0.0
O projeto utiliza a biblioteca Jest para executar testes. O seguinte comando roda os testes de caso implementados:
npm test
O código conta com a biblioteca Eslint, com as configurações presentes no arquivo ".eslintrc.js" para manter boas práticas de programação, extendidas do Guia de Estilo para Javascript da Airbnb com algumas mudanças de acordo com as necessidades do nosso projeto.
Para executar o linter:
npm run lint
É sempre bom usar um plugin no seu editor de texto para ter um feedback em tempo real do código que você escreve, evitando perder tempo reescrevendo muitos trechos de código. No caso do Visual Studio Code, o próprio ESLint oferece um plugin.
Este projeto conta com apenas um hook de pré-commit, isso significa o comando npm run lint && npm run test
é executado antes de todo commit feito, garantindo que nenhum commit seja realizado com código mal-estilizado ou com testes falhando.
Este projeto usa a biblioteca JSDoc para gerar a documentação automaticamente.
Para instalar globalmente o JSDoc, execute o seguinte comando:
npm install -g jsdoc
Para instalar localmente,
npm install --save-dev jsdoc
A documentação corrente do projeto já está presente na pasta /docs, bastando que se abra o arquivo index.html para acessar a documentação do projeto.
Para gerar a documentação de um arquivo, execute o seguinte comando:
jsdoc index.js -d docs
Este comando gerará a documentação para o arquivo index.js na pasta /docs.
- Expandir quantidade dos dados utilizados
- Pesar o custo de gerar gráficos server-side e verificar se vale a pena fazê-lo no cliente
- Implementar mecanismo para automatização da coleta recorrente dos dados
- Disponibilizar uma API publica para que leigos possam gerar visualizações interessantes
- Google Spreadsheets vs MongoDB?
- Ignorar os docs no repositório já que eles são gerados automaticamente? Discutir
Código disponível sob Licença MIT