Announcing Certify!

A module we've (that is Håvard) been working on for a long time is now ready for release to the community! We called it Certify, it is mighty fine, and this is what it does:
Certify will let you add a certificate to a course. The certificate can contain one or more tests, and when a user has reached the pass score / pass percent for the test(s) bundled in the certificate, the user is allowed to download a pdf certificate.
Before the user has reaced the pass score he or she will see a progress bar under the "Certificates" tab, showing how far he or she is on the way to obtaining the certificate.
An instructor (or privileged user) can manage certificates, which means adding them, adding tests to them, and see student status for a given certificate.
Pictures are however more telling than words.
Here is certify for a student
This shows the certificate name, a description, and a progress bar showing how far the student is in obtaining the pass scores for the 8 tests in this course.
In the picture above I am 21% on my way to obtain the pass percent of 80% in all the 8 tests this certificate consist of.
In the picture below I have reached pass percent for all tests in this certificate. The certificate status is then 100%, and I am allowed to downdload a pdf certificate.

A certificate template can be created and uploaded by the instructor. If not a standard certificate is used (taken from the other Atutor Certificates module by Cindy).
Here's a screenshot of the certificate I got from the link above:

Yes, it is sweet!
Certify for an instructor
Here we are at manage -> certify, which shows the certificates in this course (there can be several certificates per course, allthough I imagine most people will only use one).

If we click on the "edit tests" button we get this:

This shows a list of all the tests that are found in this course, and lets you add as many of them as you wish to the certificate. Note that these tests must have a pass score or pass percent set. Also note that Certify only acts as a container. The pass scores or pass percents must be set in the tests themselves, and certify will only do the calculation for you.
The next screenshot shows what you will see when you click the "Student status" button:

