Phil Lowles

TitanCon Database

TitanCon database

A custom built XML database that utilises a functionality in the Firefox web browser to use XSLT to query the XML database. This results in a very fast operating results window that I have customised to display information on attendees, produce sales reports, and output personalised email confirmations.


The HTML interface for the database is a simple web page separated into three areas: Search, New Record Creation, and Reports and Lists. Each section has a number of buttons which execute a JavaScript function on click.


Each JavaScript function calls an XSLT document which queries the XML data and replaces the page content with the relevant results. The search functions on the page (by member ID, first name or surname) uses a variable to getElementById from the input window which is then passed to the XSLT as a parameter.

There are a few other functions that work by grabbing an ID number from the window href which is then passed as a parameter to the XSLT. These functions include sales by month pages, results by country and also the email generation pages.

Search function

TitanCon database search code

The first part of each XSLT is a test to determine if a search query yields multiple results and if there are several attendees with the same first name or surname then a table will be displayed and individual records can be selected from here. The next part of the test displays the result if only one record matches the search and the last part displays a message if no results match the query. The snapshot shown here displays this section of the XSLT code.

I have also included tests for the email generation functions so that if member data does not contain the relevant details then an error message will be displayed. For example if I click to generate a Membership and Coach Tour email but there is no record of purchasing a coach tour ticket in the XML then it will display the error and ask if I wanted Membership only instead. This was some functionality I added in response to making this particular mistake on a few occasions.

Reset button

One of the problems with generating results pages via XSLT in this way is that as a user you expect to be able to use the back button of the browser to go back to the previous page, but the previous page in this instance is not going to be the interface home page - it will be the page you looked at before that. This is because the web page address itself has not changed, only the content displayed on that same page has changed. Also your search data will remain in the cache so if you search again it will not clear your previous search entry. To get around these problems I created a reset button which links to a web page that simply redirects to the interface page. This clears the search entry enabling everything to function as expected again.

This is one of the things I need to teach our reception staff about using the TitanCon database each year, but this design is simple and intuitive enough that it makes sense to anyone very quickly.

TitanCon database sales

Sales reports

The sales report breaks down total sales by member type, payment method and monthly breakdown. There are separate reports for the Coach Tour, art show, dealer tables, workshops and everything else that we sell individual tickets for. Also included is an overall sales report which compiles a complete list of all types of sales. These reports utilise the math functionality of XSLT.


The database can be used to track the demographics of attendees. The only information we are tracking are the countries that attendees are from, how many people have previously attended TitanCon before and how many are new attendees. We also track some survey data we ask about who has watched Game of Thrones and who has read the books. Some of these details are expressed as percentages on the results pages.

Email generation

The database can be used to generate personalised emails. This saves a lot of time when sending out ticket confirmation emails. There are a lot of tests in the XSLT to make sure that only the relevant information is displayed in each email.

New record creation

This functionality is specifically for new membership sales on the door while TitanCon is taking place. The reason for this is that it only creates and stores the most basic details that we need and does not contain the full data that we receive via the form on the website. Otherwise it would be too time consuming to enter on the day, this is meant to be quick and easy way to enter the details.

The new record creation function makes use of a test to check the last recorded ID of a specific type in the XML database and output a new record ID incremented by 1.

More details

For more information about TitanCon please read the Convention Planning page on this website or the About and History pages on the TitanCon website. TitanCon
Website for TitanCon, a science-fiction and fantasy literature and media fan convention that takes place in Belfast, Northern Ireland. I have organised and run this convention for the past five years including all work on the website. Features Paypal e-commerce integration, custom built backend database tracking with automated email generation functionality.
TitanCon name badges TitanCon 2014 name badge
I put a lot of effort into creating beautifully printed name badges for every TitanCon. These are designed at 300dpi print quality and printed onto 10x15 Kodak photo paper.
TitanCon programmes TitanCon 2013 programme cover
Including a 24 page programme for TitanCon 2012 and a 28 page programme for TitanCon 2013. Both are A5 sized full colour layouts throughout. The TitanCon 2013 programme book featured paid adverts, three of them designed and typeset myself following guidelines set out by the client.
TitanCon flyers TitanCon flyers
Flyers for TitanCon, a science-fiction and fantasy literature and media fan convention held in Belfast, Northern Ireland. These full colour flyers were designed to be double sided and included 3mm bleed as specified by the print company.
TitanCon Schedules TitanCon 2015 schedule
The schedule sheet is an essential hand out for every attendee at TitanCon. This is how everyone finds out what's on, where it's on and which guests are on each panel. I pride myself on creating clear and clean looking schedule sheets that are easy to read and easy on the eye.