TECH858 Assignment 2: A Travel Reservation System


1 Assignment Overview

For this assignment, your task is to build a travel reservations application in VoiceXML. The assignment comes in two flavours: a basic version, which is worth 35 marks, and an extended version, which is worth an extra 5 bonus marks. You can choose whether or not you undertake the work required for the bonus marks.

The purpose of the application is to allow a caller to book a domestic flight in Australia, along with optional hotel and car reservations. Your aim is to make interactions with callers to the system as natural as possible.

  1. The basic version does not require that you connect your application to a flight database. As a consequence of this, when your caller provides a departure or arrival time, you should record this as a preference, and inform the caller that you will make the actual booking later: see the sample dialog below for an idea of how this might appear in a dialog.

  2. In the extended version of the assignment, you should explore how to add connectivity to a database of flight information (described below), and how this would be used to find flights that match the caller's specifications. Since you do not have access to a web server in the labs, you are unlikely to be able to implement this; your main focus should be on presenting a design for this added functionality.

2 The Data to be Collected

You should conceive of your system's goal for any call to be the completion of a transaction. You can think of this as the construction of an information object with a number of data fields. The contents of some data fields vary slightly depending on whether you are undertaking the basic assignment or the extended version, as detailed below.

A transaction is characterised by the following data fields. Note that some of these are optional.

3 Your Dialog Design

It is possible to construct this application using a form-filling machine-directed dialog, and indeed you may want to build the system this way first to get a feel for what is involved. Ultimately, however, this is not a very satisfactory solution: your design should allow some degree of mixed-initiative dialog.

How far you take this approach is up to you. The following sample dialog should give you some ideas of what you might aim for; if your system can handle dialogs like this, you'll be doing very well. Note that the dialog here assumes that the basic version of the assignment is being undertaken, so no database connectivity is assumed.

SystemHi, welcome to Fred's Flyers Travel Agency. How can I help you?
User:I'd like to book a flight to Melbourne on Wednesday, please.
System:Ok. At what time would you like to fly?
User:I need to be there for 12 noon.
System:Ok. I'll aim to get you a flight that arrives in Melbourne before 12 noon on Wednesday 24th October. Our computers are down right now, so I'll confirm this later. Do you want to book a return flight?
User:Yes, coming back on Friday.
System:Ok. At what time would you like to fly?
User:I can leave any time after 10am.
System:Ok. I'll aim to get you a flight that leaves Melbourne after 10am. I'll confirm the details on both of these flights as soon as our systems come back up.
Will you need accommodation?
User:Yes. I need a single non-smoking room.
System:Okay, you can choose any of the following: the Regent Park Royal, the Hilton, the Sheraton, and the Crowne Plaza.
User:The Regent.
System:Ok: I've reserved you a single non-smoking room at the Regent Park Royal. Is that correct?
User:Yes.
System:Great. Will you need a hire car?
User:Yes.
System:Would you prefer Avis, Hertz or Thrifty?
User:I'll go with Thrifty.
System:Ok, do you want a Barina or a Commodore?
User:A Barina is fine.
System:Ok: I've reserved for you a Barina from Thrifty. Is that correct?
User:Yes.
System:Ok, would you like me to repeat all your reservation details?
User:No, that's okay.
System:Ok. Thanks for your custom, and enjoy your trip!

You can also use the GUS and the Communicator sample dialogs, as discussed in the lectures, as sources of ideas for how your application might interact.

4 The Flights Database

The flights database you will need for the extended version of the assignment is available as a text file. This file contains one line for each flight on which information is available; there are details of 3425 Qantas flights in the database, with each flight being represented by a set of data fields separated by vertical bar characters ('|'). Each record therefore has the following form:

qf489|adl|drw|0700|1040|tue
where the fields are, in order of appearance: If the arrival time appears to be earlier than the departure time, it is assumed that the arrival is on the following day. All times are local times. The airport codes are as follows:

City Code
Adelaide adl
Brisbane bne
Canberra cbr
Darwin drw
Hobart hba
Melbourne mel
Perth per
Sydney syd

5 Documentation

Your final submission should be supported by a report that contains the following:

  1. a top level description of the system's purpose and capabilities, drawing attention to any neat features you have implemented;
  2. a state flow diagram showing the call flow through the System:;
  3. a state description for each state in the dialog, including at least the following items:

You should use the provided dialog design template to produce your documentation. You can view an example of a completed dialog design specification here. Your documentation should be neatly presented; make sure that you run it through a spelling checker and grammar checker before submission.

6 What You Need To Submit

This assignment contributes 35% of the total marks for this unit. The 35 marks are distributed as follows:

Aspect# of Marks
Documentation15
Dialog design5
Prompt design5
Grammar design5
The implemented application5

You will receive up to 5 additional bonus marks if you attempt the extended version of the assignment.

Your final submission should consist of three elements:

All files should be submitted by email to Robert Dale; the report should also be submitted in hard copy form by 6pm on Tuesday 14th May 2002.

The electronic copy of the assignment is due at 6pm on Tuesday 14th May 2002; the timestamp generated by the receiving mail system is taken as the definitive submission time. Penalties apply for late submissions.


This page last updated 12th April 2002.
If you find any broken links or have other helpful comments please email Robert.Dale@mq.edu.au.

Copyright (c) 2000, 2001, 2002 by Macquarie University. All rights reserved.