Personal experiences of setting up a membership site

Events happening in the community are now at Drupal community events on www.drupal.org.
Patroclas's picture

I am sharing my experiences of a setting up a membership site for an environmental organisation to maybe help others with a similar task. The main function of the site is to allow volunteers to find a placement with a host where they can learn about organic growing methods. It is part of the international WWOOF movement (World Wide Opportunities on Organic Farms). I set the site up at the end of 2008 and it went live early in 2009. See www.wwoof.ie

Background

There were many other sites doing the same thing in other countries so I had many examples of good/bad practice. The main lessons were:

  • Most sites were dull and difficult to navigate
  • Payment methods were mostly postal
  • Security of user information was very poor - several sites had had data stolen, some from a printed list, others from their website, or both.

So my main aims were to produce a secure, good-looking site with online payment that would be attractive to members and reflect the ethos of WWOOF.

Research

After taking some bad advice I wasted time looking at Joomla (big mistake!) before coming back to Drupal. I had set up one site in D5 so had a little experience with it, but had never done anything much outside of the core modules. I had good understanding of html, css and databases but only minimal exposure to php, so needed to work with ready-made modules.

I looked at CiviCRM but after testing it for some time abandoned it as I considered I was attempting to make it do something it was not designed for - although some other WWOOF sites do use it.

My main problem was setting up online payment. At that time Ubercart did not provide what I needed so I went with a dev version of the LM Pay-Pal module. It was not perfect but did what I wanted (but more of that later). Testing in the Pay-Pal sandbox was (and still is) a time-consuming experience and I set up an online test site as well as my local site using WAMP (I would now use Uniserver - it’s way better).
I needed to separate the Volunteer and Host roles and give them different profile forms. I also needed to allow un-subscribed members to browse profiles without accessing contact details until they had taken a subscription. With a combination of Content-Profile and CCK field-level access permissions I was able to achieve this, although I was soon dealing with a huge permissions table as I needed to double-up the online roles with matching roles for postal payments.

The CCK profile forms were quite complex and took a long time to configure and theme satisfactorily. I started with admin fields on the same forms but later realised I could attach a second content-type to user accounts to keep the admin stuff separate and manage access to it more effectively.

I had never used Views so had a steep learning curve to climb before I achieved the content display and menus I needed. The 'Simpleviews' module helped to get me started and after a while I could navigate the Views configuration screen without it. I could not initially find a way to manage how users could be 'corralled' within their own areas but a combination of CCK permissions, node access permissions, Views access permissions and menu-block permissions got me there in the end – but at times my head hurt with so many layers!
I needed a way for members to contact each other. I looked at modules that kept messaging within the site but decided to use the simple 'Contact Link' module and allow users to do their own messaging. It works but, with hindsight, I would probably look for a better option. PrivateMessage was not available for D6 then.

When the site went live I learnt a huge lesson! People just do things you can never predict! I needed to revise all the CCK forms, add more help for most fields and generally improve the user interface with changes to styling, information and many other small tweaks. I installed the FAQ module to handle help pages, and Advanced Forum to encourage feedback and discussion from users.

The site was very successful and the user list grew quickly. It was satisfying but quite scary! I installed CAPTCHA to help prevent potential spammers but found that my security and membership arrangements effectively locked them out of most areas of the site.

The site needed a lot of maintenance – module updates, keeping the database optimised and backed up and keeping user data secure requires regular work. It’s worth emphasising this - a successful site needs regular work! The Backup and Migrate module has performed well (except for a short time when it conflicted with an imagefield/filefield update and gave me my only WSOD). I installed Rules and used it to automate some of the admin tasks and have just set up another rule-set to handle some of the maintenance with Views Bulk Operations that I had previously done manually.

