tweetmap

module
v0.0.0-...-4e229c5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2015 License: MIT

README

Build Status Coverage Status #TweetMap tweetmap is a set of applications written Go, SQL, and HTML/CSS/TypeScript that I used to create the Ottawa Tweet Mapper. I have tried to follow the microservices pattern for this project as much as possible, and my end goal is having everything dockerized and capable of scaling up to many different monitoring areas, on many different machines.

##How it works A tweet makes its way into the system through the watcher application. The watcher listens to the twitter firehose and filters out non-geolocated tweets, and geolocated tweets that are not within the given bounding box. The tweet is inserted into the geodatabase, serialized into a protocol buffer, then broadcast via ZMQ to any listening applications to either be broadcast over websocket, or to be cached for display in the website.

##Components

  • lib - Written in Go, this library provides helper functions to serialize/deserialize tweets from the Twitter API stream.
  • protobuf - Protocol buffer type and helper functions.
  • watcher - Utilizes the library to listen to the Twitter firehose, filter out tweets, insert them into the geodatabase, and broadcast them over ZMQ.
  • database - Postgresql/PostGIS database used to store the tweets.
  • feed - Listens to the ZMQ feed, deserializes the tweets, and re-broadcasts them over a websocket. Keeps track of the number of connected users.
  • website - Serves the static website, as well as the JSON API for tweet statistics.

##TODO List

  • Drop dependency on ZMQ to something pure Go
  • Drop dependency on protocol buffers
  • Fork the twitterstream repo and modify it to use channels/pipelining, and also save the extra step of serializing/deserializing to protocol buffers
  • Save URL's in the tweet database
  • Convert emoji's in the tweet text to images.

Directories

Path Synopsis
lib
Godeps/_workspace/src/github.com/garyburd/go-oauth/oauth
Package oauth is consumer interface for OAuth 1.0, OAuth 1.0a and RFC 5849.
Package oauth is consumer interface for OAuth 1.0, OAuth 1.0a and RFC 5849.
Godeps/_workspace/src/github.com/golang/protobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
Package proto converts data structures to and from the wire format of protocol buffers.
Godeps/_workspace/src/github.com/lib/pq
Package pq is a pure Go Postgres driver for the database/sql package.
Package pq is a pure Go Postgres driver for the database/sql package.
Godeps/_workspace/src/github.com/lib/pq/listen_example
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
Godeps/_workspace/src/github.com/lib/pq/oid
Package oid contains OID constants as defined by the Postgres server.
Package oid contains OID constants as defined by the Postgres server.
Godeps/_workspace/src/github.com/pebbe/zmq4
A Go interface to ZeroMQ (zmq, 0mq) version 4.
A Go interface to ZeroMQ (zmq, 0mq) version 4.
bstar - Binary Star reactor.
Godeps/_workspace/src/github.com/pebbe/zmq4/examples/clone
Clone client API stack (multithreaded).
Clone client API stack (multithreaded).
Godeps/_workspace/src/github.com/pebbe/zmq4/examples/flcliapi
flcliapi - Freelance Pattern agent class.
flcliapi - Freelance Pattern agent class.
Interface class for Chapter 8.
Godeps/_workspace/src/github.com/pebbe/zmq4/examples/kvmsg
kvmsg class - key-value message class for example applications
kvmsg class - key-value message class for example applications
Godeps/_workspace/src/github.com/pebbe/zmq4/examples/kvsimple
kvsimple - simple key-value message class for example applications.
kvsimple - simple key-value message class for example applications.
Godeps/_workspace/src/github.com/pebbe/zmq4/examples/mdapi
Majordomo Protocol Client and Worker API.
Majordomo Protocol Client and Worker API.
Godeps/_workspace/src/github.com/stretchr/testify/assert
A set of comprehensive testing tools for use with the normal Go testing system.
A set of comprehensive testing tools for use with the normal Go testing system.
example
Package main provides ...
Package main provides ...
Package prototweet is a generated protocol buffer package.
Package prototweet is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL