Andrew Norman: The Book Collection

on Thursday 5th July, 2007 Gabe speculated thusly…

Andrew commissioned me to give his books an on-line presence. He wanted only to list his books and nothing else such as shopping or contact details.This post summarises, and then specifies the project. Designs are presented, and a project plan is demonstrated. Finally, the project is completed and I can make the source code available on request.

Summary

Dr Andrew Norman is an author. He has written in three categories and now has a total of 11 books authored (soon to be 14 or so). Currently he relies on his publishers and media reviews to gain publicity. Since some, but not all, his books are available on amazon.com; and on the various publishers’ websites, he would like to consolidate his collection in one place. Of course, the wider the audience, the better. The World Wide Web lends itself perfectly to this need.

Now we have identified a need, and a way to satisfy that need, let’s move on to put into words exactly what Andrew Norman requires from his website.

Specification

Andrew wanted his website to perform only one task: to allow access to his entire book collection to all who wanted to visit his website. He was not interested in having people contact him, or in directly selling his books.

The requirements could be summarised thusly:

  • Allow easy access to all.
  • Have a clean, “serious” design (since his target audience are not likely to be very computer-savvy.
  • Allow searching by three categories:
    1. Biography
    2. General History
    3. Military History
  • Display full details of an individual book, if chosen by the user. Including such things as:
    1. Synopsis (unique to this website).
    2. Pages.
    3. Publisher.
    4. A link to the book on Amazon, if available.
    5. A link to the book on the publisher’s website, if available.
    6. Category.
    7. Several other criteria, such as, Paper/Hard back, RRP, etc.
  • Information about Andrew Norman not found anywhere else
  • A design that would allow the website to easily expand and accommodate new books.
  • Ideally a way for Andrew to make changes to the content himself, without exposing him to any kind of programming or mark-up language.

With all this said we can now turn to solving the design problems presented.

Design

As a web developer I favour sites that are simple and effective. Cliche yes, but it brings two important advantages: increase in speed and responsiveness of the website; and a site that is normally easier to navigate. I do feel that many sites in the Web 2.0 revolution have too many colours, too many ‘flashy’ things, and this overwhelms the content. Andrew’s website is no exception: it is all about books and content, thus the website will eschew such things as AJAX, Flash, Java, and instead rely on the tried and true foundations of HTML and CSS.

Using these (limited) formatting systems will emphasise good fundamental design to ensure the site looks pleasing to the eye, while remaining standards-compliant and very fast.

A website containing a list and details of books, that will need to be updated, lends itself to being housed in a database. A database is well suited because (using server-side-scripting) the data stored in it can be easily accessed, changed, or deleted. It also drastically reduces the number of HTML files on the server; and should changes need to be made, only the content needs to be edited, rather than potentially hundreds of individual files.

Several designs were considered before settling on a final one.

Screenshot of Dr Andrew Norman’s website

This angles Andrew’s website to being content-driven, and as is well known throughout the industry: separating content from layout is a must. For various reasons MySQL was chosen for the RDMS (not least because it is popular and readily available on shared hosting). Naturally, the perfect compliment to MySQL is PHP. PHP is supported on pretty much all shared hosting.

The final angle to consider is how to allow Andrew to add/edit/delete books himself. What we are looking at here is building a custom content management system, or CMS for short. Only a logged in user will be able to access this, and the only person that should be allowed it Andrew himself. Once logged in the CMS will display all the books currently stored, and provide option for editing them, or deleting them. Logging out will also need to be implemented, along with adding a new book. This CMS will provide a simple frontend (probably using HTML forms) to performing SQL queries, with PHP doing the donkey work.

In the end the web site was completed. Andrew is very happy about it, and his Google rankings are improving. The website is now first in Google depending on what terms are entered and can be found at http://andrew-norman.com

Tags: ,

Leave a Reply