Twitter Stream Globe

by twitterdev

GitHub Readme.md

tweet-stream-globe

A real-time 3D visualization of Tweets from around the world.

This web app attaches to the Twitter API stream/filter and runs rudimentary sentiment analysis on Tweets with geo data. Tweets are published via PubNub Websockets and plotted to a 3D globe.

Inspired by the Web GL Globe Chrome Experiment and the PubNub Real-Time WebGL Visualization.

![Screenshot](screenshot.png?raw=true =858x "Screenshot") Video Capture | Running Demo (Availability of this server may fluctuate)

Installing and Running

Install Node.js.

Clone GitHub repo:

https://github.com/twitterdev/twitter-stream-globe.git

Create a Twitter app and PubNub account:

Create a config.json file using config.sample.json as a template. Fill in your Twitter App API and PubNub keys.

Optionally, install the Compass Ruby Gem.

gem install compass

If you do not want Compass support, comment out this line in app.js

// app.use(require('node-compass')({mode: 'compress'}));

Install node module dependencies:

npm install

Run application:

npm start

Go to http://localhost:3000 in your browser.

Deploying

This application is ready to run on a free Cloud Foundry, OpenShift or Heroku account.

Heroku

You can deploy to Heroku via Git with the Heroku toolbelt.

Before deploying to Heroku, set your environment config vars to mirror config.json, and set NODE_ENV to "production."

image

Tip: Managing the Twitter stream is more appropriately accomplished with a worker or background job. See this gist for setting up a Twitter / PubNub worker on Heroku.

OpenShift

You can deploy to OpenShift with rhc, by adding your own keys to the following command:

rhc app create twglobe nodejs-0.10 \
  --from-code=http://github.com/twitterdev/twitter-stream-globe.git \
  NODE_ENV=production \
  TWITTER_CONSUMER_KEY=YOUR_TWITTER_CONSUMER_KEY \
  TWITTER_CONSUMER_SECRET=YOUR_TWITTER_CONSUMER_SECRET \
  TWITTER_ACCESS_TOKEN=YOUR_TWITTER_ACCESS_TOKEN \
  TWITTER_TOKEN_SECRET=YOUR_TWITTER_TOKEN_SECRET \
  PUBNUB_PUBLISH_KEY=YOUR_PUBNUB_PUBLISH_KEY \
  PUBNUB_SUBSCRIBE_KEY=YOUR_PUBNUB_SUBSCRIBE_KEY

Cloud Foundry

You can deploy to a Cloud Foundry instance with the cf command line tool.

Edit out the line for Compass support (see above) in app.js.

Copy manifest.sample.yml to manifest.yml, edit the application name, and then insert your Twitter and PubNub API keys.

Run cf push to deploy and start the app on Cloud Foundry.

Resources