GSoC: Facebook integration

85 views
Skip to first unread message

riadh

unread,
Apr 2, 2012, 6:47:49 AM4/2/12
to silverst...@googlegroups.com
Hi!
First of all I would like to think you for participating in GSoC and giving students opportunity to develop great project.
I really appreciate what your are doing and I want to apply for this idea: Project Idea: Improve Facebook Integration, because I believe that socials networks are today the key of success of website.
My name is Riadh Chtara.
I' m a Tunisian student.Tow years ago, I got an excellence scholarship from my country to study in France.
Today, I study engeeniring at the Ecole Centrale de Lyon.
I love web development.
I know many programming language but one my favorite are Php and JavaScript with JQuery.
Last year I participate in a project which is the development of a php and mySQL a photo gallery.This years, I will do the some think but with symfony.
I made also a web application called Grimdi Animator (which is a powerful and amazing tool that allows you to create cool javascript animation for you website without any required programming knowledge. It is very easy and fast. With Grimdi Animator you can also dynamically import data and manipulate XML. You can use Grimdi Animator to make animations, menus, galleries...)
I have also developed a extension for firefox that allows to implement voice and video chat within facebook (before that facebook starts using the skype plugin), so I'm familiar with facebook development.
Like I said, I  want to apply for the idea of Improving Facebook Integration.
 If you chose me, I will add the following feature to silverstripe:
  • Creation of new social networks api: this api will support in the beginning facebook and twitter(google +  api will not be supported because it's too limited in functionality and it will be supported as soon as google add new fonctions ) : this api will be able to create a statue in facebook or tweet easily and with some syntax, It could also delete statue , tweet , posts comments.It will contain all the functions we need for this project.But this part is a separated part, and the  social networks api  could be used with only php or with other cms,frameworks
  • Automatically synchronize Facebook and silverstripe: all contents added to one of these will be available also in the other one.When a content is deleted or updated from silverstripe,we will do the same in facebook.
  • Advanced Facebook integration setting :the website owner could configure the facebook setting:
    • He could choose to activate or not this function, and choose his page.
    • He could limit the synchronization to a specific kind of contents
    • He could change the synchronizations policy
      • a topic<=> a statue, for small websites
      • a statue for every day( the website owner could set the period) for each kind of content or for the hole website, for big website
    • For the text, He could if he want to send it all to Facebook, or only the beginning of it, he could chose where you want to add a link to the content on the website or not.  
  • Implement the social networks api in the CMS framework so that the developers could customize more the Facebook integration or ingrate  twitter.This will be done by optimizing the social networks api for the needs of  silverstripe  website and the creation of new functions designed only for  silverstripe  .



Yours sincerely
Riadh

riadh

unread,
Apr 2, 2012, 6:50:56 AM4/2/12
to silverst...@googlegroups.com
I have created a first a topic but I forgot to add some thing.So I deleted an added a new one.
This is the updated version.

xeraa

unread,
Apr 2, 2012, 5:21:15 PM4/2/12
to silverst...@googlegroups.com
Hi Riadh,
 
Good to hear from you again!
  • Creation of new social networks api: this api will support in the beginning facebook and twitter(google +  api will not be supported because it's too limited in functionality and it will be supported as soon as google add new fonctions ) : this api will be able to create a statue in facebook or tweet easily and with some syntax, It could also delete statue , tweet , posts comments.It will contain all the functions we need for this project.But this part is a separated part, and the  social networks api  could be used with only php or with other cms,frameworks
I'm not sure that mixing FB and twitter is all that great as twitter integration is rather simple and is already provided by other modules, if I'm not mistaken. I'd rather focus on FB and all of its features instead of trying to some twitter bits here and there.
Be also sure to check out https://github.com/tractorcow/silverstripe-opengraph which might already do quite some work for you :-).
  • Automatically synchronize Facebook and silverstripe: all contents added to one of these will be available also in the other one.When a content is deleted or updated from silverstripe,we will do the same in facebook.
Adding and deleting is pretty straight forward (I assume we're talking about status messages, photos, videos, events,...). However updates are a little more tricky - how would you handle those?
And how would you add FB content to your website? Only show the latest X posts on a specific page, a dedicated (module?) page containing all FB data,...? There are already one or two other threads here, discussing those issues...
  • Advanced Facebook integration setting :the website owner could configure the facebook setting:
    • He could choose to activate or not this function, and choose his page.
    • He could limit the synchronization to a specific kind of contents
    • He could change the synchronizations policy
      • a topic<=> a statue, for small websites
      • a statue for every day( the website owner could set the period) for each kind of content or for the hole website, for big website
Sounds interesting - some more details would be good. 
    • For the text, He could if he want to send it all to Facebook, or only the beginning of it, he could chose where you want to add a link to the content on the website or not.  
Again, more details would be good, as I can imagine something here, but I'm not entirely sure we're having the exact same assumption. 
  • Implement the social networks api in the CMS framework so that the developers could customize more the Facebook integration or ingrate  twitter.This will be done by optimizing the social networks api for the needs of  silverstripe  website and the creation of new functions designed only for  silverstripe  .
I'm not sure what you want to suggest here - for the API be sure to take a look at the link above. 

Cheers,
Philipp 

riadh chtara

unread,
Apr 2, 2012, 5:53:14 PM4/2/12
to silverst...@googlegroups.com
Hi  Philipp 
This an example a policy for handling Facebook synchronization .
  • a new content<=> a statue for small website:
Whit this choice, all the new content will be directly published in facebook as link with comment that contains the first words of the content  and link.
When a new posts is added, it will automatically added to facebook( link with few words).
When a content  is deleted, it will be also deleted with all its comments from facebook.
When a post  is deleted, it will be also deleted with from facebook.
When a content is updated: 
The problem with facebook is: it possible to add or remove message, but it is impossible to update it.So ,in this case it will delete statue,then it will be publish a new statue with the word [updated] in the beginning.
And then we add all the posts of the current content.
When a  post is updated, it will be deleted from facebook, and new comment will   be added with  [updated] in the beginning with few words and link.
  • every day: a statue for every day(or hour , the admin could set the period) for each forum or for the hole website:
When a new content is added, we check for if the duration between statue_time of the last  forums_facebook of the current forum and now  is greater than the period, we add new statue in facebook with the forum name and date) and we post a link to the content and few words.When a content is  updated, we delete it from facebook, an we add another one in facebook (with [updated] in the beginning).
When we delete the content, we delete the statue in facebook.In this policy, posts are not handled.
Many changes could be made for these policy in the control panel (for example publishing the hole content and not only few words of it).
I have question  : I didn't understand what does the silverstripe-opengraph exactly do?
Yours sincerely
Riadh

riadh chtara

unread,
Apr 2, 2012, 6:18:18 PM4/2/12
to silverst...@googlegroups.com
I think that the silverstripe-opengraph doesn't have the some purpose of my new facebook api(I will forget about twitter). 
What I want is to  create functions that could be used to implement the new cms Facebook feature in framework:
Basically, I will create the follwing functions
  • get one or many the statue, and all the comments of a statue , get the information about the user that added the comment or the statue
  • adding new set  functions : function to add statue ,update statue, delete statue,  add comment , update comment and  delete comment 
  • in api facebook if you want to comment a post , you will need the post id, and because in the most time we want to synchronize the website and the facebook page, a new set of funtions wil be available for creating updating and delete post and comments with the content id in the cms( withoot converting each time the content id to the cms id) 

2012/4/2 riadh chtara <riadh....@gmail.com>

xeraa

unread,
Apr 2, 2012, 9:51:10 PM4/2/12
to silverst...@googlegroups.com
Hi Riadh,

I think that the silverstripe-opengraph doesn't have the some purpose of my new facebook api(I will forget about twitter). 

No it doesn't, but it might come in handy, as it wraps (at least part of) the Facebook API in SilverStripe. It's up to you how you want to approach this, but we're obviously striving for new functionality and not redoing existing one.

What I want is to  create functions that could be used to implement the new cms Facebook feature in framework:
Basically, I will create the follwing functions
  • get one or many the statue, and all the comments of a statue , get the information about the user that added the comment or the statue
  • adding new set  functions : function to add statue ,update statue, delete statue,  add comment , update comment and  delete comment 
  • in api facebook if you want to comment a post , you will need the post id, and because in the most time we want to synchronize the website and the facebook page, a new set of funtions wil be available for creating updating and delete post and comments with the content id in the cms( withoot converting each time the content id to the cms id)

Ok, this sounds reasonable, but could possibly be expanded further. For example with technical details (information from FB is pulled in via a cron job, information is pushed to FB via a post-commit hook,...) as well as deliverables (which FB content types should be supported, on what content types do we want to provide FB comments,...).

I'd love to see a schedule (I'll do XXX in the first week, YYY in the second week,...), so we can get a better picture of the overall project and the deliverables. And please keep the mid-term evaluation in mind.

Cheers,
Philipp

riadh chtara

unread,
Apr 3, 2012, 7:13:51 AM4/3/12
to silverst...@googlegroups.com
Hi!
For  silverstripe-opengraph, I will check and implement it in my code.
All the functions I want to add in the frameworks  will be used in the development process, so it will be more efficient to write them in a way that it will be reusable by others, so the creation of the new Facebook api will not take a lot of time. 
For the technical details: 
Corn job is a good idea for pulling in facebook updates, but  it needs to be in Linux server .
Sending the updates to facebook
  • for the first policy(a content<=> a statue)  Updates in the website would be available in Facebook as soon as it's approved and appeared  in  the website: the content with the comment will be send to facebook in that time.
  • for the second one,  approved update will be available in facebook when the period of updating is finished by using 
  1. corn job or schtasks for windows with a periodic update.
  2. Every time a user enters the website, we check when is the last time we made a successful update. If the period was exceed,  we send  all updates to facebook from the website.
Getting the updates from facebook
To handle that, The admin choose between tow options:
  • Before a user try to enter a page or add a comment.., we do get all the updates related to the content
  • when admin enter control panel , we do a full update 
The following  facebook contents: text (link , stream )photos, and  videos  will be supported.
More New functions:
  • For each content , we get the number of likes and of shares, and the admin is able to show them or not
  • The admin is able to set the policy, if he want he could let the content author choose how to publish the content in facebook: that means as   text(link , stream, location )photos, and  videos.
  • He could also choose if it will be possible to the content author to publish a content only in facebook and not in the website(it's better then giving them a direct access to the Facebook page.This content could be then updated or deleted from website control panel
  • If it's possible for content author to choose publish mode, he will be able to choose between text(link , stream,, location ) photos, and  videos. For photos its possible to choose the photo, for video , it's possible  to upload the video in facebook before submitting the content , after the video is uploaded he could insert the video in the content .If the content other didn't have the permission to write directly in the website, we upload the video or the image in temporary folder and when they are approved, they appear in facebook.
  • The admin could set the policy for handling the facebook comments : whether it will need the get approved or not to be published in the website
New functions for the facebook  api 
  • new function for the api to get number of shares and of likes
  •  functions for handling  video,image  , link , stream
Schedule
  1. April 30 – May 20 : Checking the Coding guidelines, Installing development environment, Reading and understanding deeply the source,Discussing with mentors about the final details of the project,
  2. May 21 – May 23: Defining the changes needed in the database
  3. May  24 - July 13: Adding new functions in the silverstripe front end
  4. JULY 13
  5. MID TERM EVALUATION Dead line
  6. July 13 – August 6:Adding new function to the control panel
  7. August 6 – August 12:Collecting the functions used and adding them to the framework 
  8. August 13-August 20: Testing the new version of silverstripe, Writing the documentation
Deliverable:
The new version a the cms wtih Facebook integration
The new api , with a documentation
Do I need to make a mid term deliverable? 
 

Yours sincerly
Riadh
2012/4/3 xeraa <P.X...@gmail.com>

Cheers,
Philipp

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/silverstripe-dev/-/Yo8zIrDY6QMJ.

To post to this group, send email to silverst...@googlegroups.com.
To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.

xeraa

unread,
Apr 3, 2012, 9:54:26 PM4/3/12
to silverst...@googlegroups.com
Hi Riadh,

Do I need to make a mid term deliverable? 

No, that timeline should be fine, thanks! And this isn't set in stone, but I think it's good for both sides to have a plan on what to expect :-).

Just one more thing: Following the principle "release early, release often", it might be a good idea to implement a prototype with a reduced feature set and release that as early as possible. So we get a better feeling of how things should work out, find out where we need to make changes, get feedback from the community,...

Cheers,
Philipp


PS: You're not required to post your final application here, if everything is already clear to you and you know what you're handing in.

riadh chtara

unread,
Apr 4, 2012, 12:42:10 PM4/4/12
to silverst...@googlegroups.com
Hi Philipp
Thanks for your answers.

Just one more thing: Following the principle "release early, release often", it might be a good idea to implement a prototype with a reduced feature set and release that as early as possible. So we get a better feeling of how things should work out, find out where we need to make changes, get feedback from the community,...
I will take that into consideration when I write the time plan. 

PS: You're not required to post your final application here, if everything is already clear to you and you know what you're handing in.
When I finished writing it , can I send to you so that you review it?
 


Yours sincerly
Riadh 

xeraa

unread,
Apr 4, 2012, 7:58:21 PM4/4/12
to silverst...@googlegroups.com
Hi Riadh,

Thanks for your answers.

You're welcome :-)!
If you're quick (there are only two more days left), we'll provide feedback within Google's application system - especially if there are obvious problems.

Cheers,
Philipp 

riadh chtara

unread,
Apr 5, 2012, 12:34:32 PM4/5/12
to silverst...@googlegroups.com
Hi 
I send my proposal

So could you tell me please what you think about it?
Yours sincerely

2012/4/5 xeraa <P.X...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/silverstripe-dev/-/0WLUDdSuSI4J.

riadh chtara

unread,
Apr 5, 2012, 12:58:46 PM4/5/12
to silverst...@googlegroups.com

Sigurd Magnusson

unread,
Apr 5, 2012, 3:44:00 PM4/5/12
to silverst...@googlegroups.com
On 4 April 2012 13:54, xeraa <P.X...@gmail.com> wrote:
Hi Riadh,

Do I need to make a mid term deliverable? 

No, that timeline should be fine, thanks! And this isn't set in stone, but I think it's good for both sides to have a plan on what to expect :-).


