
With this article I want to explain how you can plan and build a Social Networking Website using Drupal. The intent of the post is to provide useful tips and informations to understand the issues behind the building of a working on-line community. This writing was inspired by the reading of two interesting books, Community Building on the Web: Secret Strategies for Succesfull On-line Community and Drupal 6 – Social Networking. It’s clear that in a post I can provide only some useful cues to make a well-done work. I suggest to read the books above mentioned if you want to know more about the techniques and best practices for developing a good web network service.
Why a Social Network?
If you are a web-surfer you have the answer from your daily activities on the web. All our actions come from the need to share and live our passions and works. Nowadays the web provides many services that allow us to stay connected with people which share our interests. The capability of making a direct, quick and easy interaction between people is the real power that Social Networks now have. Someone is thinking: Well, there are already many Social Networking sites. Why create another one?
In my opinion there are many reasons. We should not think at a generic place where to post disorder contents, but at an on-line community that works and grows in a specific field. In this case a Social Networking Website could be the perfect solution to mantain your little area of people. Trust me, in these crazy times a relatively numerous community focused on a specific topic is a “goldmine” for any kind of business.
You can improve your business through a social website creating your on-line community for a specific field and let know your skills in the area, making available some free services for your customers, analyzing posts, comments and statistics to anticipate new trends, staying focused on a few topics and share useful informations, so the users (and potential customers) will trust you.
We can stop here, but the list could be huge. Anyway remember that the most important thing to make more productive your website is the sharing of useful informations and services and to stay focused on a specific macro-topic. We’ll use Drupal, the open source content management platform, to realize a Social Networking website.
Why Drupal can be used for a Social Networking Website
Drupal is an abstract framework and it is instrumental to solve different kind of problems. It’s an error to think at Drupal like a simple CMS, its structure allows the building of any sort of websites. The nodes play an important role, in fact a node is a generic piece of content and it can be part of a forum, a blog or a new article in a magazine. Each node (an item of content) belongs to a single Content Type, which defines various default settings for nodes of that type. The developer can define new properties for the nodes. This approach allows an high level of customization. Drupal can easily manage contents, users and collaborations between members of the sites. These things are useful to make a Social Netoworking Website, it all depends on how the CMS is configured and administered.
Basic Features and Settings
The essential elements of a social network on the web are the members. It’s very important to plan what the users can do and to understand how to manage them. Contents and look-and-feel of the website are two other important elements. We see how we could use Drupal to set up the basic elements of a web-based social structure. First of all we should install the open source CMS. I suggest a local installation on your computer for testing all the potentiality of the framework. You need to simulate an apache Web Server adding PHP and MySQL, you can download and install XAMPP (an easy to install Apache distribution containing MySQL, PHP and Perl) for your OS. The last version of XAMPP (actually 1.7.2) runs with PHP 5.3, but for Drupal 6.x is recommended PHP 5.2.x, for this reasons you should install 1.7.1 version (read also the following guide to know how to install Drupal: Installation guide).
After installation take a look at the administration tools (you must logged as admin). Drupal Administration Area is the control panel for setting up the features of the website.
Spend a few hours studying all the available options to understand how you can manage all the components of the application and how to prepare Drupal for a social Networking Website. Once we have understand the main configurations, we can start to plan features that our website should have.
For example User Management Section allows the administrator the control of users, groups, and their permissions. Access rules can limit access to your site using username, e-mail of the member or hostname; Permissions manages the access to certain sections and contents of the site; the Roles allow the administrator to set global permissions for a group of users; User settings configure default behaviour of user and Users is the complete list of the members of your site.

It’s a good idea to directly try all the options on your Drupal installation, for a complete overview on Drupal Administration Area and an awareness test read the official Drupal Administration Guide.
Drupal Becomes a Social Networking Platform
We have the “dream” of making a good network of people who communicate through our website, so we must allow our users to submit contents and make friendship with helpful people. Take a look at the following list of activities that could consent good interaction between members of the community.
What we want to do:

