One of the many strong points of using Adobe Experience Manager (AEM) is its impressive array of out-of-the-box features. These are components or services that are readily available to be used in projects and can significantly speed up development. One important subset of these features is Adobe AEM Social Communities, a framework that combines all social and collaborative applications.
The 'Social Communities' feature is all about user-generated content; it can range from the simple rating of an article to a complex blogpost written by a website user or even an entire forum topic.
User-generated content is often overlooked in ECM solutions since the main focus of those systems is usually to publish or push information towards the user. That is not the case for AEM, as there are quite a few social and collaborative components available. These can be extended and adapted to cover almost all use cases imaginable. Let's take a look at some of them.
Social Communities use cases
Adding social features to a website has a number of advantages:
- It allows a user to engage with the website, its authors and other visitors. That involvement encourages your visitors to return to the website, share content with other people and essentially feel part of a community (hence the term 'Social Communities’);
- It allows the marketing department to gather information and learn about users' preferences, interests and general demographics. By using this information, a website can be personalised to better suit the needs of a visitor.
Let's take a look at some of these social uses supported by AEM.
1. BloggingThe AEM Social Communities framework comes with a powerful blogging system. Developers can use out-of-the-box components to add one or more blogs to a website. All the required editing, moderating and authoring functionalities are provided by the framework. Users can comment on blogposts, give them ratings and search through them. The blogging system can also handle high traffic loads without additional setup.
The calendaring functionality in AEM allows for sophisticated schedules to be easily shared and published. Schedules can have a customized look and feel with several configurable views. It is also possible to let users filter or aggregate several calendars in one view. Imagine a community website for a large NGO for example - with the calendaring system, separate calendars can be created. For internal members a meeting schedule could be managed while a separate event calendar is maintained for website visitors. Overlapping events like fundraisers could then be shared across all calendars in the organisation.
In a Social Community there is often the need to allow users to define an account and a corresponding profile. An account is used to identify the user and limit access to certain parts and functionalities of a website. With a profile, users can make themselves known and share information about their identity with others in the community.
Those features are readily available in AEM. User identity management and access control is OpenSocial compliant and can be delegated to LDAP directories or single sign-on systems. The framework also allows users to login using their Facebook or Twitter accounts. AEM can then retrieve data from these networks and use it for content targeting and personalisation. Finally, users can create profiles and customize them on their own. Each profile has an activity stream to assist in moderation and engagement in the community.
The use cases described above are among the most frequently used, however, the list certainly isn't complete. Another point worth noticing is that these components are often composed of smaller subcomponents that can exist on their own. The blog component for example consists of blogposts. Each blogpost in its turn can contain comments, a rating system and so on. These subcomponents could very well be used on a page or any other form of content.
AEM Social Component Framework (SCF)
As from the release of AEM 6.0, a new framework was added to the Social Communities functionalities to tackle some of the problems with the earlier components. The main disadvantage used to be that changing the look and the usability of a component was not very straightforward.
That resulted in developers writing customizations and tweaks to give everything the desired look and feel, leading to components that could not easily be reused. The same problems occurred when trying to extend certain social components and add new functionality. Because of that, projects with extended social functionalities took a long time to go live.
As a response to these problems, Adobe introduced a new framework within Social Communities, called the Social Component Framework (SCF). SCF not only refers to this framework but also to the patterns and conventions used by its components. Those conventions allow developers to easily and cleanly add new social features or extend existing ones without introducing a lot of overhead.
At the time of writing, the components that have been redesigned and integrated in the Social Component Framework are Forum, Calendar, Reviews, Voting and Comments, but other components should surely follow in upcoming versions.
The main advantage the new Social Component Framework offers to developers is the clean separation of ways in which a component can be altered or extended.
Let's explain this using the example of a forum post. To change the color scheme or font size of forum posts, for example, nothing more than adding a custom CSS stylesheet is required. If we take it a step further and want to edit the look and feel of the interface, say by moving the title below the body of the post or by changing a button to a link, we can simply do this by editing the component template. That is made possible by the usage of the Handlebars templating language.
With this simple but powerful language, a component can be rendered both server-side and client-side, thus allowing a page to be indexed properly by search engines without losing the benefit of dynamically loading content.
Finally, it is just as simple to extend the back-end functionality of a social component. To allow for this, the Social Component Framework provides custom handling of GET and POST requests via OSGI services that are easy to implement and extend. All these features make the Social Component Framework a very flexible tool and allow developers to decrease the time needed to add social capabilities to any website.
The growing popularity of social media platforms and their integration within our websites had spawned the need for specialized tools to achieve this integration. Adobe Experience Manager has everything on board to create blogs, forums, schedules, profiles and lots of other social capabilities.
Most of these are available out-of-the-box but can also be easily extended to suit specific needs. The arrival of the AEM Social Component Framework has made it a lot easier to extend, reuse and upgrade the social component on your website. All in all, AEM proves to be a powerful choice for those who want to build both content-centric and socially driven websites.