Skip to content
This app has been created as a POC for Cloud Foundry deployment test. It really could've been only a simple one-pager with nothing else but the proverbial "Hello World". Yet, since it's been a some time since I had the opportunity to code, yep, I've over-engineered it ;)
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
node_modules
public
routes
views
.gitignore
README.md
app.js
message-provider.js
message-store.js
package.json

README.md

Intro

This app has been created as a POC for Cloud Foundry deployment test. It really could've been only a simple one-pager with nothing else but the proverbial "Hello World". Yet, since it's been a some time since I had the opportunity to code, yep, I've over-engineered it ;)

Logic

The app is suppose to periodically query Twitter for a set of pre-configured keywords and store the resulting tweets along with their authors information. Based on the user period selection, the app performs and MapReduce operation and displays the most frequent authors along with some summary information and their tweets for that period. All the information obtained from Twitter are linkable back to the original source on the UI.

Architecture

The app has been written in Node.js, a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js is supper efficient. It uses an event-driven, non-blocking I/O model that makes it perfect for real-time applications.

In addition, this application uses the following components:

  • Express - Simple Sinatra-like web development framework (using Jade templates)
  • MongoDB - Scalable, high-performance, open source NoSQL database
  • Mongoose - MongoDB object modeling tool designed to work in an asynchronous environment
  • Query - Fast and concise JavaScript library.

TODO

  • More robust error handling
  • UI-defined Twitter query
  • Author context charting
  • Cleaner way of dealing with twitter limits
  • Better code documentation
Something went wrong with that request. Please try again.