Overview
The project aims at extending the DrupalGapps (Google Apps Framework for Drupal) module by:
- Improving and adding more features to existing DrupalGapps API.
- Developing wrappers and applications (as modules) for Google's service-specific APIs by using the DrupalGapps API.
State of DrupalGapps Framework (module)
DrupalGapps Framework is a project that aims at seamlessly integrating Google Apps with Drupal.
DrupalGapps has two major components:
- DrupalGapps Core: the core consists of wrapper APIs. Each wrapper API is built by wrapping up individual Google Apps API. Currently, the core wrapps:
- Google Provisioning API
- Google Authentication API (via OAuth)
- DrupalGapps UI: this was developed by Stella using DrupalGapps API. It provides the user interface to manage Google Accounts.
The DrupalGapps module was written by Ankur Saxena (flyankur) as his project for Google Summer of Code 2009.
Currently, the DruaplGapps module is available for Drupal 6.
Development & The Way Forward
This project aims to take DrupalGapps in the following direction:
- Extension of DrupalGapps to seamlessly integrate Google Apps with Drupal.
- Integration of all the Google Apps Domain & Management APIs in the DrupalGapps Core.
- Providing appropriate API for the above integration so that further development on DrupalGapps could be done.
- Waiving off the need to open the actual Google Apps management interface for any sort of administration purpose and hence, making Google Apps completely available in Drupal.
- Development of modules to integrate Google Apps Application APIs to get Google Apps services working in Drupal.
Scope Of Work
- Integration of Domain Info & Management APIs into DrupalGapps Core to completely enable Drupal for Google Apps management and administration.
- Development of registration module for Drupal and Google Apps Account integration.
- Integration of Admin Settings API.
- Integration of Reporting API.
- Wrapper API and UI for Google Documents List API.
- Wrapper API and UI for Google Calendar Data API.
Description
Following are the goals of this project in detail:
- Feature addition to DrupalGapps Core:
- Registration Module
- The module will provide an application over DrupalGapps API which will add to Drupal’s current registration system by giving space for Google Apps account registration with Drupal user registration.
- This module will be very flexible, so as to accommodate the varying needs of administrators.
- The feature will come with appropriate UI for easy management.
- Usefulness:
- This can ease the process of Google Apps Deployment and user account creation via Drupal.
- Integration of Drupal and Google Apps account. This can also extend to Single Sign-On.
- This module will provide all the Google Apps Admin Panel features in Drupal:
- General Domain Settings like language settings, organization name, number of current users, appearance settings, etc.
- Administrator account settings management like changing secondary email address, retrieval of support PIN, etc.
- This will take DrupalGapps in the direction where complete Google Apps administration would become possible in Drupal.
- Can be very handy for administrators.
- This module will provide usage reports on your Google Apps Domain's hosted accounts.
- General reports like account reports, activity reports, disk space reports, etc. will be fetched and formatted for display.
- Further, if time is left, Reporting Visualization API can also be implemented.
- Can be very handy for administrators as on the basis of usage, administrators will be able to administer their Google Apps Domain via Drupal itself (as Admin Settings API will also be available in Drupal).
- Google Documents List API
- Retrieving lists of documents.
- Document searching according to selected criteria (document type, keywords, private/public/shared, folder-wise).
- Downloading and uploading documents.
- Other actions on documents like renaming, deletion, etc.
- Folder creation and deletion.
- Document and folder sharing.
- Integration with Views API.
- This module will be a separate module and will be dependent on DrupalGapps and Views.
- Google Docs like view and interface:
- This will be an implementation of the module which will be a part of the module. This has been chosen as this is the most general form in which Google Docs is used. This will make this module ready-for-use with least amount of work required by administrators to do to kickstart.
- Only for administrators.
- Would be used to turn on/off different features.
- Direct uploading of documents from Drupal to Google Docs. This will greatly reduce the storage space burden from the server by using the free file storage service provided by Google Docs. The file attached to a node will be linked to the file that user’s Google Docs account.
- Opening attached documents in a node in Google Docs directly.
- Filtering of only required data that will be retrieved from a particular Google Docs account will become easy. This will add amazing flexibility in terms of serving to various use cases.
- The aim would be to achieve the above mentioned task by integrating this module with Views API.
- Retrieve event entries from Google Calendars account.
- Add events.
- Update/delete events.
- Filtering events according to various criteria (like date range, month, year, text query)
- Sharing calendars.
- Complete Access Control management.
- Exporting calendars to specific formats.
- Integration with Drupal's Calendar module.
- Integration with Views API.
- This module will be a separate module and will be dependent on DrupalGapps, Views and Calendar.
- Google Calendar like view and interface:
- This will be an implementation of the module which will be a part of the module. This has been chosen as this is the most general form in which Google Calendars is used. This will make this module ready-for-use with least amount of work required by administrators to do to kickstart.
- Only for administrators.
- Would be used to turn on/off different features.
- Sharing of Google Calendars between different users in a domain via Drupal can prove to be a good use case. For example, in an organizations, a particular department can be responsible for making the annual calendar and so the people working in that department should have read/write/update access to the calendar whereas people working in other departments should only have viewing rights.
- Extraction of events and their respective information from the calendar into nodes can be very useful. This feature will be achieved by integrating this module with View API.
The registration module, Admin Settings API and Reporting API are going to be in DrupalGapps Core and Google Documents List API will be implemented as a separate module. Due to lack of time, other service-specific APIs will not be worked upon. But the Google Documents List API integration module will be developed and documented in such a way that it will help the community to develop for integrating other Google Apps service-specific with ease.
Check the following image to see the current state of DrupalGapps and what I wish to achieve by doing this project.
Use Cases
- Registration Module
- Synchronization of Drupal's User Registration (User Core Module) with Google Apps.
- Single Sign-On with Google Apps account (with Google Apps username and password and not with OpenID).
- With almost all the Google Apps control panel features available for administration, this module can be very useful for administrators.
- Managing general domain settings like language settings, organization info, administrator's account info, etc. would become very easy.
- Changing email routing settings, gateway settings and email migration settings using Drupal.
- Updating CNAME, MX Records settings using Drupal.
- With all this in place, why would an administrator need to access Google Apps interface again? Only when other APIs are not present in DrupalGapps Core and that will happen over the time as the community starts finding this piece of work useful.
- With Admin Settings API in place, Reporting API can be very useful.
- Reporting API will provide detailed reports on how a particular Google Apps Domain is being used by people. These reports are detailed and very informative for administrators. These reports retrieved from Google Apps will be in text format. However, in raw format all the data that is fetched from Google are Atom feeds. The wrapper API for Reporting API will provide so much flexibility such that (for example) a developer will also be able to write a new module to present reports in the form of graphs or other visual form.
- Attach docs, spreadsheets, PDFs, diagrams any type of file on your node. This will be very useful in cases of collaborative websites built on Drupal.
- Ability to open attached files in Drupal's node directly in Google Docs (similar to what Gmail does for viewing docs attached in emails). This would take Google Docs integration deeper and will give smoother experience. No doubt, Drupal will become the preferred CMS when Google Apps integration will be in question.
- Creating, deleting, retrieving, searching documents that match specific criteria or metadata will be very useful.
- Sharing of Google Docs according to Drupal's Groups and rules can be prove to be very useful as one wouldn't need to manage each and every file by manually logging in to Google Docs. Everything will be available in Drupal!
- Views – successful integration of Views API would prove to provide a lot of flexibility. One or more documents could be filtered and formatted and attached to any node/block in Drupal.
- Creating, deleting, retrieving, searching of events directly from Drupal can be a part of a lot of use cases, especially in case of collaboration platforms.
- Drupal websites, which already use Drupal's Calendar Module, will find it easy to migrate to DrupalGapps Calendar Module as this module will make use of Drupal's Calendar Module only to display Google Calendar's events.
- With complete access control management and calendar/event sharing features available, this module can earn a lot of interest from administrators managing collaboration platforms or websites for organization and corporate houses where only certain people have should have rights to read/write/update calendar events and everyone else must have permission to read only. Integrating this module with Drupal's Groups module will make management even more simpler.
The above mentioned are only a few use cases as example. There can be numerous use cases.
Profit to Drupal
Google Apps, now, is used by numerous businesses, educational institutes and organizations the world over. The numbers are increasing by the day and are running in millions. The community can expect many advantages out of this project:
- Drupal’s functionality will increase and could be put to many practical uses with Google Apps built over the Drupal API.
- Some organizations (like an NGO, universities for Learning Management Systems, some community libraries) are already using DrupalGapps for collaboration. With further development, these organizations will get motivated to use Drupal for integrating Google Apps for collaboration and can benefit and put to use many practically useful services offered by Google Apps.
- This development would also encourage the community to use Drupal when Google Apps is in question.
- No doubt Drupal will become one of the most famous and preferred CMS for using Google Apps for collaboration.
- Further, this project will will encourage the community to develop modules for integrating other Google Apps Services and widen the possibilities of what Drupal and Google Apps can together do.
Timeline
- Tasks before May 23, 2011
- Setup Google Apps Working Base.
- Study Google Data Protocol.
- Study Google Admin Settings API, Reporting API, Google Documents List API.
- Understand the Drupal Registration System.
- May 23, 2011 to May 30, 2011 – brainstorming, planning and deciding the integration methods to be used. The end-result will be a complete design and prototype to summarize the entire project.
- May 31, 2011 to July 8, 2011 – development of registration module and wrapper API for Admins Settings API. Development of UI for administration.
- July 9, 2011 to July 12, 2011 – testing, debugging and detailed documentation.
- July 15, 2011 to July 22, 2011 – development of wrapper API for Reporting API. Development of UI as well.
- July 23, 2011 to August 19, 2011 – development of wrapper API for Google Documents List API (including integration with Views API) and development of its application module i.e. Google Docs like view and interface and UI for administration. If time is left, begin work on developing wrapper API for Google Calendar Data API.
- August 18, 2011 to August 22, 2011 – final testing, debugging and detailed documentation.
Deliverables
- Registration Module. UI for administration.
- Wrapper API for Admin Settings API. UI for administration. This will be an extension of existing DrupalGapps Core.
- Wrapper API for Reporting API. UI for administration.. This will be an extension of existing DrupalGapps Core.
- Wrapper API for Google Documents List API. Application module with application interface similar for Google Docs' interface. UI for administration.
- Wrapper API for Google Calendar Data API (only if time is left).
Level of Difficulty
Medium
Mentors
Looking for mentors.
Motivation to do this project
I have been working on Drupal for last four months and have been using it to develop small projects for personal interests and friends. The community has been very instrumental in helping me learn and grow as a Drupal developer and with Google Summer of Code 2011 ahead, I think its time for me to contribute something back to the community.
I had designed an Object Oriented Model to implement Documents List API for searching, uploading, deleting and renaming files stored in Google Docs as a college project last year. Since it was a college project and there were restrictions like use of particular design patterns, object oriented programming, etc., I was not able to implement the idea for a practical use. With a module like DrupalGapps out there, I can, now, implement idea which could be put to a better and practical use. Besides this, the DrupalGapps module was written by Ankur Saxena, who is my senior and mentor in college. He has been a source of motivation for me to do this project and complete what he had started in Google Summer of Code 2009.
This project will extend the capabilities of the existing DrupalGapps module by using the existing framework and APIs and package Google service-specific modules with the DrupalGapps module, resulting in a complete package for Google Apps management and utilization in Drupal. The community has already benefited from the DrupalGapps module. As of last year, it was being used by an NGO for integration of Google Wave into their website, Learning Management Systems developed using Drupal, some community libraries, etc. After completion of this project, the community and organizations world over will be further motivated to use Drupal as the CMS when Google Apps integration is in question.
About Me
I am Vaidik Kapoor and I am currently pursuing B. Tech. in Computer Science Engineering from JIIT, Noida, India. I am an active member of the Open Source Community in my college and city. I have been taking part in many open source meet ups and events (including Drupal's) in and around the city I live in. I like programming and web development. In my free time, I write utility scripts. I, with three friends, formed a group of freelancers called INK Liquid Designing a year back. I did some web development and design projects with INK. While I worked on these projects, I used a lot of open source technologies like Wordpress, PHP, etc and recently I shifted to Drupal. All the associated communities have helped me immensely and that's why I think that it is time I should contribute back. I blog at www.vaidikkapoor.info.
Email: kapoor.vaidik@gmail.com

Comments
Focus
I'd like to see a clear declaration of the goal here. You appear to be wanting to cover just about everything, but that is not very feasible even for a student more familiar with Drupal development. You should step back and identify two things:
If you do both of the things above, you'll be in a better position to get serious mentor interest and the possibility of being selected.
@rwohleb: I think I have
@rwohleb:
I think I have written too much in the discussion post and therefore, I have made it a little confusing on my part as far as my focus is concerned.
My main focus with this project is to extend DrupalGapps to enable it for complete Google Service-Specific API integration. Now what I mean by that is that even if I don't integrate all Google's Service Specific APIs, someone else should be able to do that with ease and the need to change DrupalGapps API should not arise.
Therefore, my primary aim is to make only those feature additions to DrupalGapps so that important things like admin settings, domain management, etc. are available (please note that authentication and user registration already exists). With addition to this, I'd like to properly sync the Drupal's User Registration and management with Google Apps Accounts.
Since I mentioned that Google Service-Specific API integration should be done using DrupalGapps API, I would like to demonstrate this by integrating at least one important Google's Service-Specific API like Google Docs or Google Calendar. And if time is left, then both. But, I guess I wouldn't be left with much time for completing both of them.
So, the main focus is:
1. Feature additions to DrupalGapps for easy Google Apps Service-Specific API (like Google Docs, Gmail Feeds, etc.) integration later on.
2. One important Google Apps Service-Specific API integration for demonstration of Google's Service-Specific API integration.
Vaidik Kapoor
D7 and API updates
I think it would be a good idea to target updating the existing modules to Drupal 7. In addition to the Drupal API changes, there have been further developments on the Google Apps APIs. It would probaby be a good idea to take a step back and see if the assumptions made in the original module code is still valid.
@rwohleb: Porting to Drupal 7
@rwohleb:
Porting to Drupal 7 is in my mind as well. I have not included it in my discussion because prior to posting my idea in the group, i had a brief discussion about it with flyankur (the guy who started DrupalGapps). And he has taken the responsibility of porting DrupalGapps to Drupal 7. I have taken the joint responsibility with flyankur.
Also, only Provisioning API v2.0 and OAuth have been implemented in DrupalGapps. Even today only Google Apps Provisioning API v2.0 is available. So there is not much of work in here.
Vaidik Kapoor
I've discussed all of the
I've discussed all of the Google Apps stuff with flyankur previously so it's good that you are working with him on it.
I haven't seen any oauth work done in the drupalgapps module. Has this work been done outside of the Drupal code repository?
Super interested
I would love to talk with you about this more, I'm glad to see you refine the scope of your proposal. I'm going to contact a mentor I think would be perfect for this project and see what he thinks.
@rwohleb: Yeah I am in touch
@rwohleb:
Yeah I am in touch with flyankur on this. We live in the same city and he was in my college.
Authentication using OAuth was implemented in the DrupalGapps module. Google Apps now offers two different types of OAuth Authentication methods i.e. the 2-legged OAuth and the 3-legged OAuth. The one that DrupalGapps has is the 3-legged OAuth.
@KeVroN:
Sure! I am waiting for more suggestions! :)
Vaidik Kapoor
Subscribing.
Subscribing.
--James
Porting DrupalGapps to D7 & integration of OAuth & Docs List API
Hi Guys!
After discussing the idea on the IRC channel and after considering all the comments and suggestions, I have redefined the scope of my project.
The new project proposal goes as follows:
Overview
The project aims at extending the DrupalGapps (Google Apps Framework for Drupal) module by:
Development & The Way Forward
This project aims to take DrupalGapps in the following direction:
Scope Of Work
Description
Following are the goals of this project in detail:
The registration module are going to be in DrupalGapps Core and Google Documents List API will be implemented as a separate module. Due to lack of time, other service-specific APIs will not be worked upon. But the Google Documents List API integration module will be developed and documented in such a way that it will help the community to develop for integrating other Google Apps service-specific with ease.
Use Cases
There can be numerous use cases. The OAuth and the registration module are going to be in DrupalGapps Core and Google Documents List API will be implemented as a separate module. Due to lack of time, other service-specific APIs will not be worked upon. But the Google Documents List API integration module will be developed and documented in such a way that it will help the community to develop for integrating other Google Apps service-specific with ease.
Timeline
Deliverables
Vaidik Kapoor
Please review!
Hi Guys!
Above is the latest project proposal. Please review and suggest modifications if necessary!
Thanks!
Vaidik Kapoor
Sign me in as mentor
Sign me in as mentor
Regarding using the OAuth
Regarding using the OAuth module and it not being available for Drupal 7 - it will be available once this projects starts. I will get to it very soon.
Regarding registration and authentication through OAuth I think you can make use of a soon released version of http://drupal.org/project/oauthconnector
I'd be happy to help where help is needed. My modules shouldn't stop you from achieving what you want to achieve.
I'm interested...
I would love to be part of this. I'm not sure if I have the experience with this module to be a full-fledged mentor, but I would be willing to help out with code review, et al.
Let me know if you need anything.
Learn more at iRolo.net.
Thanks ! And apologies for
Thanks !
And apologies for the late reply. I had been a little busy with college and otherwise as well. I was attending the GNOME.Asia Summit for celebrating GNOME 3.0 launch.
Would there be any specific feature/idea, apart from what I have included in my proposal, that you would like to see in this project? Any suggestions?
Vaidik Kapoor
You should really post your
You should really post your proposal to melange asap.
Demo Site Set Up
Hi Guys!
I have setup a demo site to just give you a hint as to what I want to achieve by doing this project. The demo site can be accessed at http://drupalgapps.vaidikkapoor.info/
The demo site demonstrates the Google Docs module. If the user provides his/her google account email address and password, then a list of all the documents from that account's google docs is retrieved, and displayed. Obviously, what I have displayed on the demo site is a very small part of what I want to achieve. And in actuality, this wouldn't exactly function like this.
I have completed this in a very short span of time as I have some college submissions because the semester is going to end in a month. Therefore, I had been very busy with that. Since I did this very quickly, I might have left bugs (in fact I am pretty sure I have). I'll definitely rectify those.
Also, I assure that I am not storing any user account information or passwords of those people who have tried the demo or are going to try the demo. So please feel safe and go ahead to check this out.
Your comments are valuable. So please discuss as to what extra should I do. I need to know what the community expects from this project.
Vaidik Kapoor
My GSoC Application on Melange
Here is the link to my application for GSoC 2011 on melange:
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/vaidik/1
Vaidik Kapoor
This proposal is looking
This proposal is looking pretty good.
My only thoughts on this are around the oauth and connector modules. Ideally the 7.x branch of oauth will be up and working enough for integration testing as this would be the ideal route. There's no reason to duplicate work if you don't have to, but the oauth upgrade has been going slower than I expected.
It would also be great if you could work with voxpelli around his work on the connector modules. Allow users to login with their GApps credentials through a set of existing contrib modules would be ideal. This would make it easier to mix logins between GApps, Facebook, etc.
I've requested mentorship in melange so that I can help give feedback there.
@rwohleb: Thanks! I spoke
@rwohleb:
Thanks!
I spoke with voxpelli about the OAuth module. He said that in two weeks the module will be available for use in DrupalGapps. Considering the GSoC timeline, students have to begin coding from May 23 according to which voxpelli has a lot of time to work on the module (I guess). Obviously the sooner the better as I would get time before the coding period begins to study everything. Also, voxpelli suggested me to take a look at the Google OAuth Connector project (http://drupal.org/sandbox/ramos/1118412). This looks very interesting. But again, all the work that has been done here is for 6.x.
Vaidik Kapoor
What is the state of development for Drupal and Google Apps SSO?
I am interested to know if this initiative is being used. Can someone share their production case story?
ServanTek
Serving with technology
http://servantek.org.ua