Case Study: Books for Keeps - the children's book magazine online
Monday, 25th October 2010Case Study: Books for Keeps - the children's book magazine onlineBackground
Books for Keeps is the UK's leading, independent children's book magazine. It was launched in 1980 and ever since has been reviewing hundreds of new children's books each year and publishing articles on every aspect of writing for children. There are over 12,500 children's book reviews and more than 2,000 articles including interviews with the top children's authors and illustrators.
The Project
The Brief
The existing Books for Keeps website was based on an older version of Drupal (4.7) and had a very dated design. Reviews and articles were hard to find, which was a big problem as most of their existing community consisted of school teachers and librarians who use the site for researching which books they should be buying for their classes and stocking in their libraries.
The Challenges
Along with a new design and upgrade to Drupal 6, there were also issues with how existing data had been stored. For the last thirty years, every time they reviewed a book they recorded information such as authors, contributors, publisher, etc. and have amassed more precise information than is available from the largest online book reseller Amazon. It was essential that this data was made use of, however in the current version of the website it had been stored in only two fields - 'Supplemental 1' and 'Supplemental 2', and it was our role to convert this into a format the computer could understand and provide useful functionality, such as being able to see which books an author or contributor had been involved in.
The Transition from Print to Online
Finally, after thirty years in print, Books for Keeps produced their last ever print version in early 2010, so it was also our role as experts in digital media to ensure they had all the tools and functionality needed to keep Books for Keeps going as an online-only production. This is an ongoing effort as both themselves and their existing readership migrate from print to online-only, of which a major part is the change management process from one of static pages delivered once every two months to a virtual environment where the boundaries are less rigid and content can be updated at any time.
The Outcome
There are three phases to this project:
- Designing and implementing a new architecture for the data
- Creating a new, easier-to-use design
- Ongoing development to assist the migration from a bimonthly print publication to a more regularly updated online publication
Architecture
The first phase, which was essential to get right as it provides a solid base for the long-term growth of the site, took the most time as we had to convert text such as 'Written by Sheila and Andrew Allan and edited by Gary Bond' to a data set of authors and contributors. In this instance, the authors would be Sheila Allan and Andrew Allan with the editor being Gary Bond. This example was one of the simpler ones - there were many spelling mistakes, missing spaces between names and the word 'and', and a whole host of other issues which eventually we managed to sort out, resulting in the current website having:
- Over 70 roles, everything from author to paper engineer
- Over 6,500 Authors & contributors, each of which has a user account and a profile listing books they've been involved with
- Over 80,000 unique SEO-optimised URLs, making it one of the top 'hub' websites for children's books
- 30,000 hits per month; 500-1000 unique visitors per day, a massive jump from around 12,000 print subscribers
Each issue of the magazine has around 70 reviews along with a number of articles. We were keen to display a complete issue in one screen, so as the only thing we know about our site visitors is they are most likely to know the age of the children they're looking for a book for, we decided to use Drupal Panels and split the reviews sections into tabs based on age ranges. This allows people to quickly get to the information they want without having to search.
The list of articles for each issue we kept much the same as the print version - on the inside cover there is a contents listing which we replicated on the left-hand side of each issue. We then listed news underneath the reviews as news is not tied to a specific issue. The latter half of issues also have an Editor's Choice and New Talent feature which we display at the top of the page.
Ongoing Development
As requirements are changing due to the move to online we decided to implement a new homepage which has an updated design which we hope to implement across the rest of the site as and when budget allows (they are a Lottery-funded project). There is now a new 'Book of the Week' feature, a new video interviews section, a new 'Featured Author' section, and regions for highlighting the latest news and reviews. Along with using the Drupal Front Page module for the new homepage, we also created a number of new content types and made use of the Drupal Nodequeue module which enables staff to easily manage the content shown on the front page through a drag-and-drop interface.
Improved searching is also on the to-do list as we had originally implemented the Apache Solr Drupal module however a number of issues arose. The first was that Apache Solr was great, but out of all the data they have, the genre information for books is lacking, which really showed up when faceted search was in place. We hope to combat that with community-sourced tagging, i.e. enticing the community to help categorise books as they visit the site. The second problem with Solr was the increase in cost required for hosting as Solr is a separate piece of software and was making their current hosting (just a 'DV' Virtual Private Server from Media Temple) fall over due to the number of hits they receive.
We have Varnish Cache and Memcache running on the server in order to improve performance. The majority of the visitors to the site come as a result of google searches, so the more we can improve the responsiveness, the higher google will rank the site, and the more potential advertising revenue can be made from the content they have built up over the last 30 years.
There is also the scope for providing a wealth of community functionality on the site and engaging users more interactively, once the design and performance have been worked on then we hope to start building more of this! The children's book industry has no one central place where the community can come together, it is our belief that in time, the Books for Keeps website can fill this space.
The Specification
For the more technically minded, here's a list of most of the contributed modules we used to build the Books for Keeps website, along with a short description of why and how we used them. It's roughly in order of how they appear on the modules administration page:
Admin - provides a nice administration interfaces
Admin Role - allows a role to be set up to enable multiple administrators
Front Page - enables a custom front page different than the rest of the site
Amazon - we use this module to get images from Amazon and any data we don't store, such as current price
CCK - Content Construction Kit, which we use for creating our specific content types to hold the data we want
Content Multigroup - in order to store who was involved in what books and what their role was, we used this (now abandoned in favour of CCK3) module
Embedded Media Field - we use this for the Authors Live video section on the homepage
Filefield - used for uploading files, and is required by the ImageField module - we are using this for migrated data which already had images
Filefield Insert (now Insert) - makes it easy to insert uploaded images into text areas
FileField Sources - enables re-use of existing uploaded files
ImageField - enables uploading of images
Node Relationships - a handy module which helps when adding links to books when creating a review by providing buttons including 'Add and reference'
Referential Integrity for CCK - this helps maintain relationships, for example when you have linked data and you delete content, you can see if there are any orphaned nodes
Role Reference - we use this along with the CCK User Reference in order to store details of who contributed to what books, and what contribution they made
Memcache - one of the caching systems we use in order to provide visitors with a better experience
Chaos Tools - a helper API for modules including Panels
Content Profile - enables customisation of user profiles using CCK fields
Simplenews - we use this for creating newsletters
Simplenews Statistics - provides a wealth of information from newsletters, like the open-rate and CTR (click-through rate)
Simplenews Template - enables us to theme the newsletter
Nodewords - enables manual and automatic creation of meta tags for content
Nodequeue - we find this module easy for users to understand, so we create nodequeues for management of the front page content
Account menu - useful little module which provides enhanced login/logout/my account menu items
Advanced Forum - improves the core Drupal forums
Auto Assign Role - we use this so we can distinguish between those who register on the site and those who's profiles are from existing data
Automatic Nodetitles - some of our content types need to automatically generate titles from the data, this is the module which does it for us
Backup and Migrate - an essential Drupal module!
Better Formats - helps us improve the interface for administrators
Better Select - another little module which helps us improve the interface for administrators
DB Maintenance - helps optimize the database
Form Defaults - easy customising of forms
Global Redirect - removes the old node/1 URLs and uses just the SEO-friendly ones
Minimax pager - provides an easier-to-use pager when there's hundreds of pages
Multi-column checkboxes and radios - enables multiple columns for when there's lots of checkboxes or radio form elements
Page Title - easy customising of the page title which appears in the browser title bar
Pathauto - automatic creation of SEO-friendly URLs
Persistent Login - adds a 'Remember me' checkbox to the user login
Read more link - simple module which moves the 'Read more...' link adjacent to the end of the content rather in the links section
RealName - enables the use of various fields to display a user's real name instead of their login name
Safe HTML - filters input content before it reaches the database
String Overrides - easy customisation of text throughout the site
Vertical Tabs - now part of Drupal 7, this improves content submission/editing forms by grouping tasks into vertical tabs
Panels - panels make it easy to manage the display of content, and for this site, we have panels for issues, reviews, news, articles, and books
Tabs panel style - we are using tabs to display the book reviews in different age groups
Google Analytics - this enables us to hook into Google Analytics web stats service
External Links - highlights to the user which links are external to the current website
IMCE - image file uploader/browser
IMCE Wysiwyg bridge - links the image file uploader/browser to the WYSIWYG editor
TinyMCE Node Picker - provides a button for the TinyMCE WYSIWYG editor so you can easily find and link to existing content
WYSIWYG - enables a WYSIWYG editor in the text areas, we are using TinyMCE
Views - most Drupal sites use views, it enables us to list content in any which way we like
Fivestar - provides the rating functionality on the site
XML Sitemap - provides standards-compliant site maps for the search engines
tags: Drupal Planetcase studieschildren's book reviewsbooks for keeps