Click to search the Andrew Heiskell Braille and Talking Book Library Skip Navigation 2011 Open Source Code Release














 For a basic overview of the 2010-2011 functionality see my previous blogpost 2010 (and for even earlier versions of summer reading websites at NYPL see Past Online Summer Reading Websites at NYPL )


The code for the NYC public libraries' 2011 version of their summer reading website 2011 has been released on

New additions for 2011

Registration Map






We connected our registration database to a Google map of NYC public library branches and placed it on the homepage.  As branch libraries passed registration milestones (500 & 1000 participants) their location marker on the map would grow and change color from red to yellow to green.  This fostered a sense of competition between users and staff at all the branches. 

A more detailed public display of the summer reading achievements of different library and schools appeared on their homepages.








Automatic Screen Name Generator

To help protect the identity of contributors we introduced an automatic screen name generator.  This prevented users from including their real names in their screen names.  The automatic screen names contained an adjective, a color or “look” and an animal (real or mythical).  Users could keep clicking the controls to reset each word until they came up with a name they liked.  If more than one user picked the same name out of the thousands available a number would be automatically added to their selection (FunnyBlue Panda, FunnyBlue Panda1…).

Registration by school 

In addition to selecting their home branch we added a school registration field.  This was not an easy task in a city with more than 1700 public schools and hundreds more private and parochial schools.  We started with a list of public schools from the NYC Department of Education and added in whatever private and public schools we could find.  Then created an autocomplete field that could anticipate all the various NYC school naming conventions where each school is referred to by multiple names i.e. P.S. 19, PS 19, Public School 19, 019R, The Curtis School… for the same school.  We linked all the variations them to a single code to gather all the variations in a single record.  The field was optional so it didn’t give a full picture of school participation as students hurried through the registration process.  Making this a required field would return much more accurate statistical results.

Book Badges

In addition to “trigger badges” that were awarded automatically for actions like logins, writing reviews, having reviews liked and “code badges” that were awarded when a library staff gave the secret code to a user for achievements offline, i.e. reading to others, attending a program, reading a particular genre…   we added “Book Badges” that not only gave a badge to reading program attendees it also added the books read in the program to the logs of the recipients.  Behind the scenes the library staff member would enter a badge code for their program and the ISBNs of the books read.  When the user entered the code they got both a badge and the books read in their reading logs.   With one badge code a librarian could add a dozen books to each of the logs.  Librarians could also add book badges to profiles directly from the administrative site.








Automatic Book Logging

NYPL had a record year for the number of books read thanks in part to a new “Automatic Book Logging” Feature.  NYPL patrons could enter their library card and PIN on or ask a staff member to scan their barcode and all books that were borrowed by the patron over the summer would be available for one-click display in the users account.  To protect the privacy of the users we required them to specifically approve each book circulated for public display.  The feature prompted them to make the choices upon logging in and saved them from searching the database for the titles they had borrowed.  This system was custom designed to work with NYPL’s Millennium integrated library system from Innovative Interfaces.  Libraries seeking to set up something similar should contact their ILS vendor.








Report A Review

In addition to the content filter we added a “Report This Review” button that enabled users to report any content they deemed inappropriate.  This flagged the review for moderation by a staff member who determined whether or not it should be deleted as inappropriate.

Open source release at

 The code is now available at  Note of caution to libraries (and others) looking to re-use this code:  This is not a simple project. Developers will need to make extensive modifications to make the code work other uses. The NYC public libraries will not be able to provide technical support or offer any guarantees for the usability of the code. Flightpath Inc. worked extensively with the code in 2011and may be able to offer assistance for a fee. An extensive knowledge of the Drupal content management system is required for anyone wishing to work with the code.  Some of the original code connected to exclusive NYC library resources and those portions of the code have been deleted from the release. 





Patron-generated content represents the views and interpretations of the patron, not necessarily those of The New York Public Library. For more information see NYPL's Website Terms and Conditions.



Post new comment