Publius Project - Harvard University

DharmaTech created a website system for the Publius Project - an effort of Harvard University's Berkman Center for Internet & Society.  The new system is straightforward to use and allows readers to easily follow different topics and engage in ongoing discussions about cyberspace and how it is governed. 

The mission of the Publius Project is to foster public dialogue and create a durable public record on the question of how the Internet should be controlled, and by whom.  The project brings together a distinguished collection of Internet observers, scholars, innovators, entrepreneurs, activists, technologists, and other experts to write short essays on this topic. 

The Publius Project approached DharmaTech because its existing WordPress site was too limited and "blog-centric."  It needed an effective forum for sharing information and encouraging ongoing dialogue.

Mia Moran of Emtype provided the graphic design for the project.  Caroline Nolan of the Berkman Center served as project coordinator for the Publius Project.  Jason Hill of DharmaTech was the lead programmer and Tony Guzman of DharmaTech was the project manager.

About the Project

The Publius Project website serves as a forum for knowledge sharing.  A large number of authors contribute essays to the website that spark responses, comments, and conversations on a variety of topics.  The goal of this project was for DharmaTech to effectively architect the Publius Project website so readers could easily follow those topics and be engaged in their debates.

Contributed essays are organized into nine clusters of topics with each cluster having its own sub-clusters.  Furthermore, most essays are grouped together in conversations where several authors respond to one lead essay.

The architectural elements include:

  • Clusters: General topics of knowledge (vocabularies).
  • Sub-clusters: Specific sub-topics of a cluster (terms).
  • Conversations: A grouping of essays in a cluster.
  • Essay: A node where readers can post short comments in response.  An essay can be a part of multiple sub-clusters but can only be in one cluster.

Project Development

The design itself presented significant challenges because of the type of information displayed within different pages and sections of the site.  We quickly encountered limitations to how we wanted to display information.  The following describes some of the key challenges we faced and our approach in solving them.

Home Page

The home page serves as the starting point for all clusters.  The nine clusters listed on the home page allow visitors to start down the path of their choice. DharmaTech wanted to give the Publius Project the power to control which clusters appeared as the top nine, in the event that the top nine clusters changed. This was not a requirement but we felt it was necessary to provide sufficient flexibility.  We created a custom module (Drupal add-on) that allows the Publius Project staff to choose which clusters will appear on the home page.   It also handles updating the menu items under the Thematic Areas drop-down menu when the clusters change.

Conversations

Drupal  does not have an elegant way of grouping pages together.  We needed the ability to indicate that one essay is in response to another and the design needed to display information for both essays in a dynamic way.  The real world example is an administrator adds Essay A and later adds Essay B as a response, Essay A needs to list all of the responses (other nodes referencing it).  This is visually represented as (#1, #2, and #3).

Furthermore, the connection between essays needs to be two-way: essay B needs to display that it is in response to Essay A, represented here:

Related Essays

Related essays (#4) represents to readers their "place" within a cluster as they navigate through various essays and conversations.  To accomplish this, we used the right sidebar to inform the reader of all other essays within that essay's cluster.  Significant custom coding was necessary to implement this seemingly simple feature.  For every essay, we had to pull the cluster (vocabulary) to which it belonged and list all other published essays in that cluster, including their authors and their paths.  In the design, we organized the list by sub-cluster, while limiting the list to the three most recent essays for each sub-cluster.

"You May Also Like"

In addition to displaying a list of essays within a cluster on the sidebar, the Publius Project also wanted to be able to tell readers of other essays they might be interested in reading (#5).  The other essays may or may not be in the same cluster.  We made it so when an administrator adds an essay, they refer to the essay(s) they think readers may also like using a text field.

Authors

Another important feature was to allow visitors to view every essay by a particular author. Because the Publius Project had only one staff person using the site, and an essay could have multiple authors, we could not use Drupal's author field which just tells you who added it to the site.  The easy fix for this was to create a vocabulary of authors, allowing the staff person to enter the author's name as a tag.  When a reader clicks on an author's name on any page, he/she will be taken to a list of all essays by that author in chronological order.  This example lists all essays by the author "Anonymous."

For a list of all authors we created a list of every published essay.  The only field we display is the authors sorted in alphabetical order.

Conclusion

Incredibly, we were able to complete this project in just over a month from about the end of October 2008 to the beginning of December 2008.  We are proud of this, considering the amount of custom code, the complexity of the theme and information architecture.  This is testament to how effective Drupal is as a CMS for developers and end-users alike.  It also shows how solid the Drupal community is.  Doing things "the Drupal way" will ensure that the Publius Project can continue to grow and function through upgrades and/or improvements to expand its features.

The Publius Project can now fully leverage its website to create the necessary space for its important work.

A more technical write-up of this project can be found on Drupal.org here: http://drupal.org/node/386278

The Publius Project site can be viewed at: http://publius.cc/

developed by us using drupal | designed by pyramid communications | photography by butch adams | all content is licensed under a creative commons license