The widely anticipated release of Open Atrium, created by the fantastic team at Development Seed, attempts to bring Drupal into the world of intranets, allowing different teams to have their own conversations. As soon as it was released, I, along with other pingVision developers began evaluating it as a potential tool for communicating with our clients.
Previously, we were using a custom-built, organic group-based system to communicate with our clients. We developed most of the functionality using common contributed modules and added a few custom features as well. But overall, it was lacking. The design itself was minimalist, the feature set was small, and we, along with our clients, found it hard to use on a day to day basis. Sure, it functioned, and got the job done, but we have been too busy with work to dedicate time to improving it - sad, I know :)
Installing Open Atrium was a breeze, because after all, it's just Drupal with an install profile. On first glance, Open Atrium is stunning. A simple to use navigation structure and intuitive controls for adding groups, users, and features makes it a fantastic out of the box system. But what is under the hood is almost prettier than what is immediately apparent.
Open Atrium is built around context, features and spaces. These three modules, which also have been put together by the Development Seed team, are incredible. They each serve a distinct purpose in building the intranet functionality that is Open Atrium.
Context allows you to create "sections" of a site based on a number of conditions, such as the types of nodes being displayed, or the specific views being accessed. Based on these conditions, context allows you to specify certain reactions such as which links are active, which blocks are visible, and even add css classes for more robust theming. An example of a context in Open Atrium, is the blog. This is a pretty simple context which becomes active when either viewing a blog node or the "atrium_blog" view. Given these conditions, the "blog" menu is made active and the "Recent Comments" block is placed in the right side bar. All blocks in Open Atrium are positioned via context which makes the normal Drupal blocks administration interface extremely clean as there appears to be no blocks in any of the available regions.
Features is an amazing concept. Drupal is like a bunch of lego blocks, that you stack together in different ways to build distinct features. For example, as mentioned above, the "blog" features is comprised of the blog node type (which contains several CCK fields), the blog view (which contains a page and a block display). There are also various permissions associated with creating, viewing, and deleting blog posts. Using export functionality already built into CCK, Views, and other modules, Features attempts to encapsulate all of these configuration items into a single downloadable module. This allows for ease of transport. The Open Atrium team has big plans to create a "Distributed Feature Server" which will allow the community to quickly and easily share created features. For example: a generous Drupal developer, might create an image gallery feature comprised of an image node type, a few specialized and themed views, which maybe integrates with lightbox for a slick overlay display. This feature could be contributed in its entirety and downloaded and installed on any Open Atrium installation.
So this, by itself, is already amazing, but features takes it one step further. Because all of the configuration tasks associated with building out content types and views and other requirements of a fully-functional feature are exported into code, modifications can be tracked, merged, and even version controlled. Although we have yet to fully explore all of the possibilities associated with this fantastic aspect of the features module, it has the potential to solve the major issue of pushing configuration tasks from a development environment to live. We will definitely be evaluating this aspect more in the future.
Spaces is the perfect companion to features. It allows certain features to be enabled and customizable in various sections on your site. It provides a way to specify how spaces are designated. The "spaces_og" module, included in the spaces download, allows you to define a space per organic group. This essentially allows you to enable and customize features on a per group basis. So while one group might have an image gallery, blog, and calendar of events, another organic group might have a shoutbox, blog, and case tracker. This allows you to customize each organic group ("space") to include only the functionality needed. In Open Atrium terms, this allows each group to have a different set of features customized specifically for that group's interaction.
As Laura Scott, one pingVision's co-founders said:
Our main interest is in having a client support infrastructure that doesn't take a lot of our time to maintain. Our legacy intranet was built in Drupal 6, and in many ways similar to Open Atrium. But the launch of the Open Atrium distro offered the opportunity to join a commons even more focused on the particular needs of this site. As an open source design and development shop, changing over to Open Atrium was a no-brainer.
We immediately began work on creating and customizing an Open Atrium installation to fit our needs. Our client support site serves as a focal point for all client communication. Information about the status of the project, the hours spent and remaining, notes from our daily scrum calls, use cases, and the ability to prioritize tasks were all needed. We created a new context, feature and menu item associated with all of these tools:

We have a fairly sophisticated workflow associated with various node types which controls access and visibility based on workflow state. Our lead developer, John Fiala, also built a robust email notification system which reminds clients and pingVision staff of items in need of their attention. It is completely configurable by case tracker and workflow state and will be contributed at some point in the future. The process of creating the needed content types, workflows, and views was no different than any other site. Adding the content types and views to a context and creating a new menu item was simple following the guide on the Open Atrium site. All in all, the experience was pleasant, and our needed enhancements to Open Atrium were simple to implement.
Over the coming weeks, we will be adding new and returning clients to our Open Atrium site. It has been an absolutely fantastic experience working with Open Atrium, and all of us at pingVision look forward to using it, along with the knowledge we have learned regarding Context, Features, and Spaces in the coming months.
- Tags: Drupal, Open Atrium










Comments
Chris Charlton writes:
It's great to see other top Drupal agencies utilizing Open Atrium right away.
greggles writes:
We're planning to build a similar module. Any chance you'd release it?
Laura writes:
Yes, we plan to distribute what custom features we've developed that we can suitably genericize. For those using Unfuddle, for example, we've started on Unfuddle API, which provides the basis for integration with Unfuddle. (Ben has gone on vacation, so next update on that might be a while, but he's looking for feedback.) We've also started adding some things to the Open Atrium Github.
We'll blog soon about our contribs to the Open Atrium project.
indytechcook writes:
Very interesting. Do you plan on using your Open Atrium site with unfuddled?
Laura writes:
We're doing that now, though we are looking at dropping Unfuddle for a different system.
Alain writes:
Great post! Even before seeing this post, we also decided that Open Atrium came a great time! We also have limited time to build the perfect solution (using either Drupal, Joomla!, or our own custom solution) and Open Atrium not being our perfect solution was definitely a great starting point. It had the basics for our immediate needs. We will continue to use it, expand it, and look forward to contributed features.
We were up and running in no time and already have one of our customers helping us evaluate the solution. So far it has been great! We also posted a post on our blog http://blog.iautomate.ca/2009/08/open-at...
We will also try and provide any features we develop (when we have the time) and hope to contribute as much as possible. We support this project 110%. Great job “Development Seed”!!!
Anonymous writes:
I am new to both Drupal and Open Atrium. I have installed OA and trying to figure out all the features it has. Is there a user guide or a document that introduces the product?
Susan MacPhee writes:
Hi PingVision!
I think it would be great to track hours spent on projects in Atrium. I don't see way to do that other than using Calendar. I think it would be great if clients could see hours spent on projects (or not). But mainly to use Atrium to add hours up to bill our clients.
Any thoughts?
Susan
Laura writes:
We aren't doing it, but I understand someone is working on that as a Feature. I don't know where it would show up for download though.
Tevi Hirschhorn writes:
That's the wrong link, Laura. It should be http://drupal.org/project/features
Laura writes:
Good catch! Thanks!