Online Training System in PHP

php2.gif
Online Training System in PHP

Bespoke PHP for a website delivering online training, with videos and interactive tests. This was a significant overhaul of software written previously, which had not been left in the best condition. My task was to find and fix some of the largest loopholes, and add the most urgent features, so that the product could return to the market after an absence.


When I inherited the system, the basic architecture was fairly satisfactory, despite not being built on a recognised framework or technology.  It had clearly been re-worked by several previous developers and styles, revealing some fragmentation.

  • For example, two different database abstraction layers were in use, which was redundant. 
  • And the database account username and password was specified identically in seven different files, making it an irritation to move the software to any other host. 
  • There were many missed opportunities for CSS styles, so that some pages showed in Times font, others in Arial or Verdana.
  • Identical code fragments were moved into one re-useable function, for example, to achieve a common presentation of page header

I addressed these and many other lower-level issues to improve the general engineering aspects. As for functionality, the biggest failing was in the administration:

  • I added or improved reports,
  • I allowed the browsing and editing of course content, both using a JQuery TreeView, and by a chain of dropdowns connected by JQuery 
  • Enabled searching for trainees or managers and improved editing of these records
  • Created CSV and XML import and export of records
  • User-friendly improvements to the video player (resizeable and buttons to move to other content)
  • Created utilities to help administrators prepare subdomains for new clients, a backup system and symlinks for sharing content
  • Prepared a Wiki for help text
  • and many other features

Trainer fragment

 Trainer fragmentTrainer fragment

PHP, Training, JQuery
Date: 2012

Top of page