Parthenon Software Group

Give With Target

Vote Tracking Facebook App For School Giveaway

Technologies Used

PHP Redis


In the summer of 2013, Target created a campaign in which it gave away $5 million to schools, with the schools to be voted upon by the users of a Facebook app. Every Facebook follower of Target was notified via Facebook and email to come to the Facebook app page, vote for the school of their choice, and inform friends and family. The campaign also appeared on TV ads and on "Good Morning America". Target had done this the previous year as well. The app had been built by another firm, which opted to build it in Ruby on Rails with a MySQL back end. Their application crashed due to extensive load upon launch, as well as every weekend when a new ad in the campaign was released to the public, as millions of users logged into Facebook and voted for their chosen school at once.

Parthenon was picked for the coding of the 2013 app. We addressed the load requirements by building the entire app in PHP (due to the client's requirements), but with a back end of Redis only, without a SQL database, including a specialized natural language search algorithm we developed to accomplish fast Ajax school name search requests, implemented on top of Redis data structures. We used a queuing/worker mechanism to update the client's SQL database to ensure that site metrics would work with their reporting systems without imposing any load on the database or site.

The front end was jQuery with Ajax for all app requests, completely decoupled from the back end (in fact, the client created a Flash app for an ad campaign at the same time that interfaced with the back end using the Parthenon-published API), and both front end and the back end interfaced with the Facebook API. The app handled an estimated 20M users without crashing or experiencing scalability issues at any time.

Give With Target Give With Target Give With Target

Web. Mobile. Open Source.

Accomplish your software projects fast with our experience.

Get A Free Estimate