SocialCens.us is a personal project created to examine what your group of Facebook friends looks like as a collection. It pulls together and analyzes all of your friends’ age, gender, relationship status, location, and interests using Facebook’s Graph API and MongoDB MapReduce. With this compiled information, it creates a personal report that lists, graphs and maps the data into an easy to understand format using jQuery Flot and the Google Maps JavaScript API.
Projects
Social Gaming Platform
The Social Gaming Platform is a cloud hosted platform used to easily create, host and manage Facebook games like Celtics 3-Point Play and Bruins FaceOff. It is built with PHP and MySQL using Memcache and the Facebook PHP SDK. Schedules, Rosters and Prize Periods can all be managed through a separate backend tool. The Social Gaming Platform was recently named a finalist in the Best Use of Gamification category for the 2011 MITX Innovation Awards.
Free Geek Providence
Created a custom WordPress theme with Roots and a responsive 1140 grid for FreeGeekProvidence.org as a project for New England GiveCamp 2011 with Pascal and Martha from Cykod.
Capstone Project: Numbers Empower
For my senior Capstone project, my team and I have designed and built a home power monitor that can track the electrical usage on both an entire house and individual device level.
Each sensor has a device plugged into it, which it monitors for power usage and sends usage information to a base station using XBee wireless communication. The base station compiles usage information and sends it over the internet to a web service where it is stored in a SQL Server database. The base station also sends commands to each individual sensor to control if power is supplied to the device connected.
All of the usage information is viewable on our website created using C#, ASP.NET, CSS, JavaScript, AJAX and jQuery. The usage information is aggregated and displayed as graphs over a certain period of time, using the jQuery graphing plug-in Flot, and loaded dynamically using AJAX. The data can be viewed at different granularities, from up to the minute to yearly totals, depending on the needs of the user. In addition, the website allows the user to control each sensor’s state or set scheduled times to automatically turn the power on and off daily.
SeaChange International
My last two Co-op experiences for Northeastern University were at SeaChange International in Acton, MA working as a member of the Spot team. On my second Co-op at SeaChange, the Spot team switched to an Agile Scrum development cycle using 3 week Sprints.
I designed and implemented a web service to be used as an Ad Decision Service (ADS), according to STCE 130 standards, that makes rapid decisions on which advertisements should be played during a given time window. Additionally, I worked with an outside contractor, who was creating the Ad Management Service, to ensure they were properly integrated and tested.
The ADS consisted of a web service and algorithms for the decision logic using C#, a user interface created with ASP.NET, HTML and CSS, and SQL Server to store decisions and track usage. As a part of development, I created NUnit test classes for each ADS class in order to automate unit testing and verify that the SCTE 130 standards were implemented correctly. I ran an Integration and Smoke test on the entire Spot system as a part of closing out each Sprint. In addition, I maintained the build system software and released development builds to SQA testers.
During my first Co-op at SeaChange, I managed and enhanced the Perl build software’s functionality and integrated it with a new source control system. When the new build functionality was completed, I set up continuous development using Cruise Control .NET for more automation.
I also developed a program to easily identify and sort through the many thousands of test advertisements in the lab based on attributes like resolution, length, frame rate and encoding. Building upon that project, I created an emulator for the Traffic and Billing system using that ad information to create daily schedules of ads with specific attributes and track detailed error rates for every test site in the lab. Toward the end of my Co-op I worked on a project team to increase the overall security of the Spot software system both in C++ and SQL code bases.
Taylor Rental Website
Designed a custom WordPress theme for Taylor Rental Center in Berkeley Heights, NJ to display pictures, pricing, coupons and contact information for the store.
Recent Posts
Solving Problems Subscribing to Facebook Real-time Updates
Facebook’s Real-time Updates documentation is not very explicit on how to subscribe to a feed, especially when all I am looking for is an example. So after figuring out what OAuthException (#15) "This method must be called with an app access_token" was trying to tell me and fixing the problem, I figured I would share my PHP example here. Hopefully, it will be helpful to you.*There are two parts that you need to set up:
1. Setup an Endpoint
This part is actually pretty easy because Facebook actually gives you example code (yay!). Put that file on a web server somewhere with an external ip so that Facebook can reach it. Replace 'abc' in define('VERIFY_TOKEN', 'abc');. Save this value for later.
2. Post to Facebook
Now comes the part that is not well documented. In order to subscribe you need to first specifically get an access_token, then POST to Facebook.
A. Get an access_token
$app_id = APP_ID;
$secret = APPLICATION_SECRET;
$token_url = "https://graph.facebook.com/oauth/access_token?" .
"client_id=" . $app_id .
"&client_secret=" . $secret .
"&grant_type=client_credentials";
$response = @file_get_contents($token_url);
$params = null;
parse_str($response, $params);B. POST to Facebook with cURL
Remember when we defined the VERIFY_TOKEN earlier? Replace VERIFY_TOKEN with that value in this code, and ENDPOINT_URLwith the url of the file from part 1.
$base_url = "https://graph.facebook.com/$app_id/subscriptions";
$url = $base_url . "?access_token=" . $params['access_token'];
$fields_string = '';
$fields = array(
'callback_url=ENDPOINT_URL',
'object=user',
'verify_token=VERIFY_TOKEN',
'fields=feed'
);
$fields_string = implode("&", $fields);
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);Once you visit this page successfully, Facebook will call the callback_url defined, verify that the VERIFY_TOKEN in both parts match, and then start sending Real-time Updates to your endpoint.
That was easy.
*By the time you find this post and need help, you can either learn from my example code or, more likely, bang your head against a wall once you realize Facebook has changed its API once again.
- Building the Hancock Tower in CSS Leave a reply
- Building the Prudential Tower in CSS 3 Replies
- Revisiting the jQuery UI Time Slider 2 Replies
- Slideshow with CSS 3D Transforms Part 2: Playing with Shapes 2 Replies
- Creating a Slideshow using CSS3 3D Transforms 2 Replies
- Anything you can do, Google does better Leave a reply
- A Free and Open Internet? Leave a reply
- More Capstone News Leave a reply
- Capstone Project Leave a reply