I have recently finished putting together a social networking site with Drupal. It uses many well known modules such as:

Advanced Forum
Organic Groups
Facebook Style Statuses
Advanced Profile
Views
Panels
and so on...

It even uses a new module called qtchat to give it a Facebook style chat interface.

I have spent a lot of time tweaking the modules and I think I have come up with a pretty good combination.

I have often seen people requesting an 'out-of-the-box' social networking solution to Drupal and I am wondering how receptive the Drupal community would be to this kind of thing?

Would it be acceptable for me to put everything into a zip file (including a skeleton database with some example nodes) and release it so that others could download it and use it?

I admit that part of the reason I would like to do this is for selfish reasons. I have been struggling with how to optimize the site for maximum performance since it is mainly for logged in users. I would like to have some help with optimizing the code and figuring out what the best caching solution is for it. But I figure that others would benefit from it too.

Any suggestions would be greatly appreciated.

Comments

dalad’s picture

maybe you can try to generate an installation profile...

Tibi’s picture

Hi there,
did you continue on that track, Are you still searching to exchange your work and enhance it in collab with other people ?

summit’s picture

Hi,
Yes an install profile is the way to go. Did you look at homebox also, great new module.
If you would build a install profile people like me can test it, and see what we can contribute.

Greetings,
Martijn

mrwhizkid’s picture

I do want to share what I have done but I'm not sure that an installation profile is the way to go -- not for the out-of-the-box functionality that I am talking about.

The only way that this setup will work out-of-the-box is if a 'skeleton' database accompanies it. It's won't be good enough just to make the modules and themes available. The tedious part was configuring the modules to work together...especially views...this involved lots of coding and tweaking.

Correct me if I'm wrong but I believe that the installation profile will just make the modules and themes available but doesn't pass on the configuration of each individual module from the database

It would be much easier, I think, for people to start with what I have and then make their own tweaks as opposed to just having the modules and themes and then trying to make everything work together.

Please let me know if I'm way off on this...but what I want is for people to have the ability to download the package, point drupal to a skeleton database and go from there...

kaakuu’s picture

Zip file sounds good to me.
A link or demo link will also be good.

But how do you do the basic needs of a social networking site like

privacy : online status on/off or hide
block : block any user completely so that I do not see him, any contents by him, any pm from him
profile messaging : how good it is, how well its privacy levels can be controlled
social gadgets or apps : without these social networking is meaningless
photo tagging in album : what module are you using for tagging directly in photo and in what album module
like or equivalent : how do I let other sites put "like" or similar button which link to my site

Many more stuffs actually needed to call a site "social networking" - so it will be kind of nice if you post
link to a demo site
features/modules you have including any custom modules
a comparison of your pkg to to Drupal Commons WP+Buddypress Elgg Boonex Dolphin

mrwhizkid’s picture

Those are some good thoughts. I appreciate them because they give me some things to think about. I guess we have to decide what 'social networking' actually means. For example...Reddit is a social networking site but doesn't have all those features. My social networking site is built around a specific theme...where users log in to get the latest news from the site, their groups, and each other. It's more focused on posts (blogs, forum topics, user profiles, groups) then on photos and apps. To answer your questions:

privacy: Yes. users can be online/invisible/busy using the QTC chat module which provides a Facebook like IM service.
block: only users who are friends with each other can chat with each other or pm each other
profile messaging: I haven't seen the need to implement a profile access module but it could be done if needed
social gadgets or apps: missing so far. The site isn't really focused on all of that...
photo tagging in album: We do offer users the ability to upload albums using the Gallerix module but I haven't found a tagging service so far. Again, the site isn't focused on images.
like or equivalent: This is something that I haven't given much thought about. My site is focused on user content so I haven't given much thought into this feature.

But I don't think that not having photo gatting, social gadgets, or the like function necessarily disqualifies a site from being a 'social networking' site.

My setup would probably be useful for some but not all...and maybe I need to develop it a little more with some of your good ideas first...

kaakuu’s picture

Examples of social networking site : Orkut, Facebook, Bebo, Myspace, hi5 etc
Reddit is not social networking
Debating is useless : you can find examples of social networking script in the following
free : WP+Buddypress, Elgg, Boonex Dolphin
paid : phpfox, socialengine, dzoic