..a sorted list of the students results. Note that certify only cares about the best result a student has in a test. That means a student can improve his score in a test (where more takes are allowed), but not the other way around.
That is pretty much it! We are using it in production today, and you can have a look at it in action if you register for the Medical Peace Work course
We have found it to be stable for production use, but there are still some bugs, minor issues and areas for improvement left in it, mainly for admins of it:
- You can upload a pdf template for each certificate, but there is no way to see which template you are using just yet, and
- If you upload a new template you will have to manually delete the old one form the server, as well as any cached files (named typically cert*.pdf (where * is a wildcard). The files are found within the ATutor content folder, in the "certify" folder.
- You will need pdftk installed at your (Linux) server! A server admin must typically do this.
- And you must manually set the path to pdftk in line 100 in download_certificate.php. Here's the line:
$exec = '/usr/bin/pdftk '.$template.' fill_form '.$filename.' output '.$filebase.'pdf flatten';, as you can see here our path to pdftk is"/usr/bin/pdftk ". - There are some tweaks that should be done in the GUI as a radio button isn't selected if you click the table row it belongs to. You will have to hit the actual button!
- And probably some more too
We're adding it here first, and at atutor.ca in a few days - get it while it's hot, give it a go, and give us feedback!
Comments
Certify testing
July 7, 2009 - 21:14 — GregGay (not verified)Here's my initial comments:
-Needs zipped in its own directory
-Missing language for "certify_certificates, certify_add_certificate"
-module.sql has lots of windows invisible end of line characters which will break on lots of systems.
-needs a readme file.
-I was able to take a test and fail it, and still receive credit toward the certificate. Should credit be based on pass score when one is available. (I had set a pass score of 85%).... I see now though, that I did not receive enough credit to receive the certificate after completing the other tests associated with it. Only after a pass score did the link to the certificate appear. This is good. keep this, but document.
-Clicking on the Download Certificate link failed the first time. It appears it is relying on pretty url being turned on, which was off on the server I was testing on. After turning on pretty url, I was able to download.
-What was downloaded is a set of error messages, rather than the pdf. If you look at the download_certificate.php file, it appears to be looking for the test.pdf file as the template. I tried it, the default, and my own custom one and got the same error result.
Warning: filesize() [function.filesize]: stat failed for /usr/webserver/content/acatutor/docs/content/certify/cert_1_1.pdf in /usr/webserver/content/acatutor/docs/mods/certify/download_certificate.php on line 114
Warning: Cannot modify header information - headers already sent by (output started at /usr/webserver/content/acatutor/docs/mods/certify/download_certificate.php:114) in /usr/webserver/content/acatutor/docs/mods/certify/download_certificate.php on line 114
Warning: readfile(/usr/webserver/content/acatutor/docs/content/certify/cert_1_1.pdf) [function.readfile]: failed to open stream: No such file or directory in /usr/webserver/content/acatutor/docs/mods/certify/download_certificate.php on line 117
-Here's the output from the fdf file. it seems its looking for a hard code link to the test.pdf file.
%FDF-1.2
%\342\343\317\323
1 0 obj
<<
/FDF << /Fields [ <><><g.gay@utoronto.ca)>><><><>]
/F (http://www.helsekompetanse.no/test.pdf) /ID [ <07ca653f391fc024aa8a5302a2f38d43>
] >>
>>
endobj
trailer
<<
/Root 1 0 R
>>
%%EOF
-Appears it will only work on Linux, using pdftk (ok, but document)
-Missing id/for values for certificates listed in instructors certificate list.
I'll give it another go, when its been touched up a bit.
I can see this version of the certificate module is going to be much more useful than the other one test version.
Second iternation
July 14, 2009 - 14:48 — Håvard PedersenNeeds zipped in its own directory
Done!
Missing language for "certify_certificates, certify_add_certificate"
Done!
module.sql has lots of windows invisible end of line characters which will break on lots of systems.
Done, though I know of no platforms in which PHP shouldn't be able to parse this.
needs a readme file.
Done!
I was able to take a test and fail it, and still receive credit toward the certificate. Should credit be based on pass score when one is available. (I had set a pass score of 85%).... I see now though, that I did not receive enough credit to receive the certificate after completing the other tests associated with it. Only after a pass score did the link to the certificate appear. This is good. keep this, but document.
Documented in the readme.
Clicking on the Download Certificate link failed the first time. It appears it is relying on pretty url being turned on, which was off on the server I was testing on. After turning on pretty url, I was able to download.
url_rewrite() applied. :)
What was downloaded is a set of error messages, rather than the pdf. If you look at the download_certificate.php file, it appears to be looking for the test.pdf file as the template. I tried it, the default, and my own custom one and got the same error result.
I couldn't reproduce, but I suspect it might be because of lacking pdftk (or wrong path to it). Added better error reporting.
Here's the output from the fdf file. it seems its looking for a hard code link to the test.pdf file.
That link is actually only used if someone opens the FDF file in Adobe Acrobat or Adobe Acrobat Reader. But since the user never gets the FDF file, it doesn't really matter. Merging it serverside with pdftk overrides that link.
Appears it will only work on Linux, using pdftk (ok, but document)
Since this blog post was the documentation, it already is documented. :) It's now also in the readme.
Missing id/for values for certificates listed in instructors certificate list.
I don't understand this. Why would the instructor need the id number?
Fixed version uploaded. :)
More comments on Certify...
July 16, 2009 - 16:00 — gregI can't actually test the module yet. Still no luck getting pdftk installed.
A few notes though:
1. Format the create certificate form with the standard box found around other form of this nature. It helps it look like an integrated feature, rather than an addon, if the forms look like all the others.
2. Clean the __MACOSX from the module.
3. Clean the hello world demo code out of the module files.
4. Number iterations of the module filename with a version number. Development version .1, .2 etc. with a final version 1.0 etc.
5. by "id/for" I mean they are empty in the label elements and their associated input element (radio button). They are needed to create a proper association between labels and form fields, and for accessibility purposes.
I'll comment again once I get pdftk working. I'm hoping it not this troublesome on all system. We use Gentoo Linux, and it is giving us a very hard time.
I wonder if perhaps there is another option for a pdf generator, perhaps something platform independent? Have you looked at any other possible OS libraries for creating PDFs? I'm not sure, but maybe the PDF Converter module has an answer. It seems to have its own builtin PDF generator.
Post new comment