Revised Proposal has been posted based on feedbacks: http://groups.drupal.org/node/10468#comment-33863
Objective
To create a Drupal 6 Social Network Distribution similar to Ning.
Unlike Ning, the Drupal's opensource concept empowers users with freedom to customize, host and own their social networks while not confining network members behind walls with support of OpenID, Microformats, FOAF and OpenSocial (DataPortability in the future).
I hope that with my contribution for this project will be useful for communities to collaborate for betterment of our world.
Inspiration
This project is inspired by Dries Buytaert's blog post on Drupal Distributions. Yep, it is easy to create a social network site with Drupal for geeks. There are very fine social networks based on Drupal such as TeamSugar and GoingOn. However, a non-techie user would be quite at a loss to achieve something like a Ning social network site with just a few clicks using Drupal. Additionally, Lovd By Less has launched an "opensource" social network platform built in Ruby On Rails framework in March 2008. I believe that Drupal framework is really powerful to create social networks through creative implementations and comprehensive documentations which this project aims to achieve this summer.
Coincidentally, Chris Pirillo has announced his project to take web communities into open direction tapping into the prowess of Drupal. I am excited about his vision for Gnomepal and eager to work closely with him to contribute to the larger project for the benefits of community.
Approach
The fundamentals of approach for this project will be not to reinvent wheels and to ensure easy extensibility and customization. There will be essentially two parts in the project:
- Development of new modules and tweaking on existing modules
2. Screencasts and documentations creation for new and existing modules in the distribution
Features
From my research on Drupal's existing modules specifically in the context of creating social networks, I find that it has basically all the modules for features that a social network is supposed to have. However, what these modules lack is a user-centric layer to glue them together. I reason that the user-centric layer is the core to drive users activities for an active social network. Moreover, stemming off from the user-centric layer, a social layer is required to tie in all the individual activities. Last but not least, interoperability among social networks will be ensured by support of OpenID, Microformats, FOAF and OpenSocial (DataPortability in the future).
#1. Profile Plus (new module)
This module is the core part of this project. This is essentially the user-centric layer to tie in other modules like how Facebook ties in 3rd party applications. A profile box of a module will have a user's overview relevant to that module. In addition to profile boxes, tabbed feature will also be implemented to group profile boxes into tabs. The profile box will have similar structure to that of Drupal's blocks to easy conversion of blocks into profile boxes. The profiles boxes and tabs can be easily administered through the dashboard [#7]. Comprehensive Profile Plus hooks/APIs such as Ajax callback action will be implemented to ensure extensibility.
OpenSocial aspect will be further explored. I strive to support its javascript API at the least for this project.
This is where open standards such as Microformats, FOAF and OpenSocial will be implemented.
#2. Activity Feed (new module)
Users' actions in other modules can be fed back into Activity Feed through the Activity Feed hooks/APIs. The module will have a profile box support which acts as a working example for other developers to create profile boxes for their modules.
This module will take inspirations from Activity Stream module.
#3. Messaging (new module)
This will be a simple messaging module for communication among users in addition to having hooks/APIs for other modules to attach snippets in messages and to send notifications to users.
Implementation will be inspired off from existing messaging modules which do not support Drupal 6 yet.
#4. User Relationship (existing module)
This module will be modified to tie in nicely with Profile Plus. This serves as a working example of an existing module being tied into Profile Plus [#1], Activity Feed [#2] and Messaging [#3]. For instance, a profile box listing a user's friends or top friends.
#5. Organic Groups (existing module)
A few screencasts will be created to highlight management of Organic Groups. The module will be extended to tie in with Profile Plus [#1], Activity Feed [#2] and Messaging [#3].
#6. Core Modules (core)
Node for user contributed contents such as videos, photos, bookmarks etc.
Profile for customized user profiles
Forum for discussion boardsScreencasts will be created to illustrate the administering these modules. The modules will be extended to tie in with Profile Plus [#1], Activity Feed [#2] and Messaging [#3].
#7. Dashboard
This dashboard will enable easy setup and management of the distribution. In essence, it is just an aggregation of relevant links for non-techie users to easily administer the social network. However, I would be working with community closely to get feedback to improve the user friendliness of the dashboard as the project progresses.

Comments
Profile Plus?
Profile plus sounds like a duplicate of MySite and Panels Profiles. See http://groups.drupal.org/node/8780 for some discussion.
Messaging is likely a duplicate of Notifications.
More background research would be welcome here.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Thanks Rickard
Thanks for your feedback.
The main aim of this project is to seamlessly tie in essential modules needed for a social network and to lay down extensible structure for add-ons. Secondly, it is to enable users to be able to create Drupal powered social networks with just a few clicks (like in Ning) with the help of #7. Dashboard, documentations and screencasts.
Regarding #1. Profile Plus, technically MySite module is really similar to what I aim to achieve for Profile Plus. You have created really good APIs for others to tie into. The difference, however, is in functional concept analogous to the difference between iGoogle & Orkut profile page or Netvibes & Facebook profile page.
Screenshots of TeamSugar profile page [http://img80.imageshack.us/my.php?image=teamsugarprofilepagecu0.jpg] & Facebook profile page [http://img91.imageshack.us/my.php?image=facebookprofilepagelo4.jpg].
I hope to get your advice whether I should go about creating a new module or extending MySite module.
Regarding #3. Messaging, I am aware of a few messaging modules already available. However, all of these only support Drupal 5. Since I would like to create a seamless messaging feature to facilitate messaging among users and notifications from modules to users, I decided to write a new module.
Cheers,
Thiha
Work with existing modules
Hi soethiha,
I think you will find better reception for your ideas if you work with existing modules rather than creating new ones. All three of your new modules have existing modules in the space. Just because a module is not ported to 6 yet is not a good reason to write another. You can simply help port the existing module to 6. If you have determined that a new module is required then could you please specifically describe the differences between existing modules and yours and why it must be new versus added into existing ones? (Also in addition to activity stream module there is another called Activity.)
Overall is the output of this project focused on docs/screencasts or code? Since this is summer of code, while the docs and screencasts are hugely beneficial, they are not the bulk of what your work needs to be - Google requires that it be significant code. Aside from the list of modules themselves, Do you plan to write an install profile to tie it all together? Have you talked to Chris about your project as well since we would want to make sure that the work didn't end up getting duplicated by two different "groups" approaching the same goals.
Lullabot loves you
Learn Drupal online at Drupalize.me
focus now on distribution/install profile
Thanks for pointing that out.
Yep, I have been corresponding with Chris for this project since last week. And I hope the outcome of this project could be part of his larger vision.
Overall, the output of this project is focused on coming up with a distribution which users can used to easily deploy in a few clicks and a dashboard where users can easily manage their social networks. Drupal has all these excellent modules but to non-techie it is a daunting task to create a social network using Drupal. I would like to change that. Docs and screencasts are only planned for two weeks of the entire summer, the focus would be on the coding. That's why I proposed the first 3 modules to be written new.
My question now is whether porting of existing modules for Drupal 6 and extending them for tight integration would have sufficient scope for this program.
So far from the feedback, the first 3 modules I proposed initially have similar modules:
Profile Plus -> MySite: need to extend or fork. MySite is like Netvibes and Profile Plus is like Facebook profile page. MySite's codebase is excellent to extend. Then this may end up as a fork. Would it be fine?
Activity Feed -> Activity: need porting over to Drupal 6.
Messaging: there are quite a few messaging modules. And need to port one of them over to Drupal 6.
The selling point of this project would be the #7. Dashboard where all the modules in the distribution can be easily managed.
MySite
From a code re-use standpoint, relevant to add1sun's comment, the MySite/Panels integration discussion is very germane to your topic.
If you are working with Drupal 6, go back and read http://groups.drupal.org/node/8780
MySite is not going to be ported to Drupal 6, so neither a fork nor an extension is recommended. Instead, we will use the Panels API, much like the new OG Panels module has done. See http://groups.drupal.org/node/10445.
The best approach would be to leverage the Panels API to build what you want -- or wait for the MySite/Panels project merge and note that it will be included in the install profile. Problem is, neither module has been ported to Drupal 6 yet.
It would seem to me that a good plan would be to build the Panels widgets that you need that do not currently exist.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Thanks for the valuable
Thanks for the valuable comment.
I have decided to port Panels module and Advanced Profile module. I am still keeping the option of just porting Panels module to work with core Profile module open.
Revised Proposal based on Feedbacks
Thanks a lot for feedbacks and looking forward to more feedbacks.
ABSTRACT:
This project aims to create a Drupal 6 Social Network Distribution similar to Ning.
Unlike Ning, Drupal is completely open source and users can tap into wide range of existing Drupal modules to deploy and customize their social networks freely. The essence of a Drupal based social network distribution will bring the concept of distributed social networking http://diso-project.org to next level with proactive support for open authentication like OpenID and open standards like Microformats and FOAF; unlike proprietary social networks.
I hope this project will be useful for communities to socialize and collaborate for betterment of our world.
INSPIRATION:
This project is inspired by Dries Buytaert's blog post on Drupal Distributions http://buytaert.net/drupal-distributions.
Yep, it is easy to create a social network site with Drupal for geeks. There are very fine social networks based on Drupal such as TeamSugar http://teamsugar.com and GoingOn http://goingon.com. However, a non-techie user would be quite at a loss to achieve something like a Ning social network site with just a few clicks using Drupal. Additionally, Lovd By Less [http://lovdbyless.com] has launched an "opensource" social network platform built in Ruby On Rails framework in March 2008. I believe that Drupal framework is really powerful to create social networks through creative implementations and comprehensive documentations which this project aims to achieve this summer.
Coincidentally, Chris Pirillo has announced http://tinyurl.com/ysc5vz his project http://tinyurl.com/2q2mbx to take web communities into open direction tapping into the prowess of Drupal. I am excited about his vision for Gnomepal http://xmail.lockergnome.com/mailman/listinfo/gnomepal and will be working closely with him to contribute to his larger vision for the benefits of open source community.
BENEFITS TO DRUPAL/OPEN SOURCE COMMUNITY:
The outcome of this project will benefit community creators and members as even non-techie users would be able to create their social networks with Drupal 6 with just a few clicks as in Ning. Moreover, Drupal is completely open source unlike Ning and users can tap into wide range of existing Drupal modules to deploy and customize their social network freely. Setting up a social network like TeamSugar [http://teamsugar.com], a Drupal 4/5 powered social network, would not be a daunting task anymore, even for a non-techie users, with this Drupal Distribution.
The essence of a Drupal based social network distribution will bring the concept of distributed social networking [[http://diso-project.org]] to next level with proactive support of open authentication like OpenID and open standards like Microformats and FOAF; unlike proprietary social networks. Additionally, with future support for OpenSocial and DataPortability, the project will empower users to move across various distributed and interconnected social networks freely.
PROJECT DETAILS:
The project will be for Drupal 6 to encourage embracing of the newest version. And this project would not reinvent any wheels by embracing existing modules and porting them Drupal 6 where necessary.
From my research on Drupal's existing modules specifically in the context of social network creation, I find that it has basically all the modules for features that a social network is supposed to have. However, what these modules lack is a user-centric layer to glue them together. I reason that the user-centric layer is the core to drive users activities for an active social network. Moreover, stemming off from the user-centric layer, a social-centric layer is required to tie in all the individual activities. Last but not least, interoperability among social networks will be ensured by support of OpenID, Microformats, and FOAF. (OpenSocial and DataPortability in the future).
DELIVERABLES:
= Panel Profile (1)
-- This is the user-centric layer of the distribution and aims to achieve a profile feature like Facebook profile with added support for 3rd party applications to integrate in
-- This is to be achieved through porting of Panels 2 Module http://groups.drupal.org/panels and Advanced Profile Module http://drupal.org/project/advanced_profile to Drupal 6. There is already an on-going effort for porting for Panels 2 Module. I will be helping out to speed up the process. For Advanced Module, I would need to liaise with Michelle.
-- User-centric widgets for panels such as "My contributed contents", "My Activity/Feed", and "My Favorites", Social-centric widgets such as "My Top Friends", "Poke Me", and "My Wall" to be written
= Activity (2)
-- Port Activity Module http://drupal.org/project/activity to Drupal 6.
= Messaging & Notification (3)
-- This will be a simple messaging module for communication among users in addition to having hooks/APIs for other modules to attach snippets in messages and to send notifications to users.
-- This will be a new module or porting of existing messaging module for Drupal 6
= User Relationships (4)
-- Direct use of User Relationships Module http://drupal.org/project/user_relationships. Need to ensure it works with Panel Profile, Activity and Messaging & Notification modules
= Organic Groups (5)
-- Ensure that the module's recent release http://drupal.org/project/og works fine for Drupal 6.
= Core (6)
Usage of Node for user contributed contents such as videos, photos, bookmarks etc.
Usage of Profile for customized user profiles
Usage of Forum for discussions
Need to ensure all of them with Panel Profile, Activity and Messaging & Notification modules
= Dashboard (7)
This dashboard will enable easy setup and management of all the modules included in the distribution. This dashboard will also have links to screencasts. In essence, it is just an aggregation of relevant links for non-techie users to easily administer the social network.
= Screencasts (8)
Screencasts for setting up, deploying and management of social network created using the project's Drupal Distribution
PROJECT SCHEDULE:
= Before May 26:
-- Communication with developers of relevant modules, Chris of Gnomepal and Drupal community
-- Research on Drupal 5 to Drupal 6 porting process
-- Study Panels Module APIs
-- Explore DiSo Project for its outlook on distributed social networks
= May 26 to June 1:
-- Work on (2)
= June 2 to June 8:
-- Finalize (2)
-- Work on (1)
= June 9 to June 15:
-- Continue with (1)
= June 16 to June 22:
-- Work on (4), (6)
-- Continue with (1)
= June 23 to June 29:
-- Finalize (4), (6)
-- Finalize (1)
= June 30 to July 6:
-- Bug fixing (& SimpleTests)
-- Create 1st version of Drupal Distribution
-- Mid-term Report
= July 7 to July 13:
-- Work on (5), (3)
= July 14 to July 20:
-- Continue (5), (3)
-- Work on (7)
= July 21 to July 27:
-- Finalize (5), (3), (7)
= July 28 to August 3:
-- Work on (8)
-- Bug fixing (& SimpleTests)
-- Create 2nd version of Drupal Distribution
= August 4 to August 10:
-- Finalize (8)
-- Bug fixing (& SimpleTests)
-- Create 3rd version of Drupal Distribution
= August 11 to August 17:
-- Final Report
-- Bug fixing (& SimpleTests)
Continue with bug fixing and adding in new features suggested by the community till August 27 then release the Drupal Distribution; one week before September 3.
Porting
If you want to port Panels -- and I do, too -- check in at http://drupal.org/node/223994
No need to duplicate effort here. That's why I think you should focus on creating Panels elements that do not exist -- particularly those that interface with the external sources you want to use (Microformats and FOAF, for example).
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Yep, I checked out that
Yep, I checked out that node. And the one I mention in the proposal is to join this effort. How do I coordinate with you for the porting effort? I plan to start by mid May.
I will be expanding on the elements you suggested here in my proposal.
Collaboration
All collaboration on the D6 port is being discussed at http://drupal.org/node/223994.
You could post a note with a link to this thread.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Gnomepal?
I haven't had a chance to digest everything here yet, but there seems to be a lot of overlap with the Gnomepal project, which is just kicking off.
http://gnomepal.org/
yep
Both started around the same time. I have talked with Chris who initiated the Gnomepal. This project is just a very small part of what Gnomepal's huge vision. I mentioned about that in my proposal. Depending on outcome, this project could be complementary or be just redundant.
Are drupal distributions possible?
Is there a way to put all of the modules and their default configuration settings together into a distribution script? I'm unclear on how this can be more that just another profile with setup instructions without it.
Have this project done?
Where can I find a installation package of the distribution?
SN Distribution: Current Status November 3rd:
Soethiha laid out a great plan with details with his revised version in early April.
Eight months have elapsed... was this project dropped?