About the Google Collaborative activity
The Google Collaborative activity is a Moodle 2 module (source code) that enables the sharing of a centrally managed Google document with Moodle course groups. This activity acts in a similar manner to a Moodle wiki – the system creates/controls the document whilst giving the correct level of access to users who can interact with it and add content as they wish. Google documents offer feature-rich collaboration and the activity supports standard documents, spreadsheets and presentations.
Using this activity has a number of advantages over a tutor/teacher manually sharing a document directly with the cohort:
- The document is shared from a central account and all sharing is handled by Moodle. It isn’t then an issue if the tutor becomes unavailable to manage the document.
- A read-only document is shown to users who do not have access to Google docs.
This activity requires an account in a Google Apps domain with OAuth API access enabled. Documents are created by the activity in this account and then are shared with the Moodle cohort. The document is shared with each user on access to the activity, sharing can be configured to use either the username @ google domain name or the email address associated with the Moodle user.
At The Open University we are using this activity in conjunction with a replication of course groups within our Google Apps domain. The activity shares the document with the correct Google group of users rather than the individual user; these groups are updated daily automatically using the Google Apps provisioning API (this is managed externally to our Moodle installation). This functionality could be replicated in other institutions with a small amount of code customisation in the module.
Our Google Apps domain also uses a single-sign-on mechanism – so VLE users can directly access Google docs without needing to sign-in independently.
Users who do not have Google Apps account or are not able to access the Google doc (but should still be able to see it e.g. administrators) will see a read-only version of the document. This is either an html file (doc/spreadsheet) or pdf (presentation) that is downloaded using the Google Docs API cached within the VLE, and then displayed in an iframe.
The module supports the standard Moodle group activity model:
- No group – All enrolled users access a single document.
- Separate groups – A document for each group available, users can only access documents for the group(s) they belong to.
- Visible groups – A document for each group available, users can access all documents but will see a read-only version for any group they are not a member of.
The activity provides a number of features for administrative users:
- Template documents – An initial template document (doc/spreadsheet/presentation) can be uploaded to be used as the contents of the Google document when created. This can be one template for all groups or a separate document for a specified group.
- Document reset – documents in the activity can be ‘reset’ – clearing all content and reverting to template/blank.
- Sharing control – The sharing list for each Google document can be accessed from the administrative interface in the VLE and modified.
Technical challenges
Connecting to a Google Apps domain and interacting with another user account requires authentication using (2-legged) OAuth; for this activity an open source OAuth library was used to authenticate the API requests (http://oauth.googlecode.com/svn/code/php/).
The Google Document is displayed to the user within an iframe in the VLE. This is not without its problems as within some browsers (mainly Internet Explorer) the document will not always display. To overcome this there is a hyperlink to the Google document always displayed alongside the iframe, so if any issues are experienced it can be accessed directly by the user. Google presentations will not display in an iframe at all (they explicitly deny access in the page header) so presentations will always display as read-only within the VLE and must be edited by the user within Google Docs in a separate tab/window.
Giving the activity access to the Google Docs domain raises issues of user content access. The API can access all accounts on the domain and there is no mechanism to restrict it to certain accounts (even though the activity only needs to access the one account). To prevent the access credentials (key and password) being exposed to VLE developers and administrators at the OU these credentials are obtained from a secured web service that can only be accessed by the live servers.



