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

cftpontes/data-viz

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visualização de dados com Google Spreadsheets

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 da plataforma Twitter 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.

Instalação

Veja os pré-requisitos antes de instalar qualquer coisa.

O primeiro passo para executar o código deste repositório consiste em clona-lo localmente.

git clone https://github.com/teogenesmoura/spreadsheetsGoogle.git

Logo após, precisamos instalar as dependências do projeto. No seu terminal, digite o seguinte comando:

npm install

Após a instalação das dependências e a escrita do arquivo de credenciais (visite a seção "Prerequisitos"), execute o projeto com:

node index.js

O projeto estará rodando em

http://localhost:3000

Desenvolvimento

Ferramentas

Este projeto usa principalmente, mas não exclusivamente:

Javascript ES6

Node JS

Express js

googleapis

Chart JS

Prerequisitos

Note que este projeto utiliza a biblioteca chartjs-node, que requer a instalação da biblioteca Cairo previamente no seu sistema. Para instalá-lo execute sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev, os avisos podem ser ignorados.

Para que o programa execute, é necessária a obtenção da chave de autenticação da API do Google. Deverá, então, ser criado um arquivo chamado "credentials.json" na pasta raíz do projeto, cujo conteúdo se assemelha ao seguinte:

{
  "web":{
  "client_id":"SEU_CLIENT_ID",
  "project_id":"SEU_ID_DE_PROJETO",
  "auth_uri":"https://accounts.google.com/o/oauth2/auth",
  "token_uri":"https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs",
  "client_secret":"SUA_CHAVE_DE_CLIENTE",
    "redirect_uris": [
      "http://localhost:3000"
    ]
  }
}

Para conseguir as credenciais client_id e client_secret, acesse o Console de Desenvolvedores. Selecione o projeto do grupo resocie-data-viz, clique em APIs & auth e em seguida em credentials, faça o download do arquivo e salve-o na raiz deste diretório como credentials.json.

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

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.

ToDo

Este é apenas um esqueleto de projeto para que o grupo comece a trabalhar. Resta ainda muito trabalho a ser feito. Algumas ideias:

  • Implementar mais casos de teste unitário
  • Implementar testes de comportamento (BDD)
  • Gerar mais de um gráfico
  • 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
  • Persistir dados coletados em base estruturada
  • 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

Languages

  • JavaScript 100.0%