Community Builder Anatomy – Part 2 – The User Manager

User manager is the backbone of every community builder application and it is often combined with an Access Control List (ACL) to grant or deny access permissions to users who interact with the system. A user profile contains information about a user’s identity and possibly the history of activities. User Manager is also used for registering and authenticating the community members.

The Makeup of an Online Identity

The most basic user manager component requires fields such as:

  • Name ( First Name, Last Name )
  • Email address
  • username
  • password

It would be nice to have the following fields too:

  • Basic Geographical information ( Zip code, City, Country ) which can be used with a Geo-Map service ( Google Maps or Yahoo Maps ) for doing all kinds of fun stuff such as identifying potential candidates who live within 50 km of a specific registered user on a dating website, or finding the closest restaurant to a number of registered users who need to meet face to face on a regular basis and collaborate on a project.
  • A multi-line description field for user’s bio
  • Avatar Image
  • and nothing more! I really mean it, nothing more!

A user profile can be extended to inquire more user data, but I think we should leave that responsibility to the other components within the system for the following reasons:

  1. I’m not sure all the information entered in a user profile could really describe the real personality of that individual. It is very easy to create a fake profile in less than an hour. True personalities of users come out based on the content they gradually produce and gather over time. It would be difficult to fake profiles by entering hundreds of photographs, images, and daily blog posts. I’d say, if they manage to do that successfully without stealing content from others, they deserve to keep and maintain the newly invented virtual personality.
  2. The more data fields we add, the more complex the software logic becomes. That means more work for the users who are signing up, and more software development and maintenance work in general. So there is no significant gain in developing bloated user profiles.
  3. People have user profiles all over the web ( Facebook, flickr, myspace, skype, msn, online dating, … ). Asking them to fill out yet another profile on our application wouldn’t be a fare treatment. Although it would be wonderful if users could import their personal information from other online communities. In fact using this approach you are facilitating the user’s registration and migration process.

The authenticity of an online identity

In real life the best way to qualify new friends is to observe their life style, habits, and type of friends they choose. It is unlikely that you get to know someone in the short-term without investing some time observing their everyday activities. After all, we are what we repeatedly do!

In the virtual world, the kind of content that a user produces and type of friends that they make over time, provides more accurate insight about them than a just a simple online profile.

Community input is hardly something that users could falsify. I think a better approach is when users are able to leave tags and comments on each other’s profiles. For example (tags for John: bible, faith, God, bunnies, Easter eggs, charity, feed the poor, married ) tells you that John is spiritual, and (Helen: camera, lens, photography, mother, single ) is a single mother who enjoys photography. I think a user should know who is tagging them or leaving comments on their profile. They should also be able to remove the unwanted tags and comments. This level of openness creates a more honest environment.

What if we really needed an extended profile

Ok! Let’s say if you absolutely needed to have extended user profiles, then please keep it short and simple. It would be nice if users could create their own custom fields on their profiles, so a one-size-fits-all solution is not super imposed upon them. This is specially important if you are hosting a very diverse online community. For example Facebook has a set of fixed user profile fields that are common to all profiles such as Favourite Books, Movies, and TV Shows. Users can also install a Facebook application that enables them to add custom fields such as Heritage Info, Favourite Food, Outdoor Activities, and so on!

Open ID support

The buzzword version of Open ID definition says: “OpenID is an open, decentralized, free framework for user-centric digital identity.”

That essentially means people who have an Open ID can use a single username and password to register and log on to any Open ID enabled online community. This is an alternative solution to memorizing different usernames and passwords for many websites that we visit everyday. Open ID is also a free service and supposedly owned by nobody. To learn more, please visit www.OpenID.net website.

[tags]rastin mehr, rmd studio, rmdstudio cb anatomy, web application architecture, community builder, social networking, open id, user management, access control list, acl, facebook[/tags]