SoC social network support
Overview
Currently Geeklog has no built in or plug-in support for social networking. By simple definition, social networking should allow a user to not only share content with users, but also be able to manage who those users are. Traditionally in Geeklog, the administrator of the system would share or deny content view rights based on Geeklog groups. The goal of the Socnet plugin is to allow end users to create and manage content and share that content to others in the Geeklog site via social networking groups.
The purpose of the Socnet plugin is not to be the content creation mechanism -- rather the Socnet plugin is there to provide the social networking group and security mechanisms to secure end user content, allowing the creator to publish or deny access to content as they see fit.
Requirements
The following list is an initial outline of design requirements. It would be expected that some of these requirement would have to be altered and/or some requirements added to this list to make a final Socnet plugin production ready.
- The base Geeklog group structure needs to be altered to support the notion of group ownership as well as group type
- Geeklog's core code needs to be altered to support this functionality.
- Geeklog's core code needs to be rigorously tested to ensure that these changes do not affect the existing functionality of all portal functions and core plugins.
- Socnet will support the ability to create end user owned groups.
- Socnet will support the ability to remove end user owned groups.
- Socnet will support the ability to administer those groups
- Administration of adding users, removing users all handled by an end user (no admin rights required)
- Only those groups the end user has created will be made available to them
- Ability for site admins to manage all social networking groups
- Administration of adding users, removing users all handled by an end user (no admin rights required)
- Socnet will support the ability to blacklist users (deny access to groups explicitly).
- Socnet will support the ability for an end user to send a request to a group owner for inclusion in a group.
- Socnet will support the ability for a group owner to send a request to a user to be included in a group.
- Socnet will support the end users' desire for privacy.
- Give the end user the ability to opt out of Socnet groups.
- Allow a privacy setting that will shield the user from being made available to join Socnet groups.
- Socnet will display the end users's current group membership status in their account information page.
- Socnet will make its API available to other plugins for easy inclusion. API functionality includes:
- Security checking (ensure a user is allowed to view content).
- Allow a plugin to secure its content through Socnet.
- Socnet API has not been fleshed out as of yet -- but the eventual outcome of this step is to have some new core Geeklog functionality to enhance the collaborative functionality of plugins.
- Alert notification mechanism for end users
- End users need to be altered somehow to the fact that there are changes to content that they are subscribed to.
- Email? Notification window? What's new block personalized for Socnet changes? Private Messaging Plugin? Core Notification Service (possible GSOC project)? This requirement needs to be fleshed out to see what is most appropriate.
- By the end of the Google Summer of Code 2010, Socnet should be in a pre-release Alpha state. That is, all of the requirements above have been met.
Level of Difficulty
Medium to High difficulty. There are other initiatives that are currently proposed where the student for Socnet would have to mesh their project with another student's project. Meshing of projects is not a definitive requirement but should be considered a possible requirement.