Have you seen the Online block of Drupal? How do I hide my presence there once the block is activated?
Using QTC to hide my online status : are you crazy? This module has bugs and does not run well when tooo many users are online

block: you must be crazy again. I am not asking for a block in chat. Either you donot know what "blocking an user" in social networking site means or you are pretending not to know. Sorry mate.

social gadgets or apps: As I said your site is not social networking unless you provide these. Phphox is a php script that provides this.

Images : "Again, the site isn't focused on images". Social networking site has 4 main focus : profile comments/activity streams, album/images, social apps/gadgets, groups (OG in drupal)

Your site may be social networking to you or others without this but to the big bad world examples of social networking site are which I already gave, and to qualify as a social networking script you should at least have what elgg/buddypress/boonex or phpfox/socialengine has.

elgg/buddypress/boonex or phpfox/socialengine/dzoic are the standard social networking scripts available that provide social networking outofthebox - all have free versions or demos, and testing each or glance at the features take a few minutes each. To qualify Drupal as social networking out of the box one needs to have the MINIMUM of those features to begin with.

WorldFallz’s picture

There really is no one feature set / use case spec for "social networking". The devil is in the details and exactly how to implement this with drupal will be determined by those details.

Any any case, regarding the specific features you listed:

privacy : online status on/off or hide
create your own 'whos online' block with views that takes the 'hidden' setting from a profile or content_profile field.

block : block any user completely so that I do not see him, any contents by him, any pm from him
http://drupal.org/project/ignore_user - don't know if it integrates with privatemsg (which can do this on it's own), but sounds like a great feature if it doesn't.

profile messaging : how good it is, how well its privacy levels can be controlled
not exactly sure what this means. Either http://drupal.org/project/privatemsg or create a message content type that has a userreference field and displays on the profile via views_attach or something similar.

social gadgets or apps : without these social networking is meaningless
impossible to say without knowing the details.

photo tagging in album : what module are you using for tagging directly in photo and in what album module
Also hard to say without knowing the details of exactly what you mean, but there's tons of tagging modules available (tagging, community_tags, fbssts, image_annotate, spring to mind)

like or equivalent : how do I let other sites put "like" or similar button which link to my site
http://drupal.org/project/fb_social

drupal is like legos-- yes you can build both a castle and an office building, but do so will involve assembling the right pieces.

kaakuu’s picture

"create your own 'whos online' block with views that takes the 'hidden' setting from a profile or content_profile field"
"create a message content type"

Dear worldfallz, the entire thing is about out-of-the-box what is available - not about my creating or fiddling with numerous modules. The OP said he intends to make SNW out of the box available as zip or something like that - so I asked whether it has the very basic SNW features available.

online status : there is no means in Views to show "off" while it may be possible to show "hidden" = try it

http://drupal.org/project/ignore_user - does not do block as in social networking parlance - it still shows the name of the blocked user with content hidden suggesting to make it visible at a click. Any blocked user can still PM me.

social gadgets or apps : "impossible to say without knowing the details."
so why say :) See http://www.facebook.com/apps/directory.php and similar lists in orkut or bebo or myspace or in any standard social networking site

photo tagging is mage_annotating : you directly mark square areas in photos and label them. mage_annotating or similar modules simply DOES NOT work with latest 6X Drupal. Sorry! I have tried those very well.

http://drupal.org/project/fb_social - it does not let you put your own like button ( not facebook) on other sites

Drupal is like legos no doubt and it can build whitehouse website even but still it cannot build a social networking site so far. I will be glad to know which part of the legos can give me now social apps or gadgets without which, you see, social networking is not a social networking. Neither it lets one user find which of his contacts are already in the network, upload a photo from webcam directly into profile.

Social networking is a different ballgame altogether and its like ostrich if we think of our own definitions :) And Drupal is thousand miles behind that with all its lego (not to speak of too many modules and modules for modules slows a site, hogs resources and make things complex). Its sad that Drupal did not incorportae the social networking bias except the Commons which is basically OG only. And in case we are speaking not of solving riddles or tweaking views BUT what can be and should be the features made available in a box for out-of-the-box experience somewhat similar to Elgg or Buddypress or Phpfox.

WorldFallz’s picture

Sometimes I don't know why I bother, lol. I know what the post about thank you. But you can't package up an "OOB" profile without considering which modules to include-- that's what I was suggesting.

You can throw the words "social networking" around all you want-- without a specification of exactly what that means for a specific implementation it's useless. Anyone who works in design and development knows that. Words are cheap-- specs are gold.

but still it cannot build a social networking site so far

lol, of course it can-- but you still need to define 'social networking' for a specific implementation.

I'm done-- we now return you back to your regularly scheduled useless bike shed thread...

kaakuu’s picture

Sorry - I am not bike shedding.
Perhaps this attitude is why we still do not have social networking in drupal, thinking in our ways that we have indeed social networking or legos to build it :)

I gave you concrete example: social networking site: Facebook, Orkut, Myspace, bebo - see how they have some very common specs/features to be in top run for SNW
I will be glad to know what are your examples of social networking sites!

I gave you concrete examples of Social Networking Scripts OOB - Buddypress, Elgg, Boonex, Phpfox.

"without a specification of exactly what that means"

Speification = common denominator or common set of features that FB, Orkut, Myspace, Bebo etc shares. All these have a common set of features like an Email service has at the very basic Inbox, Outbox, Compose etc.
Its not my imagination or something but what these provide concretely.

I also very very specifically ask you which part of the lego or which lego can incorporate "Social applets" - or helps to find my already present contacts in the network or - well, those are above already! I listed against your list - to which you have no answer. Have you? You answer me with your personal rant against me. LOL.

You speak without any examples :)

And you can take this as bikeshedding or brainstorming. Similar "bikesheddings" in WP forums gave birth to Buddypress. Similar "bikesheddings" in phpfox forums gave birth to incorporation of appls/gadgets. And new features.

summit’s picture

Hi Guys,

Please keep things positive and potential benefitially for Drupal!
Social Networking is very hot! Google is may be launching "google me", iphone is launcing ping, facebook is very hot, and of course there are others.

I think drupal can be a glue to use applets of all the socal networking platforms as above.
Right now twitter integration is great, facebook people are working on, homebox is moving forward, so lots of great initiatives.

Please be open to these great initiatives and on the other hand, yes we shouldn't be to much only looking to the inside, what can Drupal and drupal-architecture improve more in the social networking environment..I don't know yet. But I am willing to brainstorm on this more.

greetings, Martijn

mrwhizkid’s picture

Maybe it's not time for me to make this available yet. I probably need to think of a better way of explaining what kind of social networking site this is so as not to confuse people. Actually, I tested it in the Spring, closed it down and worked on it during the summer, and I am reopening it again this week with a lot more members and features.

I'll test it out see how it goes and then consider making some sort of installation profile. Unfortunately, it probably isn't going to fulfill everyone's expectations but it is a social networking site because according to the dictionary (Google's) social networking can be defined as:

"A social network service focuses on building and reflecting of social networks or social relations among people, e.g., who share interests and/or activities. ..."

kaakuu’s picture

Google is also having dictionary! Do not rely on it. Read more at http://book-grab.com
Did you look at the examples? Google's own social networking site is at http://www.orkut.com
Orkut, Facebook, Myspace or similar sites have a common set of features.

On a serious note, if you can bring social networking like in the examples of social networking sites above or the actual social networking scripts (examples given above) it will be great. You will probably need customizations or custom module for it rather than some 100 modules and modules for modules which is a bad idea - please please have a look at these
http://webschuur.com/publications/blogs/2010-06-23-the_problem_of_drupal...
http://webschuur.com/publications/blogs/2010-04-19-the_first_rule_of_cod...

Please also have a look at these drupal threads on social networking, if you want to join force
http://groups.drupal.org/social-networking-sites
http://groups.drupal.org/node/53268
http://groups.drupal.org/node/45468

You can also consider a Drupal-Buddypress bridge - http://buddypress.org OR Drupal-Elgg bridge - http://elgg.org - since Drupal cannot do all,such combos are good idea, for example, Drupal rejected its own search and uses apache solr search instead.

However a more customized solution will be great and a chip-in fund can be created.