These are images of Comperio launched in February 2001. Comperio is PricewaterhouseCoopers comprehensive library of financial reporting and assurance literature specifically for those with an interest in International Financial Reporting Standards (formerly known as International Accounting Standards) and International Standards on Auditing. It is used by over 1,500 companies around the world on a daily basis. It supports multiple territories and multiple languages and has around 30,000 documents. It can be accessed remotely via the internet or installed locally from a CDROM.

Comperio was an web application that targets Microsoft Internet Explorer 4.x, 5.0, and 5.5 and Netscape 4.7x browsers. Other than Verity Information Server for local installations, it was limited to only using standard brower features included in their base installation.

I was technical lead and DHTML developer for the browser front end. I designed and implemented all browser components using DHTML, JavaScript, CSS, and Verity Script. I used Microsoft Interdev for development because of it's built in JavaScript debugger.

These are images of the browse tree, a File Manager like interface for navigating the hierarchy of nearly 30,000 documents. Branches are expanded and collapsed as needed to navigate to document. Selecting a document will display it in the preview pane to the right. A basic search form below the browse tree would search starting at the currently selected branch.

When I joined the development team, Comperio had been in production and had had a couple version updates. The browser front end had quite a few problems including frequent and random JavaScript errors from frames, from multiply nested framesets, interacting with other frames that haven't finished loading. Each time a branch was expanded, the HTML page was reloaded and performance would degrade as more branches were expanded. However it did work well enough to refine the user interface.

My assigned task was to redesign the browser front end to improve performance and to remove the random JavaScript errors while maintaining the same user interface. First I replaced the nested framesets with divs and iframes. Next I encapsulated the verity script for database searches into seperate files instead of spread out in the HTML and JavaScript files. To improve performance I used remote scripting, the precursor to AJAX, to return branch node children as JavaScript objects and trigger an HTML page onload event to insert new children node HTML after the parent branch node using the DOM without reloading the entire HTML page. Finally to maximize performance, when a branch was expanded I would get all the children of each of it's child branches as one search so that the child's branch children were preloaded before it was expanded. By preloading all the children at once with only a single database search, the browser tree would usually have the branch children ready for display faster than the user could expand the child branch.

These are an images of the advance search form and the DOM generated search results.