Voting starts in March for the Drupal Association Board election.
NobleQuotes.com is a website that provides a collection of famous quotations from popular personalities. The features of this website are:
- Users can read quotes from famous authors.
- Quotes can be browsed by authors and topics.
- Users can collect the quotes they like.
- Users can rate the quotes, top rated quotes are shown first.
Other features of this site include:
- Good User Experience (thanks to Drupal)
- Clean and Responsive Design
- The website works well on all devices
- No annoying Advertisements
When the requirements and features of this site were listed, we found that Drupal has modules for all of them. Drupal was the perfect match for this project because features like: content management, content scheduling, content migration, user management, SEO, social sharing, responsive design, caching etc can be configured in Drupal easily. Drupal was the ultimate choice for this project because of the ease of implementation of the following features in Drupal:
We wanted a system where content can be added and edited easily. Drupal's core was more than sufficient for providing these features. Also the Permissions option in Drupal core allowed us to provide different access rules to different type of users.
We needed a system where quotes could be classified by their author and topics. We also wanted separate pages for quotes of each author and each topic. This requirement was fulfilled in a few simple steps:
- CCK module was used to create a content type for storing quotes.
- Taxonomy (core) was used for assigning authors and topics to quotes.
- The arguments feature of the Views module was used to filter quotes by authors and topics. More than 300 pages of the site are rendered dynamically by a single View display.
We did not want to publish all content at once. We wanted a scheduling system that could publish the content on specified date. The Scheduler module provided this functionality.
We had a lot of content in csv files and wanted to import it without trouble. The FeedAPI module did this for us in minutes.
Having a site with a good page load speed was one of the top priorities. Real improvement in performance was due to caching. We tested a number of caching strategies and ended up using the Varnish module. The reason for this decision is explained in the next section.
The Masonry module improved the User Experience of the site. The Views Masonry module was configured for all the views. The masonry display is not only more appealing, it is also better utilization of space.
The Views Infinite Scroll module was used as an alternative to paging. This module can be configured to load content on click (as we have implemented on this site) or when the user scrolls down.
Other small modules like the qtip module also contributed to a good user experience of the site.
Add to Favorites
Giving users the ability to collect their favorite quotes was an important requirement because this feature sets this site apart from many competitor websites. This feature was accomplished through the Flag module.
Login / Register
Drupal core comes with a built-in user management system. We used the Email Registration module to simplify the registration process by allowing users to use their email addresses as their usernames.
We wanted to give users the ability to rate quotes. And we wanted to use these ratings for sorting the quotes, such that the top-rated quotes always appear on the top. This feature was implemented using the Fivestar module.
We wanted a generic way of configuring basic SEO settings for thousands of pages. Modules like the Meta tags made it simple.
We wanted the users to be able to share quotes easily on popular social networks. There are dozens of modules that provide this feature. We tested almost all of them and ended up using the Share Buttons by AddToAny module. The reason for this selection is explained in the next section.
We wanted a responsive design. We used the Masonry module on most of the pages and used the Adaptive Theme as the base theme.