Just a note that half way through you do get reviewed, and a decision on whether to pay and continue the student at this point has to be made. So while the definition of a mid term deliverable isn't strictly laid down, we do need something rather tangible to assess by that point, which could be made up of a set of reliable communication and progress towards the full project deliverable. 

Cheers,
Sigurd

riadh chtara

unread,
Apr 5, 2012, 6:19:19 PM4/5/12
to silverst...@googlegroups.com
ok thank you
Yours sincerely 
Riadh

2012/4/5 Sigurd Magnusson <sig...@silverstripe.com>

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.

riadh chtara

unread,
Apr 5, 2012, 6:21:30 PM4/5/12
to silverst...@googlegroups.com
Hi
Thank you for the review.
Concerning the code, I will try to finish it tomorrow and send it to you.
Yours sincerely 
Riadh


2012/4/6 riadh chtara <riadh....@gmail.com>

riadh chtara

unread,
Apr 6, 2012, 10:15:48 AM4/6/12
to silverst...@googlegroups.com
Hi
You have said to me that
"I think there are already some pieces of it in your application, even though it's named and structured a little different. "
Could you please give me more precision?
Thank you

xeraa

unread,
Apr 6, 2012, 11:23:21 AM4/6/12
to silverst...@googlegroups.com
Hi,

You have said to me that
"I think there are already some pieces of it in your application, even though it's named and structured a little different. "
Could you please give me more precision?

Maybe you can use some input and reuse code from existing modules.

Cheers,
Philipp

riadh chtara

unread,
Apr 8, 2012, 6:30:00 AM4/8/12
to silverst...@googlegroups.com
Hi
I saw that some of you have tried my poll.
I hope you like it.
For the proposal, I have added the auth and profile to the proposal.

Yours sincerly
riadh
2012/4/6 xeraa <P.X...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/silverstripe-dev/-/ZKjWZEuVZMQJ.
Reply all
Reply to author
Forward
0 new messages