Skip to content

Google spreadsheets data visualization for the Software Engineering Class at Universidade de Brasília - 1/2018

Notifications You must be signed in to change notification settings

teogenesmoura/spreadsheetsGoogle

Repository files navigation

Visualização de Dados das Eleições 2018

npm PRs Welcome GitHub license

Spreadsheet

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.

Pré-requisitos

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:

Google API Node JS Client

Instalação

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.

Desenvolvimento

Ferramentas

Este projeto usa principalmente, mas não exclusivamente:

  • Javascript ES2017
  • Node.js
  • Mongoose/MongoDB
  • Express.js
  • googleapis
  • Chart.js

Versionamento

Sugere-se usar o SemVer para o versionamento do código. A versão atual é 1.0.0

Testes

O projeto utiliza a biblioteca Jest para executar testes. O seguinte comando roda os testes de caso implementados:

npm test

Guia de estilo

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.

Hooks

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.

Documentação

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.

To-do

  • 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

Licença

Código disponível sob Licença MIT

About

Google spreadsheets data visualization for the Software Engineering Class at Universidade de Brasília - 1/2018

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published