In this section: I outline some web applications I've designed and developed in my professional career, including a decision management tool, an events calendar system, a content management and publication application and a search tool.
Desysion Team, DecideWise
I added functionality to an existing release of the product. I created new features and modified existing functions with ASP (VBScript), SQL, XML, DHTML (HTML, Javascript and CSS) and Java.
My achievements included the design and programming of an 'import' function which added new projects to the application by reading in formatted text files.
I wrote ASP code that used Microsoft.XMLDOM and XPath to read data from XML-formatted DesysionTeam and Desysion DeskTop export files. I then used SQL Server's @@IDENTITY to generate SQL insert statements that dynamically replaced the existing data's auto-ids with new ids, for compatibility with foreign key constraints.
I wrote javascript functions which enabled or disabled form elements to mimic the UI of common office applications. I used ASP methods to update the user's screen as quickly as possible during complex and lengthy operations.
I designed functions that tested for expected and unexpected user input and responded appropriately.
I also wrote and maintained Technical Requirements documents, and designed and tested Use Cases and Implementation Procedures. I enjoyed designing elegant UIs for new processes to fit the existing application metaphors.
I reviewed the existing database design to optimise the speed of existing functions. I contributed to the development of the XML format for exported data. I also developed and documented a method for moving databases between servers.
I installed and maintained Bugzilla on a Linux box running Apache, MySQL and Perl.
What's on, Museum Victoria http://whatson.museum.vic.gov.au/, Scienceworks, Immigration Museum, Planetarium, Melbourne Museum
I designed and programmed public and secure internal data-entry and administration interfaces for 'What's on' event publication system. The design process used UML and OOP methods and involved heavy consultation with stakeholders and content providers. I wrote documentation and online help (using DHTML 'clickable' layers to hide and display help boxes) for programmers, administrators and content providers (the internal users) and performed useability testing for external visitors. I produced all the original HTML, CSS and DHTML, and supervised any later additions.
The system design for this project had to allow for several different event types (serial
events, long-term events, irregular or moving events, etc), different audiences and respond
to the different presentation requirements of the four venues as well as provide a single
multi-campus interface for general use.
The public interface offers several modes of navigation, to allow for the varied requirements of the audiences and content providers, including calendars, and date, event type, keyword, audience and venue searches.
The screenshots demonstrate the variety of interfaces the application design allowed.
The web-based administration functions allow for different levels of authorisation as well
as simple 'emergency' features for use by floor staff when events are cancelled, moved or
postponed. The system provided three levels of authorisation for content providers and
editors. The scripts use CDONTS to allow the application administrator to be notified by
email when new events are waiting for approval and for event records to be returned to the
content provider with annotations.
The backend incorporates client and server-side validation, also includes random functions that took different parameters to select random events for different interfaces (e.g. education events only on the education portal, venue-specific events on the venue sites). ASP session variables and IP tests are used for authentication.
Content Management and Publication Systems, Museum Victoria http://www.museum.vic.gov.au/hottopics/, http://www.museum.vic.gov.au/highlights/.
I was the lead programmer and interface designer. I designed the system architecture, the relational database design, and the publishing interfaces and processes for the automated online publication systems 'Hot Topics' and 'Highlights'. I was the development team coordinator for post-production modifications.
This web application supports different stages of article creation and approval as well as
context-sensitive publication across a variety of interfaces. The system allowed different media to be published via a family of sites. Multimedia can be uploaded
via the same web pages used to author articles, and the author can decide how to present
multimedia and images in their article - breakout boxes, galleries, or key images
incorporated into the text of the article. Similar interfaces allowed the publication and management of a database of documents in Adobe's pdf format and collection records.
Article archiving and expiry are handled automatically, but the system includes a 'front
page' feature that allows a story to break out of the date-based presentation and re-appear
as a feature. Other features include search functions, random functions, and context-
dependant 'sort' orders.
I designed the database to allow for the greatest flexibility in publishing the articles. This meant a more complex design for the backend and authoring interfaces, but allows for combinations of headlines, bylines, opening paragraphs and 'key images', as well as highly configurable article layouts.
Resource Discovery Framework, Museum Victoria
http://www.museum.vic.gov.au, http://infozone.museum.vic.gov.au/.
The Resource Discovery Framework combined seven new and legacy databases to provide a unified interface to Museum Victoria's collections and research. The first challenge was to get the data into a common format and then into a common technology. This involved mapping existing data types to Museum Victoria's metadata standard (Dublin Core + 2) and dealing with bad or null data. The second challenge was to design and develop user-friendly and efficient interfaces to the information. The Resource Discovery Framework is used on several high-traffic Museum Victoria websites. The interface had to be adaptable for different levels of detail and for different audiences.
I wrote a specalised search engine for this project, using SQL and ASP. I designed and coded features of the Resource Discovery Framework backend included 'stopping' and
'stemming' functions, designed to provide more accurate search results for visitors. These
functions truncated the search terms to remove plurality (e.g. 'birds' became 'bird' for the purposes of the search) and
increase the number of relevant search results, while preserving the original term in order
to present feedback to the user. The search functions, written in ASP and SQL, also
included advanced error trapping and basic Boolean (and/or) search functionality. Error
trapping included the replacement of problematic characters such as apostrophes with
neutral characters that wouldn't affect the reliability of search results. Some interfaces
included advanced text handling and record set manipulation.
I wrote complex scripts to present information appropriately, based on the completeness of
a record and the type of view. The scripts also presented search results differently to
visitors inside Melbourne Museum to visitors outside the location, based on the IP of the
visitor's browser. I produced all HTML, DHTML and CSS for the sites.