The LM PayPal module began to be a problem as memberships approached 2500. It did not handle recurring payments effectively and provided poor management data as it was not Views or Rules aware. It is not maintained and I knew there was a potential time-bomb as the membership list grew. As I was spending too much time managing membership records I recently took the decision to port all the subscription payments to another module. This was a very difficult decision as it involved using a paid-for product. I would have preferred to use Ubercart but could not find a way to transfer my existing data into it – the other module comes with an import routine and it is performing very well indeed and is actively maintained and developed. I had to do some manual imports of postal subscriptions but the user and node import modules interface with the new membership module very well. I am never sure what the etiquette of discussing paid-for modules is on this site but will answer questions if you want to ask!

The site has been enhanced in many ways since it was launched – I created a way for members to provide feedback about each other (although as a management decision it is only one-way at this time) and there have been regular small improvements to keep things working smoothly. I have even added a member-only shop on a sub-domain using Ubercart. The site has just registered user No.10,000 and paid memberships are approaching 5000.

I have a long(ish) list of contributed modules - most only handling small tasks. The list is roughly in order of importance

  • CCK and CCK Content Permissions - for all user generated profile and admin content
  • Content Profile - to attach cck nodes as user-profiles
  • Views - to manage display of user profiles and management data
  • Views Bulk Operations (mostly for management of user accounts and content)
  • Membership Suite
  • Imagecache; Filefield; Imagefield for user-profile images
  • Date API, Date CCK, Date PopUp (Mostly for managing postal subscriptions)
  • Computed Field, Conditional Fields. Node and User Reference (mostly for the feedback system).
  • Contemplate (a great help with theming for a non-coder)
  • Contact Link - for user messaging
  • CAPTCHA - invaluable
  • Rules - for setting site message actions, sending mails via triggers, deleting inactive users and orphaned profiles
  • Finder (using Views for searches that don’t find restricted information)
  • Flag - for users to ‘bookmark’ favourites
  • FAQ - for help pages
  • Advanced Forum
  • String overrides and TabTamer - to change the text of various links and module-generated text and tabs (great for a non-coder!)
  • Node adoption - to retain posts of lapsed members
  • Node edit protection - to remind users to save their work!
  • Transliteration - to handle username, text and image filenames from international users
  • Printer friendly pages (Printer email and pdf versions module)
  • Ubercart (for the shop)

What have I learnt?

  • The Drupal community is wonderful! I have had help on a variety of issues and found plenty of solutions on the forum.
  • It takes time - I guess I gave over 300 hours to setting up the site and with the feedback facility (but I am quite fastidious about the way things look so spend quite some time with theming and css)
  • I am now confident with Drupal and have been able to build several other sites that share the same community approach. It’s amazing how one can move from staring at the Views admin screen in puzzled disbelief, to being able to manipulate arguments and relationships, create blocks and even use a bit of code here and there. I have even discovered that I now know enough to help others on the forum.
  • ConTemplate is a great helper module - using it I have become familiar with templates and using field variables - enough to be able to dive straight into page-whatever.tpl.php and make a few adjustments when needed.
  • Drupal needs better payment-for-role modules. Ubercart is overkill for that task in my opinion. I have reluctantly had to look outside the Drupal fold for a solution - although I am pleased with the results.
  • I have found sending emails to all members of a role to be difficult. VBO stopped working for that task after a recent security upgrade. There is Views Mass Send but it is not ideal yet and formatting can be a problem. Input formats have been a problem generally - and I still don’t feel I fully understand them.
  • I need to move to a better server. My shared hosting provider (Blacknight) is excellent (I can’t recommend them enough) but the site probably needs something better. I have looked at VPS solutions but I don’t know enough about managing a server to take the plunge.

Comments

Great post. Thanks for

Traveler777's picture

Great post. Thanks for sharing your development path for www.wwoof.ie and going into details.

You mentioned the development and implementation of the site did take you about 300 hours. Did you have experience with developing a membership site before in Drupal? You mentioned you worked with D5 before.

What features are your members requesting the most? What are they complaining about the most, if at all? What would you like to implement as a new feature next?