- - Managing posts and contributions
- - Creating groups and a solid communications with other users
- - Starting discussions in a group or in a forum
- - Creating good contents using collaborative tools
- - Managing polls
- - Managing and categorizing automatic RSS contents
- - Adding comments
- - Tracking the activities of other users
- - Managing an advanced user profile
- - Building relationships
- - Sending personal and direct messages
- - Sending instant short messages
Drupal provides Core Modules to enable some services above-mentioned. We need to activate, from Administer > Site building > Module, the following modules:
Core Modules
Enabling the following modules and setting a good configuration for our platform we have the basic tools for managing our on-line community.

Aggregator: aggregates syndacated content
Blog: enables keeping easily and regularly updated user webpages or blogs
Blog API: allows users to post content using applications that support XML-RPC blog APIs
Book: allows users to structure sitepages in a hierarchy or outline collaborative writing
Color: allows users to change color scheme of certain theme
Comment: allows users to comment on and discuss published content
Forum: allows discussions in a forum
Upload: allows users to upload and attach files to content
Profile: supports configurable user profile
Tracker: enables tracking of recent posts for users
OpenID: allows users to log into your site using OpenID
Improve Your website with Additional Modules
Behind Drupal there is a great community that works to realize new modules for adding useful features to our web projects. Although our website starts to work using a basic configuration, it isn’t a real Social Network Application. For this reason we need to install additional modules to provide more services.
We need to download the relevant modules for our purposes and extract the ZIP files into the /sites/all/modules folder of our Web Server. The modules have to be enabled in the Site Building | Modules section of the Administration Area.
Below a list of useful modules to create a working social Networking site.
Token
Tokens are small bits of text that can be placed into larger documents via simple placeholders, like %site-name or [user]. The Token module provides a central API for modules to use these tokens, and expose their own token values. Modules that use the Token module and provide tokens via the API include Organic Groups, Pathauto, eCommerce, and Ubercart and some of the modules that we’ll use for our Social Networking application. A full list of Modules that use Token Module.
Gravatar
Gravatar module integrates Drupal user pictures with the service provided by Gravatar. If the user has a gravatar linked with his or her e-mail address, it will be used as their user picture for comments, posts, and profile.
User Relationships
Allows users to create named relationships between each other. It is the basic building block for a social networking site, or any site where users are aware of one another, and communicate.mThere are many features on offer. It’d be worth your while to check it out. Admins create relationship types (friend, coworker, etc). Relationship types can be setup to be one-way or mutual. If a relationship type is one-way (subscriber) only the requester is shown as relating to the requestee. Relationship types can also be set as needing or not needing approval.
Activity
Activity module keeps track of the things people do on your site and provides mini-feeds of these activities in blocks, in a specialized table, and via RSS. The module is extensible so that any other module can integrate with it. The messages that are produced are customizable via the admin interface and are context sensitive.
Guestbook
Guestbook module provides a site guestbook and individual user guestbooks. Guestbook owners can delete and comment the guestbook entries. Avatars are shown if they are available.
Organic groups
Organic groups enable users to create and manage their own ‘groups’. Each group can have subscribers, and maintains a group home page where subscribers communicate amongst themselves.
Views
The Views module provides a flexible method for Drupal site designers to control how lists and tables of content (nodes in Views 1, almost anything in Views 2) are presented. Traditionally, Drupal has hard-coded most of this, particularly in how taxonomy and tracker lists are formatted.
Notifications
Notifications is a complete Subscriptions/Notifications Framework aiming at extendability and scalability. It allows any number of plug-ins defining new event types or subscription types or a different user interface. The package consists of a main notifications engine, which is a lightweight module handling just the basic event processing and message queueing and delivery, and a half dozen plug-in modules which add several event and subscription types and a simple UI.
Messaging
This is a Messaging Framework to allow message sending in a channel independent way. It will provide a common API for message composition and sending while allowing plug-ins for multiple messaging methods. When using this framework, you won’t send e-mails to users anymore. You will send them ‘messages’ and they will decide how they want to get them delivered, that may be by mail, IM, SMS, depending on user’s preferences.
Simplenews
Simplenews publishes and sends newsletters to lists of subscribers. Both anonymous and authenticated users can opt-in to different mailing lists. HTML email can be send by adding Mime Mail module.
Inactive User
Inactive User module provides Drupal administrators with a way to automatically manage inactive user accounts. This module has two goals: to help keep users coming back to your site by reminding them when they’ve been away for a configurable period of time, and to cleanup unused accounts.
CAPTCHA
A CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human. The purpose of CAPTCHA is to block form submissions by spambots, which are automated scripts that post spam content everywhere they can.
Cron diagnostics
Check if Cron really runs at specified time. Provides information on Status report page.
Drigg
Drigg is a powerful Drupal module that allows you to create Digg and Pligg-like web sites.
Microblog
Microblog module enables microblogging on Drupal sites using it.
Users can publish microblog updates, follow and be followed by other users, and reply to other users’ microblog updates.
Module also provides “public timeline” page as well as followers and following pages, and a block of “recent microblog updates.”
Conclusions
We have seen a quick analysis on how to build an on-line community through a Social Networking website. My hoping is that after this reading you have understood the power and potentiality of Drupal. This isn’t a static step-by-step tutorial, but an overview on the issues in making a working social website and some resources that could help our work. Now the only way to realize and improve a good site is to test different settings and modules and to try various configurations for making perfect your web-based social network project.
by
Hi dear, I’m graduating in Electronic Engineering and I am a passionate Web Designer and Blogger. I play the bass and I like blues, jazz and rock music and I’m really loving the Design Community.


