Demonstration app

Don't tell me about your skills, prove it!

This web app is a prototype that I built from scratch for a recent project. Its an education communications tool to enable a student and a mentor in separate locations to discuss the results of a learning aptitude test. Both can make public and private records of their conversation in relation to the concepts of the learning test.

Login and have a play

username: demo    password: demo

 
Login

Techniques used

Object oriented php

The app was written for Typo3 - a fully object oriented php5 based content management framework. 

A key design requirement was that the end product could be easily ported to other web delivery platforms. This was achieved by dividing the application into multiple classes chained together through a common interface class, which translated general data calls into platform specific formats. All layout formatting is done via an integrated instance of the Smarty templating engine.

Thus porting to a different platform should require only that the interface class is rewritten, not the whole application.

jQuery

jQuery is used extensively in the application. Some open source ready made plugins are used, with lots of additional custom functionality.

The chart values can be manipulated in real time the use of sliders. These are jQueryUI components that modify a JSON data model in the DOM. The chart is based on the OpenFlashChart2 library that renders mutlitple chart types at the browser based upon the JSON data model.

Ajax

The app enables real time communication between a student and a mentor at different locations. Actions made by either party can be private or public. Public actions are made visible straight away to the other party.

This is done via a looping ajax call, which queries data from a public api.

Reusable code design

Throughout, the project involved use of open source components wherever possible, stitched together to make the whole app. The concept was that all parts of the app could be reused in different contexts and easily ported to other php based delivery platforms such as Moodle or other virtual learning environments.