Case Study: eStage 1
Engineers Australia is the peak body for the engineering profession in Australia. Part of its role includes management and assessment of overseas workers wishing to migrate to Australia to work in the Engineering Sector.
Since Engineers Australia started this process, it has been a paper based process, with applicants from all over the world having to collate a large packet of copied and original documents (sometimes upwards of 45 leafs of paper) and send them to the Australian office where they would be assessed by hand and the paper applications stored in large archival facilities.
In late 2013, OPC IT was contracted by Engineers Australia to work with a third party Oracle Database Management company to help bring this process into a paperless 21st century.
Why Drupal was chosen
Drupal was chosen as the project was only one component of an entire corporate process redevelopment, and would have to sit as a standalone module inside an existing Drupal 7 website that already had some redeveloped components live.
While Drupal would be used for the front-end, all data relating to the applications and assessments would be held inside Engineers Australia’s own Corporate Database running Oracle.
Because of this, a third party company was brought on to develop the middleware services and database services that would underpin the Drupal interface.
Project goals, requirements and outcome
The main goal of the project was to migrate the entirely paper based application and assessment process into an online digital process. This would make not only the application and assessment process easier for all involved, but also massively reduce the costs associated with archival and storage of applications, of which they receive around 20,000 a year.
One of the main requirements was to be able to store all the application data in the existing Oracle Corporate Database as well as run the workflow itself (application, submission, assessment, outcome, etc…) via the Oracle Human Workflow system. This required working closely with a company specialising in Oracle Middleware and Data services.
However, since it was only the application information being stored in Oracle, not the Drupal based database, it wasn’t as ‘simple’ as changing the Drupal Database from SQL or Oracle. Instead we had to make extensive use of the Drupal Form API to create upwards of thirty custom forms for the applicants and assessors to use, with each form including at least one service call to the Oracle Database via the WSClient module in Drupal.
Since the site launched late in 2014, the system has been under a huge load from the applicants and is performing incredibly well. As with any large and complex development, a number of small issues have been raised by both applicants and assessors in the weeks since launch.
These issues have mainly been reported as edge cases due to the complexity of the build and OPC has had an on-site resource to manage these issues in the post-launch period.
Key components that were used
The two key components that were used were:
Why these components were chosen
The Drupal Form API was the bedrock for the entire project, as we were tasked with creating a large number of custom forms for the applicants and assessors.
By using the Form API rather than HTML and PHP form elements, we were able to quickly create large complex forms in a small team by using the same set of standard elements.
This also allowed us to very quickly access the output of these fields in the form submit functions in order to pass them to our Oracle Middleware.
The Web Service Client module had to be extended by OPC in order to conform to the SOAP and XML requirements set by the Oracle Middleware.
After this customisation which was easily added due to WSClients own in-built flexibility, the module proved extremely useful as it converts the XML that is used to communicate with the Oracle Middleware into a much more useable PHP array.
Additionally we found its API to be very easy to use, with single line commands being able to setup and execute complex Middleware requests.