MySocialTree Project Report 11/07/2011


General project description

MySocialTree is a Facebook feed navigation tool using change over hierarchies. The goal of this project is to build a web application that displays the updates in the user's Facebook feed by exploring it using a user defined hierarchy. A common example hierarchy (that will be used as default setting in the app) would be to classify the feed by poster's Location, user's Lists memberships and the type of post (Photo, Status Update, Video, Link, Activity, etc). This classification will allow the user to identify the most interesting posts to them, by answering queries like "Show me photo updates from my close friends living in U.S.". Moreover, since the tree will show the positive and relative amount of change in each one of its nodes, users should be able to identify trends like "a lot of status updates from my University friends in the U.S.".

Project Advance

Up to now I have been focusing on clearly defining the problem to solve with this project. Also I have been looking at the different technologies that could be used on the app and finally I have been designing the interface and the underneath architecture.

Interface Design

This is the mock up of projects main interface. The user will be displayed with a tree visualization of the changes on the number of posts in its feed according to the order of the hierarchy selected. The visualization will use the bullet representation developed for TreeVersity. It uses a node link representation with color representing the absolute amount of change in the average number of posts in each node of the hierarchy, while the size of the bullet represent the relative amount of change. Users should be able to select any node of the tree to see the different posts in that category (e.g. Posts from my Family in Colombia). The tree visualization should use a SpaceTree-like navigation to collapse nodes that aren't of interest for the user in a given time. MySocialTree should also allow the selection of different time periods to analyze, this way users could answer questions like what have happened on my Facebook on the last week or the last hour for example. I'll probably redistribute the layout to compress the tree to use way less space and give more space to the posts.

The application will be probably running as a Facebook app, so this view will be embedded in the Facebook layout.

mockup_MySocialTree.png

Architecture


I have also design the underlying architecture to run the application. I'll be trying to use Google App Engine to host the application while connecting to Facebook's OpenGraph API, in my experience this has been problematic in the past because the restrictions and structure on both sides makes it difficult to test and debug. On the server side I will use three main components, first a crawler part that will gather the users' posts and store them in a database, then it will trigger a treeBuilder process that will analyze the posts and classify them in the different levels of the hierarchy (Location, Lists, Type of Post, for the moment), then it will calculate aggregated trees with statistics on various periods of time (15 min, 1 hour, 1 day) to ease the computation of the changes. The third component will be a TreeComaparer that will calculate the changes according to the user query using the Tree database. This will be implemented on Python on the GAE using the Facebook API.

On the client I will have common interface that will trigger three main actions. First the crawling of new posts, then the display of the change tree and finally the posts in an specific category. This part will be implemented (hopefully) using D3.js for the tree Visualization and HTML+JavaScript for the rest of it.

I have deployed a base demo on http://MySocialTree.appspot.com, it runs on the GAE and connects to Facebook to download and display the users' Feed.

architecture_diagram.png

Evaluation


Given the time restrictions I will probably not be able to run an evaluation on MySocialTree before the class deadline, however I plan to test it running an initial usability study with 6-10 participants to asses how easy to understand and useful can be, and identify improvement areas.

Related Work


Looking into the related work, I haven't been able to find other projects that use similar approaches to explore a social networks feed using trees. However there is substantial work on the literature on Tree Visualization and Tree Comparisons that can be found in the papers submitted for TreeVersity


11/23/11: Comment (Ben)
Everything looks good here - but it isn't clear how far along you are at actually building this. I tried the Facebook app, and it gave an error. Looking forward to seeing how this actually all comes together.