Certificate Generation Module
Planning Document
Purpose
The motivation behind this module is the underlying need for printable certificates that can be generated based on successful completion of a Quiz Module generated Quiz.
Use Cases/Scenarios- A professor requests that all of their students access an online resource to complete a specific quiz and provide verification of completion. Students would login to the Drupal powered site, take a Quiz Module powered quiz, and then be presented (via this module) with a certificate that could be printed.
- A professor is presented with a paper certificate from a student with a Name, Course Name, and Date on it; along with a numeric hash code. This professor should be able to login to the Drupal powered site and ask it if this is a valid certificate by providing the hashcode and other data. Certificate verification such as this could be performed by any user.
- A student completes a course, but does not print the certificate at the time of completion. This student logs back into the site at a later date and can generate and print the certificate then.
Module Prerequisites- Drupal 6.x
- Quiz Module 3.x or 4.x
- (optional) PDF rendering modules
General Requirements- Easily display certificate to user post course completion and provide easy mechanisms for printing
- Automatically email certificate on completion of quiz
- Ability to generate certificates at a later date
- Generate certificate in HTML so that site designers can implement their delivery mechanism of choice.. for ex, conversion to PDF
Advanced Requirements
- Customizable templates to allow for specific courses to have different certificates
- User can e-mail certificate to an alternate address (think: airline reservation, it automatically emails to the person that placed the reservation and usually provides fields to email the itinerary to others)
Really Advanced Requirements (not currently planned for development)- Support advanced certificate criteria, for example only generate certificate if three courses are complete. Or some other scenario of events.
- Conditional certificate generation.
- Progress reports (similar to certificates, corresponding to transcripts in real world example)
- Progress bars (in blocks)
- complex certificates with graphics, CSS sheets, JS, etc.
Implementation- Certificate Content Type
- body - the certificate HTML would go here. With tokens to replace items like Course Name, Submission Date, User Name, etc. Any graphics or fancy CSS would need to be served externally and linked to.
- title
- email to user? (yes/no)
- email to creator of the certificate? (yes/no)
- Additional parties to email (text entry)
- display to user on completion of quiz? (yes/no)
- Table to maintain relationship between certificate and quizzes (which certificate relates to which quiz/quizzes)
- Extracts details from Quiz module and creates the certificate instances from the certificate node (which is a template holder)
- Optional settings (fill here)
- Integrate with PDF engines so that certificates could be displayed and delivered as PDFs
- Template management
- New certificate templates created as new nodes.
- HTML to generate the template is stored in the node body.
- Tokens to replace common strings needed for the cert
- No native support for graphics or external CSS sheets. Instead CSS could be included inline. Graphics or external CSS sheets could be linked to from another server, or a publicly accessible directory on the current server - this seems reasonable, which means in future we could allow the references to attached files.
- Part of the above mentioned module
- Quiz module integration
- On completion of quiz generate certificate
- Provide link to the certificate in results page