Visit the site

Visit the site

Organizations Involved

Life Challenge is an innovative Australian based content creator and producer which delivers uniquely powerful documentary films and TV shows to a global audience.

About the project

Goals

This project was about integrating an extensive social media functionalities to an existing website. The website is about an organisation who undertakes various sports and trekking programmes and creates unique challenges for encouraging individuals to stay fit. They had an already existing drupal 7 website which had the basic content types and design ready. In this phase they wanted us to do an advanced social media integration work.

Detailed Requirements

Social Media Linking

Users should be able to link their facebook, linkedin and twitter accounts to the site. Also the company admin and company partners (both created as separate roles) can link their company facebook account and page, twitter account and linkedin pages.

Periodic Cron User Feeds Import

Everyday 4 times the cron would run and the linked facebook, twitter and linkedin accounts of each users and the admins would be scanned. For facebook, all those posts and link shares will be picked which either does @mentions to the admin facebook account or the company page as well as mentions other users in the site. These posts will be converted into a separate content type and published into the site with the details of the facebook links and facebook image and the post content. This is true even for a comment posted with @mentions. For comments and excerpt of the original post has to be shown. Similarly for twitter and linkedin, all those tweets and posts respectively will be picked which either mentions the company twitter account or posts from linkedin which mentions the company linkedin account.

Advanced Feeds Display Mechanism

All the feeds were supposed to be displayed into the site in a separate themed responsive sidebar widget as well as a separate page which pulls in additional details like likes and rating counts of the post for Facebook and number of re-tweets for the twitter.

Advanced Notification System

Also, we needed to develop a notification system where after a tweet or post is published to the site, the owner of the account is notified to check and report if he has any issues. All the created content in the site could be disabled at will by the site maintainer.

An Extensive Youtube Integration

An extensive youtube integration was required as company periodically posted different interview and promotional videos in youtube under various categories. Another feature that we needed to develop was based on user ages, auto provide a viewer access to the videos and bypass the youtube age restriction step.

Architectural Overview & Challenges

This project posed us with a number of challenges. First was the depth of the API integration required. Our development team needed to study in detail the Facebook, Twitter and Linkedin APIs and provide detailed suggestion to the client what was allowed and what not. Then we needed to develop a mechanism to be able to counter the expiring API keys for each of these social media APIs. Also, there was a requirement where a single user can associate multiple accounts of facebook, twitter and linkedin but at any point of time disable sync posts and tweets from those accounts with already pulled in tweets remaining unaffected but stopping subsequent sync of data from those accounts. the other major challenge was dealing with the huge amount of data and cron run sync. This was dealt with by employing the awesome queue API of drupal. The entire feature was mostly custom coded and Drupal’s core APIs provided us enough base and extendability to achieve the above features not only perfectly as per spec but also in a very efficient way so that load on the system can be reduced and error could be minimised. The displays and frontend was mainly done using views and email and notification sendouts using rules.

Outcome

Client was really impressed by our work, especially with integration of API's of Social media accounts with the website.

Why Drupal was chosen

The site was already based on Drupal, so the enhancements and customisations were to be done in Drupal itself.

Technical Specifications

Drupal version:

Key modules/theme/distribution used:

Why these modules/theme/distribution were chosen

Each social media was mostly implemented using the API modules available. All the customisations were done through custom modules and extensive API usage of Drupal.