Have you looked into CiviCRM again? What was your decision not to implement it into the current site? Has anyone else experience with CiviCRM and can share some experience? Especially, about CiviMember, CiviEvent and CiviMail, and how these relate to a membership organization.

Patroclas, have you looked at site5.com for hosting? Heard good things about them, and as a side note they even plant a tree for every new account sign up.

Thanks Traveler - will give

Patroclas's picture

Thanks Traveler - will give some quick replies to your questions...

I had limited experience of a membership site - no payment involved and only two roles - Managers and Members. So I knew what Drupal could achieve but not how to get there when I began.

Requested features - the Feedback system gets quite a few comments - but it's to do with the management decision for it to be only one way, not asking for a new feature. You can view the forum on the site without a login to see the discussions. There are still a few problems with logins and passswords but I have quite a few members who are not familiar with computers and get confused. I have been looking at the persistent login aspect of Drupal recently to see if I can improve things there for users. I consider the site to be 'feature frozen' now because I am reducing my involvement with the technical side - I am not a spring chicken any more (I learnt my graphic design when computers wrere room-sized!) and so am stepping back a bit now.

I have not looked at CiviCRM again but I do know that I made the right choice when I abandoned it. Another similar site uses it and it does restrict what they can do in terms of add-ons and site reconfiguration. They have contacted me about what wwoof.ie does because they can't get CiviCRM to do the same. I have nothing against it if it works for an organisation but it is really designed for contact management, not for the type of site I wanted.

Thanks for the info about hosting but I am perfectly happy with my provider (and I would want an Irish one anyway). Its the management of a VPS that I am not confident about. I have set up a test server at home with Ubuntu but it really is not what I know and understand. (In fact I can't even get started right now!). I think that will have to be for someone else to implement.

Online payment via 3rd party apps

Rubicon7's picture

For our Drupal non-profit site (www.atlassociety.org) we used 3rd party apps to process payments. We used "Click and Pledge" for membership donations (on our home page click on the "Become a member" button to see how this works) and we use E-junkie for our online store. (E-junkie works great. For examples on our pages, see: http://www.atlassociety.org/audio-downloads-american-founding-documents-law) Hope this is helpful to some folks out there.

Does Click and Pledge assign

Patroclas's picture

Does Click and Pledge assign a role or do you have to do it manually?

Click & Pledge

Rubicon7's picture

Hi Patroclas. No, C&P doesn't assign roles. It's simply an outside URL, that is branded to appear as part of your website, and it offers choices to members regarding levels of donations, and processing of credit cards.

I noticed that one of the

Traveler777's picture

I noticed that one of the main challenges that I came across in Drupal is to achieve a solution to sign up members, payment processing, member management, renewals. All this in an environment that is working well together and doesn't give you a headache every day. Of course there can be more components added on like newsletters, contributions, event management, etc).

@Rubicon7 - How do you currently reconcile member roles between C&P and Drupal?

@Patroclas - I have further looked into CiviMember and what I like:

  • Member registration forms
  • Able to theme with CSS (out of the box does look, well, like out of the box)
  • Able to process with payment processors like authorize.net
  • Able to manage members and renewals (auto-renewals depend on merchant account, I think)
  • Able to integrate and sync CiviCRM members to Drupal roles

  • You can use the CiviCRM contact look up functions for your front end website, but I think they are not getting close to Drupal profile modules.

Again, I struggle to find a central contact management solution for Drupal, besides CiviCRM. It seems, and please correct me if I am wrong or miss anything, that CiviCRM is the best open-source solution for this. It allows you to organize contacts, integrates membership features, syncs with Drupal core, has newsletter functions, allows event registration, contributions and creates reports, and has active developers. All that in one solution (?).

I have not really heard from anyone who has a first hand experience with CiviCRM and it's different components, but it seems worth exploring further.

Membership / Association Website Building

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: