UFIEKG-20-3 - Data, Schemas and Applications

Coursework 2: A Location Mashup


8th February 2007


This is an individual assignment. 


Due 22nd March 2007


Weighting 50% of Coursework (25% of the overall module mark)


The objective of this assignment is to create a web based mashup application that uses Google Earth, document that application and provide a reflective report on what was learnt during the process of creation.


The aim of the application is to display information about a minimum of six different locations. The locations should be places of interest that can be visited by the member of the public. They all need to be of the same type – for example six football grounds, six parks, six beaches, six walking trails, six museums etc. The application must provide current weather forecasts and descriptive information for each location.


The application will be written in PHP using SimpleXML and XPath. It will need to extract information on the locations from an XML file created by the student and weather forecast information from XML files obtained from external websites. The application will use these inputs to generate a Keyhole Markup Language (KML) overlay for Google Earth which integrates these information sources and is browsable by the user.  


This coursework builds on the individual scripts and components which have been or will be developed in the workshops this term.


1        Select a type of place or location – for example Football, Rugby or Cricket sports grounds, Parks, Beaches, Walking trails etc. You need to identify at least six example locations of this type, and they need to be sufficiently far apart that they have different weather forecasts. It is perfectly possible to choose locations in different countries. Choose a topic of personal interest to you and discuss your selection with a tutor.


2        Decide what information you want to store about the location. At a minimum, you need to include:

·        The name of the location.

·        A description of the location.

·        The position in latitude and longitude.

·        One or more photographs of the location.

In addition, you should include information relevant to the type of location. For example for a football ground you could record the home team name,  capacity and contact details, or for increased marks even opening days and times or a list of events. For a museum you could represent opening times and details of specific collections. Think carefully about what information is relevant to the type of location you have selected.


3        Create an XML Schema to represent this information (your data model) and create an XML file that uses this Schema containing the data for at least 6 examples of the chosen type. Also create any associated resources e.g. photographs.


4        Develop one or more scripts in PHP which will create

·        a KML overlay showing the locations , a summary of the location data and a link to the following

·         an XHTML page for each location which describes the location in detail:

                                                               i.      the weather forecast at that location, or the nearest place for which there is a forecast  - this may be obtained from either the BBC or Yahoo

                                                             ii.      information about the location and accompanying photographs which describe the location in detail

                                                            iii.      if opening times or events are included, whether the place is open or closed and/or the next event.

You must decide how much information to display in the overlay and how much to display in the linked page.



1.  A working application and the URL of the script which generates the overlay.



2.  Systems Documentation


2.1 A description of the systems architecture, using appropriate diagrams of the relationships between the scripts, the generated pages and the data sources.  This description must include references to the schemas for any external data sources used.


2.2. The XML Schema for the base data shown as a diagram and as an XML Schema, a listing of the XML data file and proof that it conforms to the schema.


2.3 Listings of all XHTML and PHP files


2.4 A brief description of your design decisions and their rationale. This should include at least


10 % for each section


3.  Reflective report


3.1 A breakdown of the hours spend on the different tasks of this coursework with the total number of hours


3.2 Your reflections on what you have learnt from this coursework. This might include a discussion on the approach you took to the coursework, the software engineering principles you used and your approach to testing.


10 % for each section


Overall Marking Guidance


1. The working application.


The emphasis in this coursework will be on the functionality of the application and the clarity of the scripts written.  No marks will be given for the appearance of the pages beyond the readability of the information, so this is not the place to demonstrate your expertise with Flash. The generated code will be checked for being valid KML or XHTML.  The PHP code should be well-structured and readable.


For the highest marks, the application should be able to show the next event at the location, or whether it is currently open. This requires some date and time processing.


2.  System Documentation


Here the emphasis is on the clarity of the documentation.  It should be written with a future maintainer of the application in mind.  It would be helpful to sketch a persona for this person, who will know as much as you about PHP / XPath / XML as yourself but nothing about your specific application.


3.  Reflection


We are asking about the breakdown of hours in order to get feedback on the time you take and where that time goes in order to improve our teaching and this coursework.  Please be as honest as you can about this - We will NOT use the number of hours reported when judging the overall quality of the coursework.


Here we are looking for insight into your own learning process.


Frequently Asked Questions

(this section will be updated in the Blog as further questions arise)


Q: What diagrams would be suitable for describing the structure of the application

A:  UML sequence diagrams have been used, as have UML collaboration diagrams and dataflow diagrams.  Explaining how a web application works is more complex than describing a single program. For example, an output from a script on a server becomes a program when it is loaded into a browser, the user determines the path of execution, and AJAX complicates things further. I will discuss this problem in a lecture.


Q:  What tools can I use to create the XML schema?


A: I recommend using QSEE - XML diagram to draw the diagram and generate the schema.


Q:  What tools can I use to create the base XML data?


A: You can create the minimal amount of data required for this coursework in any text editor, such as Notepad or PFE32 and also Dreamweaver.


Q: What tools can I use to check that the XML data is well-formed and valid?


A:  Opening the file in word will generate an error (only the first) if the file is not well-formed.  Sites like http://www.w3.org/2001/03/webdata/xsv will check XML Schema and http://tools.decisionsoft.com/schemaValidate/ will check the validity of a document against a supplied schema.  Dreamweaver will check well-formedness.


Tools such as Oxygen, XML Spy or Stylus studio provide much better support and most have 30 day demos. There is a number of open source or free tools available as well.  For this application these are not really necessary to use and the online validators should be sufficient.


Q: How can I check that the kml file is valid?


GoogleEarth will throw up an error for mal-formed or invalid kml files but the diagnostics are not helpful. If you switch out the header() statement, you can view the generated file in a browser, and save the file so that you can inspect it or use a checker.  An external validator can then be used.


Q: Can I use Google Maps in my application?

A. Using kml files in Google Maps requires Google Maps to fetch the file.  Student web space is not accessible from outside UWE so this is not possible at present.  You could use an external web site of your own provided it supports PHP 5 with SimpleXML. We are also investigating the possibility of allowing external access to your web space. Watch this space.