Many companies want to have a way to train their staff. It can be difficult to track down who trained on what document.
The training matrix implementation gives an administrator a way to create training documents on their website (i.e. training pages). Then the training matrix plugin tracks which employee trained on which document on what date.
By default we assume that the page itself is the document, although the training matrix implementation allows for attachments to be created. In that case we can at least force the employee to download the document to make sure they have a copy (whether they train on it is a different matter!)
Once the page is read, the employee can click on the "Done" button appearing at the bottom of the page. That saves the training session information in the database which can later be verified by an administrator.
The training pages and the employees can be tagged in order to create groups. In other words, an employee with tags Accounting, Audit, and Payroll will have to train on all the documents (pages) that were assigned one or more of the Accounting, Audit, and Payroll tags.
The training can also include tests using forms created with the Editor feature [core]. These tests can either ask questions and expect the employees to enter a blurp as an answer or include 3 or 4 possible answers (radio buttons). In this case the system can also track a score. It may also force a person to re-train if the score is too low.
A user may need to pass such a written test every now and then. If so, a training page can be marked with a given frequency (i.e. how often the employee needs to retrain.)
Assuming employees have to use the system (i.e. have to log in once in a while), training can be made mandatory so when someone logs in and some training was not taken and the due date is fast approaching, the training plugin can require the user to do ones training before moving forward.
Training pages can be marked as "Obsolete" (no need to train on those anymore)
Training pages need to support an ISO like number. For example, the number could include 4 fields as in X-YYY-ZZ/VVV:
X - company department
YYY - document number
ZZ - type of document / how the document gets used
VVV - document version
(For the version, one can use our branch and revision mechanism already available in Snap! Core)
The employee, especially new employees who need to train on many different docuements in a row, can use the Wizard Method which gives them a way to click the "Done" button of a page and automatically be sent to the next training document. For that purpose, the administrators who manage the training documents should be given a way to easily sort the documents in a logical way (by default it would probably be sorted by date, ISO number, or alphabetical order using the page title which is probably not what the employees would find as logical or practical to learn things--the employee may need to read document A before document B because B makes references to information contained in document A.)
As an extension, the system can generate various documents to show who has trained on what (i.e. training matrices). These could be CSV files, or a PDF tables, or even just an HTML table, depending on the system of the data (i.e. a company with thousands of employees would probably not want to see the HTML version).
There should be search capabilities to see who has not trained in time, who has not train on a certain document, etc.
Snap! Websites
An Open Source CMS System in C++