This is my draft for the GSoC 2013 Social Sharing Features:
From the idea page:
my idea about itSummary: Create an extensible system supporting via an object oriented plugin system any number of 3rd party services to share content to. There may be different options, sharing a link to a topic or a particular post or maybe even a forum, or sharing complete posts or extracts of posts.
Expected results: User interface changes for sharing buttons/dialogs/etc. as well as an administration control panel page with options on configuring the various services which might require API keys to work. A extensible interface that allows extensions to supply further sharing backends.
The sharing features part handles the shared contents(take them as contents family) and the 3rd party services(take them as 3rd party service family) that the contents shared to. All the options(a link, a topic, a particular post, etc.) can be treated as the shared contents. And the 3rd party services such as Facebook and Twitter together can be treated as the 3rd party service family .
From the perspective of users, they just need to click the share icons to share contents. When it comes to the administrators, they can configure the 3rd party services that users can share to and the content types users can share. If there are some 3rd party services needed to be supported or removed, just modify the 3rd party service family. If there are some content types needed to be supported or removed, just modify the contents family. Or just make the configure panel changed.
Additionally, the back end can records the user's sharing behaviors to a database. Using these data can supply more features that let the user know let the users know their share behaviors in history. And the data stored in the database can be used to do more things, like analysing the users' preferences in a particular forum.
At the same time, the security and permission should be considered. Such as SQL injection or share abuse.
For users, they can share the contents they like to 3rd party services and they can view the their sharing history.
For administrators, they can configure the 3rd part services and the content types that a forum can support.
For developers, the interfaces that implement the share features can be stable, if changes are needed to be done, just modify the corresponding members in the family.
For future use, since the back end records users' sharing behaviors, having data means more things can be done.
The user interfaces changes and the control panel for the administrators.
The implementations of 3rd party service family and content family.
The back end that stores the sharing behaviors.
The interfaces for adding plugin.
However, the core part is implementing the extensible sharing features, if it takes longer than expected, the back end part can be omitted.
May 27 - May 30 Workout a design document
June 1 - June 10 discuss with the mentor about the document and modify it until this document can guide the overall development
June 11 - June 17 Workout some test suits to ensure that the code can work properly.
Week 1 - Work out a base version that can be used for test(add the user interface and the administrator control panel and the one member of the 3rd party service and one member of content family.)
Week 2 - Review the week 1's work and find out the work needed to be adjusted. Do testing, find bugs and fix them.
Week 3 - Do the second round encoding, implement rest parts of the 3rd party service family and the content family
Week 4 - Review the week 3's work and find out the work needed to be adjusted. Do testing, find bugs and fix them.
Week 5 - Discuss with the mentor, review all the work done, and make detailed plan to the next stage. Adjust the design document and put more details into it.
Week 6 - Work out the plugin interfaces and back end parts.
Week 7 - Review the week 6's work and find out the work needed to be adjusted. Do testing, find bugs and fix them.
Week 8 - This week I have to go back to university, in the beginning week of a new semester, there are always many things needed to be done. So this week may not contribute many.
As I hope, I can finish the main parts during the vacation, then in the rest time, I can manage the time between the project and my study properly.
Week 9 - 10 Discuss with the mentor and continue working on the rest parts.
Week 11 - 12 Review the work in week 9 to week 10, do testing, find bugs and fix them.
Week 13 - Review all the work. Discuss with the mentor to find out what can be done more.
Week 14 - Arrange the document and code.
Who am I?
I'm Jun Wu, I come from China and now study in the NUS(National University Of Singapore) for my master degree. I'm major in computer science and pursuit the direction I really like. I just finished my first semester study.
PhpBB ID: Highbury007
GitHub Id: Highbury007
Why choose me?
I think I'm the right person because I'm self-motivated and when I see this project, it appeals to me. What's more, in one course I attended last year, in one course assignment that asked us to do some XSS and CSRF attack, phpbb was used as the target. Of course, it was modified by our professor to make it easy for us to attack. I have experience with security and I can think more expect for the features. I will spend my whole vacation to do this project, I have a strong desire to learn new things.
I didn't attend any open source project before. This is the first time, I think I can finish the work and contribute as much as I can.
40 hours a week, if needed, I can spend more hours to make the procedure follows the plan.
My native language is Chinese(mother tongue)
My second language is English(IELTS overall:6.5)
UTC + 8:00, I think I have no problem to work with a mentor who is several time zones away. I haven't worked in this style before, but I worked very late in a day, so my available work time is flexible. I live in Singapore now, if you can assign a mentor who is local to me, it won't be better.
Thanks for suggestions for my proposal and detailed explanations for the questions