Open Source Platforms for a Social Networking Website
This post was originally published in 2007
The tips and techniques explained may be outdated.
I have just completed a personal website project producing a Social Networking site to allow for learner drivers to sign up on the site, create a personal user profile, update their personal blog and communicate with other users through commenting, friend systems and private messaging.
To begin the project I set out testing out a variety of Open Source content management systems to find the best solution, and before I knew it, I'd looked into a huge range of potential systems and thought it would be great to summarise my findings on the best contendersâ€¦
I had in mind before starting the project what features I would like the website to include, the main points of which were as follows:
- Allow users to create their own individual profile page to display personal information and a picture of themself.
- User profiles accessible via an extension of the learnertalk.co.uk domain. (eg. Learnertalk.co.uk/chris)
- Blogs on a per-user basis, content of which to be accessible through the user's profile as well as being collated within the overall website.
- Ability to browse through the site members in order for users to view each others profiles.
- Private Messaging facility for communication between users.
- Friend system to allow for connectivity and networking between users.
- Allow commenting on blog entries and user profiles.
- Photo galleries on a per-user basis.
Basically, the fundamental building blocks of a social networking website!
The next stage was figuring out how I was actually going to do it! Being a designer more than a programmer I needed something pretty self explanatory with good web based control panels for installing additional features. My PHP coding skill level is very basic, so any custom plugins were out of the question. Open Source was the only realistic choice of applications, firstly because they are freeâ€¦ not only to use but also to modify, plus there is a huge amount of support available.
I'd like to point out in my review that although I do outline drawbacks of certain systems, I still whole-heartedly appreciate the work that has gone into producing them and releasing them free to the public. Each application has it's own advantages over the rest when it comes to tailoring it to a specific use, but here's my opinions on Joomla!, Elgg, WordPress MU and Drupal for use as a Social Networking platform.
Joomla! with Community Builder Extension
I had used Joomla! on a couple of websites before and had come across the Community Builder extension which allows Joomla! to be transformed into a community based website. This was probably what started off my whole idea of social networking for LearnerTalk, so it was the first package I tried out.
The extension was easily installed and instantly enabled users to create individual profiles.
Unfortunately I found it difficult to find further extensions to cover all the other features I desired, although they are probably out there I soon lost interest and moved onto another package.
When I discovered Elgg I thought I was onto a winner; an open source application tailored specifically for social networking! The package boasted most of the key features I desired including user profiles, blogging, friend networks and private messaging. Furthermore, there was also a decent list of additional plugins available through the website.
Sadly, an unbelievable number of hours were spent trying to get the thing to work, and when I did eventually manage to get the site up I couldn't fix the problem of only having the front page working (but with no CSS styling), everything else produced an error. After browsing the support pages and reading through other peoples posts it seemed I wasn't the only one experiencing problems, but no solutions could be found.
On the whole however, Elgg still looks very promising and I'd recommend giving it a try. I think having a dedicated server is a must to allow for the extensive permissions needed.
I came across WordPress MU after reading a blog post from Blaze New Media. Being a current user of WordPress on the SpoonGraphics blog I already have an understanding of its construction and how it works so I was quite positive when giving WordPress MU a try. The MU bit stands for Multi-User, the overall workings are almost identical to the original WordPress, the difference is MU allows for multiple WordPress sites to be created under one overall installation.
Straight away this gave an extremely powerful blogging platform for each user, with an easy to use editor and control panel. Furthermore, the extensive range of plugins available for WordPress would hopefully cover the other features needed for LearnerTalk. The down side was that in order to produce a fully functioning site a decent knowledge of coding was needed. One of the major changes needed was due to the fact that MU produces replicas of WordPress, including the whole administrative back end which could lead to users changing things they shouldn't! Also, a bit of custom theming would be needed to create the whole user profile page feature, not a difficult task for a PHP wizard though. Check out the link to Chick Speak on Blaze New Media for a great example of WordPress MU in action.
I recall giving Drupal a tryout a while ago, but couldn't get to grips with the 'ins and outs' so subsequently packed it in. After seeing it being recommended as a powerful CMS on many forums throughout my research I thought I'd give it a second shot.
I'm certainly glad I did; the new version 5 has some extremely wonderful features, once installed you can go into the admin section and tailor Drupal into the type of site you want by activating a number of core modules. This instantly covered the main features I needed for LearnerTalk, with additional modules being extremely easy to find through the Drupal website. The backend administration is very easy to use and straight forward with an enormous range of options.
A great tutorial over at Shell Multimedia came in very useful when it came to extending the user profiles with additional content, although the tutorial is under revision it still worked a treat for me. Other solutions were quickly found by googling 'site:Drupal.org' plus the info I required which in most cases brought up support forums holding all the answers I needed!
I'll not go into the finer details of LearnerTalk's creation, but here is a complete list of all the additional modules used to make it happen.
Site User List
The final result: