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.
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.
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.
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.
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.
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.
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.
For more information about TitanCon please read the Convention Planning page on this website or the About and History pages on the TitanCon website.