November 10, 2009 at 4:05 pm
For your readers wanting to facilitate registration and login using OpenID (Google, Yahoo, AOL, MySpace, Flickr, etc.) as well as Facebook, check out the JanRain RPX Drupal plug-in at http://drupal.org/project/rpx
RPX also supports social publishing of activities on your website to Facebook, Twitter, Yahoo, and MySpace so your users can become advocates and drive additional traffic to your websites.
November 10, 2009 at 5:04 pm
awesome post. but images are missing
November 10, 2009 at 11:53 pm
Images now are ok! Thanks!
November 10, 2009 at 11:12 pm
Drupal = power cms. nice post man
November 10, 2009 at 11:44 pm
This is great.
Drupal is the best CMS for social networking nowdays, imo.
Thanks for sharing!
November 10, 2009 at 11:52 pm
Great post Piervincenzo!
November 11, 2009 at 6:16 am
Thanks for the opportunity… I’m proud of writing for woorkup.com
November 11, 2009 at 12:13 am
wow.. awesome post explaining the insights of Drupal…
November 11, 2009 at 12:33 am
We have a couple of related posts:
http://www.maflt.org/news/using-drupal-social-oriented-content-platform
http://www.maflt.org/news/using-drupal-social-oriented-content-platform-part-2
November 17, 2009 at 3:58 pm
I need someone to develop a social networking site.
how would i go about finding someone to accomplish this?? how long does it take and what is a reasonable price to pay for such a service? I’m looking at a fee based membership type of political lobby. How do you keep control of such a thing? Most of the social network websites are a lot of hot air and belly aching…not at all what i’m after. More along the lines of usable news and results driven strategy sharing. Definitely collaboration and coordination of activists.
Would i be better off having a site on facebook and driving traffic that way??
Could you suggest someone to help me? thank you mia
November 11, 2009 at 1:42 am
very informative post..bravo
November 11, 2009 at 2:01 am
Great post!
November 11, 2009 at 3:24 am
Great post Piervincenzo!! Congrats!!
November 11, 2009 at 3:52 am
Nice post, you can also build your social network site using wordpress, but you have to manualy code yourself , i ve been experience with this, take a look at my social networking powered by wordpress wordtaps
November 11, 2009 at 3:54 am
Nice primer on Drupal, and a good collection of modules, thanks!
November 11, 2009 at 6:37 am
Excellent post. Very well explained the difference between a CMS and Drupal.
November 11, 2009 at 6:46 am
Interesting post but CMS’s and social networks are slightly different beasts. Before you go down this route, compare it with Elgg (www.elgg.org) which is designed as an open source social network framework. I’ve had good results with it.
November 12, 2009 at 2:49 am
You have some example of good results ? ;)
November 17, 2009 at 3:56 pm
I need someone to develop a social networking site.
how would i go about finding someone to accomplish this?? how long does it take and what is a reasonable price to pay for such a service? I’m looking at a fee based membership type of political lobby. How do you keep control of such a thing? Most of the social network websites are a lot of hot air and belly aching…not at all what i’m after. More along the lines of usable news and results driven strategy sharing. Definitely collaboration and coordination of activists.
Would i be better off having a site on facebook and driving traffic that way?? Could you recommend someone for the job. thank you
November 11, 2009 at 10:35 am
Great post! Congratulations.
November 11, 2009 at 10:59 am
I’ve been looking for a post like that for many days. Thanks a lot.
November 11, 2009 at 8:02 pm
On user relationships with one way, the default is only the requester is shown as relating to the requestee. I would like it opposite. The requestee is shown as relating to the requester. “Adding a client” rather than “becoming a client”. Does anyone know how to do this?
November 12, 2009 at 2:13 am
Are you using Drupal to manage woorkup.com ?
November 12, 2009 at 11:38 am
No I’m using WordPress
November 12, 2009 at 4:11 am
Stunning post and analysis!
November 12, 2009 at 10:38 am
Great thankx
November 12, 2009 at 10:54 pm
I would also add the Facebook-style Statuses module, it is the best for making a social network to let your users express themselves.
November 13, 2009 at 1:12 am
Great post!!
btw: which tool did you use to create the guiding images?
November 13, 2009 at 12:34 pm
Hi Steven, I use PowerPoint for Mac
November 13, 2009 at 3:17 am
Drupal is very powerful!
November 13, 2009 at 4:17 pm
Antonio and Piervincenzo… you are great! Awesome article in a fantastic website. Thanks!
November 15, 2009 at 4:49 am
One of the things you will run into when building complex sites like this, is to integrate all the modules functionality and tie it all together. Which is even more important from a usability/user experience point of view.
For example, you might want to use an inbox on your site for private messaging. (like facebook offers) Of course, there is a module for that, but it doesn’t (yet) integrate with guestbook or relationship notifications.
November 17, 2009 at 3:50 pm
I need someone to develop a social networking site.
how would i go about finding someone to accomplish this?? how long does it take and what is a reasonable price to pay for such a service? I’m looking at a fee based membership type of political lobby. How do you keep control of such a thing? Most of the social network websites are a lot of hot air and belly aching…not at all what i’m after. More along the lines of usable news and results driven strategy sharing. Definitely collaboration and coordination of activists.
Would i be better off having a site on facebook and driving traffic that way??
November 16, 2009 at 6:29 am
Drupal still the best cms in the world. And I like it.
November 16, 2009 at 9:09 am
Interesting article, thanks for posting
November 18, 2009 at 9:56 am
Great article man. Started using Drupal recently and I really enjoy it.
December 17, 2009 at 7:07 am
hats off to drupal but we can work also with wordpress-mu and buddypress plugin installed in it, to make or create a social networking site.
January 5, 2010 at 12:40 am
Thanks for this post. Great article.
January 20, 2010 at 3:18 pm
I heart Drupal.
February 2, 2010 at 2:53 am
Drupal is still the best CMS to do any things. great plateform.