Forging a Community with CPSAlumni.org Using Drupal
The CPS Alumni wanted to build not only a web site to provide information to former students of Chicago public schools, but also to build a community wherein the alumni themselves could contribute content and participate more fully than they would on a standard informational site. While we were working with the Chicago Public Schools Alumni Association to build their new site, CPSalumni.org, we were also putting Drupal, a community-driven CMS through its paces.
Drupal seemed to be a good fit for their needs since it supported modules for blogs, RSS feeds, comments, file uploads, member-to-member messaging, and many (many) more community-focused features right out of the figurative box, with a robust and well-documented API that allowed us to add additional functionality and customize existing modules to better suit the needs of the client.
For example, Drupal provides a means for users to register for a site membership, but the CPS Alumni registration required some additional fields, such as the ability to sign up as an alumnus of a particular school. The capacity to add such fields in Drupal is built-in, allows for a high degree of flexibility, and provides mechanisms for performing AJAX queries for autocompleting the field as a registrant types each letter of their school’s name, as well as other functions for adding custom Javascript to a page to change the form’s behavior.
One of the biggest draws for new CPS alumni signing up to the site is the ability to download a PDF file containing the names of everyone who graduated from a particular school. We were able to write a custom module to send an authenticated request to Amazon S3 and enable an alumnus to download the file directly from the Amazon storage service using a special key that only let registered CPS alumni have access to the files. It’s completely transparent to someone using the web site but keeps CPSalumni.org files secure yet easily available to the people who should have access.
Working with an Open Source CMS is not without its challenges. The price is of course right. Everyone likes free. However, without a corporate entity providing support you have to rely on the community to help whenever something doesn’t work properly, or dig into the source code and architect your own solution. Some of the more active modules have excellent support from a dedicated working group who fully manages their code, while others tend to write the module to solve their current problem, release it to the community, and then disappear. Duo ended up employing a bit of both, as well as finding that there are some things for which no one has written a module (such as authenticating through Amazon S3) and building the functionality ourselves. It’s one of the hidden costs of free software.
The Drupal Way of doing things also has a modest learning curve. For instance, when looking at their hooks API one may at first think “My, that’s a lot of hooks!” until you need to do something for which Drupal doesn’t provide a hook, and then you think “I wish there were more hooks.” These limitations are minor and through this and subsequent projects we’ve worked out how to code within the Drupal system to achieve any functional goal, but the system is daunting at first.
The biggest benefit of Drupal is that it’s a platform as well as a CMS. New features can be added incrementally, and the alumni of Chicago public schools will be able to contribute and share content that can be reused in ways heretofore unimagined well into the future.

