Drupal as a front-end for Google Drive
Out of the box, cloud storage services are not all that useful when you need to collaborate on documents in a organizational context. Most services do a pretty good job for individual use but fall short when you need to manage a complex set of projects. In this post I explain how we are using Drupal as a front-end for Google Drive and how this allows us to better organize our project documentation and create tailor-made workflows that fit our company processes.
So far we've been using a combination of a Google Docs Spreadsheet (for overview and tracking) and Dropbox to store and share our official company documents: contracts, purchase orders, offers, invoices. It's great that all documents get synched to a local folder but there are some serious limitations to this approach:
- it's difficult to reference documents e.g. when you are asking a colleague for feedback.
- It is also rather painful to keep track if all conditions are met for a project to move to a next stage (e.g. upfront received, …)
- The biggest problem however is that you are depending on scripted behavior from people to ensure the system works and people forget and make mistakes.
Ideally we would combine the ease of sharing documents of one of the cloud storage platforms with a secondary tool for keeping overview and tracking workflows. That's when we thought about doing this with Drupal, Drupal is a very versatile tool and can easily be used to:
- create and manage workflows
- create and check overviews
- standardize the way people interact with a series of content nodes
For cloud storage we decided to use Google Drive:
- it's really easy to share a URL to a document
- Google Drive checks access permissions even if you have the link to a document
- Since the introduction of Google Drive you can use it for any type of document
We looked around, but all the existing Google Drive/Docs integration module on drupal.org had too much hardwired business logic to be useful for us. So we built a very minimal integration that:
- Lets you create an account with your Google account through oath
- Creates an unpublished Drupal node authored by the creator of the google drive object each time a document is added/created in Google Drive (we are using nodes and not entities because we currently only need node functionality and this was faster to implement)
- Has a link to the document in this node
- Has an overview of all your unpublished documents, so that you can review which ones you want to add to the CMS and so that you can classify it (e.g. organic groups, key words, flags,…)
By separating the business logic from the import module it becomes much easier to adjust workflows or even prototype new workflows on the fly. I've recorded a short demo movie that shows the module in action: