Aller directement à la fin des métadonnées
Aller au début des métadonnées

Introduction

The sheer number of social media users has been increasing exponentially along with social media websites. Day by day, Social Media is integrating deeper with people's lives. Social Media Integration with CiviCRM will allow users to quickly login securely to the website without the hassle of remembering another extra password and provide access to features such as event registration and petition signing quicker. On the other hand, organizations using CiviCRM can have their different events, campaigns and petitions promoted and publicized in different social media platforms and analyze how people react to them all at one place. Social Media Integration with CiviCRM will boost the exposure of CiviCRM as a platform and make it even easier for people to connect.

This Google Summer of Code 2016 project will extend GSoC 2015 projects i.e siddharthg/org.civicrm.civisocial and rolencea/org.civicrm.civisocial2 and add new features to them.

The project will be implemented roughly using evolutionary model of software development cycle. First of all, core modules i.e. social login to the CMS, will be developed and rest of the features will be added in successive steps as mentioned in the following subsection. The classes, methods and functions will be unit tested as soon as they are coded. The unit tested modules will be step by step integrated to form a functioning module. The implementation will be done in two phases: User perspective, which contains all the features that will be used by a user and Organization perspective, which are a set of features that will exist in admin panel and will be used by organizations using CiviCRM to get insight about the users and organization’s interaction in social media.

The features are listed in the order in which they would be developed.

User Perspective

These features will be used by CiviCRM users.

Extend siddharthg/org.civicrm.civisocial to implement Facebook, Google and Twitter integration

I will work on module that will allow users interact with CiviCRM using Facebook, Google and Twitter for starters. The module will be extensible to include any other social media afterwards.

In the first week, I’ll go through Facebook, Google and Twitter API documentations to get a firmer picture of what all information can be retrieved with the user’s permissions. One each test app will be created on Facebook and Twitter in order to get the API credentials. Starting from second week onwards, I’ll start coding the module.

Organizations using CiviCRM will create an app on Facebook, Twitter or other social media to get the API credentials and enter in the credentials page.

See Credentials Page UI Mockup.

Quick and Easy Event Registrations and Petition Signing

If the user is not already connected to a social account Register using Facebook/Twitter/Google and Sign Petition using Facebook/Google/Twitter button will be added to Event Registrations and Petition Signing page. Users will authorize to their social media account after clicking on the button. After authorization form fields will be auto-filled using their information on social media. This authorization will also give access to petition signer’s social graph.

Event/Petition page will fancy a Fill with Social Media button clicking on which take user to Social Media authentication if not already connected. After authentication, related user information is fetched and the form is filled.

See Event Registration Page UI Mockup | See Petition Signing Page UI Mockup

Link CiviCRM Event to Facebook Event

To link CiviCRM event to Facebook event an optional input text field will be added to Events > New Event admin page. The text field will be labelled as “Facebook Event URL” where admin will enter the URL of the corresponding Facebook event. After the Event URL is added, event information is fetched from Facebook using Graph API via AJAX request and Event TitleComplete DescriptionStart Date/Time and End Date/Time will be auto filled.

A field fb_event_id will be added to civicrm_event table in the CiviCRM database.

If the user chooses to register a public event using Facebook corresponding Facebook event will be automatically RSVPed on behalf of the user given that the event is linked to Facebook event and the user grants require permission i.e rsvp_event.

See modified event page UI mockup

Organization Perspective

These features will be used by organization’s CiviCRM admins.

Create an admin page to connect CiviCRM to organization’s social accounts

This admin page will have input fields which will ask App Credentials and Social Media account page’s URL.

The page will also feature buttons “Connect to your Facebook Page” and “Connect to your Twitter Account”, clicking on which will open authorization dialog box. Access tokens thus received will be stored in the session which will be used in subsequent API calls e.g. get the list of page followers, recent activity on the page or matching followers with CiviCRM contacts. If the social media provides long-lived access tokens, such tokens can be stored in the database. That will save users the trouble of going through login dialog everytime they login.

Landing on this page will also show if the CiviCRM is connected to particular social media account by verifying the availability and validity of the access tokens in the session/database.

See Credentials Page UI Mockup

Pull in followers from social media accounts’ pages and match CiviCRM contacts based on available information

Email of followers of Facebook pages and Twitter of the organization will be pulled and matched with CiviCRM contacts. The successful matches are stored in the table civicrm_social

“What’s going on” dashlet

This page will display who is posting, liking or commenting on organization’s Facebook Page and will display who is tweeting or re-tweeting in case of twitter.

The dashlet will also show highly active users based on their social media activities. Periodically the number posts, shares, likes, (tweets in case of Twitter profile) and comments made by different followers of the pages on the connected Facebook/Twitters pages in the recent time window are checked and based on the numbers, active users will be listed. (Schedule a cron job OR fetch, calculate and store ranking in the database age of which will be say one day? Needs to be discussed.)

See UI Mockup

Add ability to automatically post on Facebook page/tweet about events, petitions, certain types of activities, possibly progress towards fundraising goals

  • After a certain number of participants registers the events, an automatic post will be made to Facebook and/or Twitter timelines saying something like “[some_number] people have already registered for this event. Have you?”. Similar will be done for the petition signs.
  • After each donation comes in, the remaining amount needed to fulfill the goal is calculated and the same is notified by automatically making a post to Facebook and/or Twitter timelines.

UI Mockups

 

Social Media credentials admin page

CiviSocial Credentials.bmml

Add New event admin page

Add Event Admin Page.bmml

 

Event Registration using Social Media page

Event Registration Page.bmml

Petition Signing

 

Petition Signing.bmml

What's Going On dashlet

Event Registration Page.bmml

Needs to be discussed.

 

Menu

Menu.bmml

Weekly Breakdown and Milestones

 

Time Frame

Milestones

Community Bonding

(Apr 22 – May 22)

  • Explore the CiviCRM codebase

  • Learn further on creating/integrating/modifying extensions

  • Scope the project

  • Review the work done during GSoC 2015 (org.civicrm.social and org.civicrm.social2)

Week 1

(May 23 – May 30)

Extend siddarthg/org.civicrm.civisocial to implement Facebook, Google and Twitter integration

Week 2

(May 31 – Jun 06)

Week 3

(Jun 06 – Jun 13)

Quick and Easy Event Registrations and Petition Signing 

Week 4

(Jun 14 – Jun 20)

Link CiviCRM Event to Facebook Event

Week 5

(Jun 21 – Jun 27)

Mid Term Submission

Review, evaluation, testing, validation of modules

Week 6

(Jun 28 – July 04)

Extend rolenca/org.civicrm.civisocial1 and pull in followers from social
media accounts’ pages and match CiviCRM contacts based on available information

Week 7

(July 05 – July 11)

Week 8

(July 12 – July 18)

‘What’s going on’ dashlet

Week 9

(July 19 – July 25)

Week 10

(July 25 – Aug 01)

Add an ability to automatically post on Facebook/Twitter page,
tweet about events, petitions, certain types of activities, possibly progress
towards fundraising goals

Week 11

(Aug 02 – Aug 08)

Week 12

(Aug 09 – Aug 15)

Week 13

(Aug 15 – Aug 23)
Final Submission

Wrap Up

 

Deliverable

 

S.N.

Date

Expected Deliverable

1

June 06

Integration of Facebook/Google/Twitter to CiviCRM (CiviSocial module)

2

June 13

Event public registrations and petition page integrated with Fill using
Facebook/Google/Twitter
button which will autofill the forms with user’s
information on social media. 

3

June 20

CiviSocial admin New Event page modified to include corresponding Facebook
event’s URL. The page will also have an option to fetch and autofill event
information from the Facebook URL in case the event is already created on Facebook.

4

July 11

Module that will match CiviCRM contacts based on available social
media information

6

July 25

“What’s going on” dashlet

8

August 15

Add ability to automatically post on Facebook/Google page/tweet
about events, petitions, certain types of activities, possibly progress
towards fundraising goals

9

August 23

Tested and documented CiviSocial module for CiviCRM.

Étiquette
  • Aucun

Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.