About the Moodle Portfolio activity tool
The Portfolio activity Moodle 2 module (source code) is a key part of the portfolio toolkit offering at the Open University. The module helps module teams to deliver structured material to a student’s portfolio; files/folders either on their desktop pc or stored in the cloud using Google Docs.
The tool supports two ‘modes’:
- Scaffold – a collection of folders and files that can be pushed to the portfolio
- Template – A series of items (including user generated) that are collated into a document.
The tool supports two export formats:
- File (rtf document) and Zip (when exporting multiple files)
- Google Docs – can be optionally targeted to a specific Google Apps domain.
Availability of export options to the end user can be configured at a site-wide level and per-activity.
Both ‘modes’ and exports utilise the Moodle sub-plugin architecture, so extra functionality can be developed independently as required.
When in scaffold mode the activity enables the exporting of the scaffold folders and files to the student’s portfolio. Scaffolds are created by course administrators using the Moodle file form control and can contain folders, sub-folders and files of any type that are supported by Google Docs for conversion to its native format. Scaffolds reside at the course level so can be re-used across any number of portfolio activities. Scaffolds can also be integrated into template mode portfolio activities; in these instances the scaffold has the template document added into it before export.
When exporting to Google docs the structure of the scaffold is represented using collections (‘tagged’ folders). A new collection is added on every export; this can be shared with a tutor/mentor for review or be exported for assessment submission.
When in template mode the user is lead through the activity, filling in entries in the template, culminating in the export of a document that is added to their portfolio. Templates are created by course administrators using the designer interface accessed from the activity. Templates are structured using pages; each page contains and number of items. Items are typically either instructional text or some kind of user entry form field such as text entry or checkbox. Templates reside at the course level and can be reused across any number of portfolio activities.
Template activities and items are highly configurable, allowing for complex functionality; for example, your template could generate a three page document but its creation by the end user could be split over three activities, each concerned with a separate page.
Creation of this module was quite a substantial development and along the way there were a number of challenges that were needed to be overcome.
Firstly, most of the required interactions with Google Docs were not supported in the Moodle libraries. In this development we added some extra features within our module (https://github.com/JISC-DOULS/moodle-mod_portfolioact/blob/master/save/google/lib.php) that work with collections and utilise the resumable file upload feature of the Google Docs API. It would be possible to extract many of these and add them to the core libraries in the future.
Secondly, the complexities of the requirements around reuse of templates across a course caused issues – specifically with the back and restore process. In most activities within Moodle the data is associated solely with a specific instance of the activity; in the Portfolio Activity the template (and potentially user) data is associated with the course. The backup and restore process works at an individual activity level (so whilst backing up a course each activity is processed in isolation) and so there was a need to be wary of duplication e.g. if a template is reused across three activities that are being backed up the template should only be stored once, not three times. In order to overcome this issue checks had to be put into the restore process in the module to ensure that any template was only processed once per process.