Check out my application at Appspot : http://socghop.appspot.com/student_proposal/show/google/gsoc2009/ankur/t123878370958
The Project aims to build a package of modules to Completely integrate Google Apps with Drupal. The project aim to build :
- Google Apps user Management in Drupal.
- Enhanced Integration of Google Apps ( Gmail, Google Calendar, Google docs, Google Spreadsheet, Google Form ( part of spreadsheet ) )
Description : Google Apps integration in Drupal
My Goal is to make a package of modules , to Integrate Google Apps in a manner , which increases the functionality and simplifies the ease of management of Drupal , concerning the organization who are using drupal and Google apps , or may Use in Future. My aim comprises of 2 sub goals :
- Google Apps User Account management : This part aims to Provide an easy and flexible management of Google Apps account from drupal. All the user account management is done using Google Provisioning API v2 .
- User Accounts
- Add User Account
- User Account can be added by Uploading an Spreadsheet of First name, Last name, and Random password.
- Ldap Integration : An Extension module of Ldap module , If user details ( First name , last name and secondry email) can be retrieved from LDAP structure .
- The normal way : User can himself Enter Details and Fill in Desired Email-ID, while registering.
- Delete User Account : Admin can Delete User who are members of a Google App Group mapped to his role in Drupal.
- Update User Account Details
- Retrieve User Account Details
- Nick Names
- Add Nicknames
- Delete Nicknames Account
- Update Nicknames Account
- Retrieve Nicknames Account Details
- Add Groups According to Roles : Groups of Google Apps mapped to roles in drupal. For eg. : while registering , if a Student registers and has a role student, and similarly teachers. the Google apps accounts could be groups into 2 type also , students and teachers, hence mapping Google apps account with drupal role.
- Delete Groups : Admin can delete group mapped to a role
- Update Groups
- Retrieve Groups Details
- Add Members to Groups based or role. Admin can also disable this Role mapping property.
- Block of List of Mails in inbox.( Semi-expandable preview of mail content, sender, date and time. Customizable from Admin page ) On opening mails from the block it-self, open the Inbox with the mail right there. ( user Does not need to Login in his Google Apps gmail Account seperatly , if SSO is On , Else the Apps gmail login will appears for authorization).
- To show "Read and unread" Or "unread" mails can be configured from Admin page.
- Block of List Of Google docs with document type display also.
- Create, Delete and Download any document from the block.
- Google Apps Docs homePage Link on the Profile page.
- Export The CSV / XLS format Result of Webform module to Google Spreadsheets. hence It is then be edited online, share and published too.
- List of Spreadsheet Already available in the Block as Above
- Block of Google Calendar. The Display can be administered based on features like, Agenga, month-wise, week-wise
- Manage the Calendar under a Google Apps account, or other that are always embedded. Keep a record of each embedded calendar and type of display it is currently. Change the calendar settings from admin page of module, without going back to Google calendar, and re-embedding with new code
- Embed an Event Publisher button for any event in Google Calendar. Its is similar to Skype's -> make a call <- button, which add a particular event to your calendar. ( in future , it this feature can be integrated with drupal events and drupal calendar ). Admin can Keep a track of all the event publisher button put on any page.
- Manage embedded Google Spreadsheet form, Presentation ( Google docs , PDF and not embeddable currently, though Published web page can embedded, which can be worked around in future ) in drupal . Insert Any where and keep a track of location of each form ( i.e. node ( URL ) , where it is embedded ). Directly Get the result of the webform downloaded from the admin page in form of spreadsheet , Or go to live spreadsheet Or go the respective presentation.
- Add an Upload i.e " Open as Google Docs " link just aside any attached file ( document, spreadsheet, presentation) . Drupal will check the size of attachment, just before requesting it for upload. Administrator can enable/disable this property. ( In future, admin could also set the "Open as google docs " functionality available specifically usable for a document type , or by a specific Drupal role . )
How i came up with this ? 5 months back I got an opportunity to make My University's ( JIITU ) Learning management system ( LMS ) . At the same time Google Apps was being implemented in University. The Aim was to make a tool which is much more than just an LMS. We wanted to make it a Learning and Collaboration platform for students and faculty. After lots of brainstorming sessions, project plan was to Use drupal and integrate brilliant features of Google Docs, Spreadsheet, Form , Calendar ,Gmail with it. As I started to learn drupal from scratch, it took enough time to make the core of LMS using Drupal, as there it has to be highly customized according the needs of University.
After studying Google Apps Api , i.e Docs list , Spreadsheet, Calendar, Provisioning , Email API . A month back , Google Apps integration started. Though till now its in Pre-alpha phase ( Few features have been implemented , and are in process , Check out the Attached document for exact details. Also attached is the image of mindmap of the Ideas of integrating Google apps in drupal). I must tell, that all the current work done on integrating Google Apps was done in an un-modular way, due to constraints of time. I seek this opportunity to commit my work by developing drupal modules , so that the whole drupal community could use it and further develop it.
Profit to Drupal :
- It will spread the wings of drupal's functionality , as google apps could work in symphony with drupal. It will facilitate the use of Drupal by allowing Administrator of all organization ,schools and university implementing Google apps to give User a holistic working experience
- Enable Drupal to extend its collaborative nature to the next level. Specially in School's , College's and Universities. Even many Organization have implemented Google apps .
- It tend to motivate organizations to use Drupal , if they are planning to implement Google Apps. As it will forward their Aim of communication and collaboration. Its not at all easy to programmatically integrate Google apps, Specially for non-technical organizations. Hence adding another flag to Drupal's powerful features and support.
Level of Difficulty : Medium
Mentor : <br/>
- Kaustubh Srikanth : Primary mentor and Local mentor
- Robert wohleb : Advisor and Backup mentor
- Learning : Already started and on Going.
- Programming: 8 weeks
- Final feature review and adding time : 1 week
- Bug fixing time :1 week
- Documentation : 1 week
Motivation to do this project:
I have been working on drupal since 5 months or so. The community helped me a lot. I want to contribute back to the community and millions of people using Drupal. This project will open new doors the drupal users and developers. I aim to build a Google Apps community in drupal, to support and develop for any feature release in Google Apps / Apps API in future.
I am 3rd year student at JIITU, Noida , India. I an active member of opensource community in my College and City. I have been taking part in many opensource meetups and events, including Drupal-meetup in india. I am a developer of my university's LMS ( based on drupal ) and server administrator of the server running it. I have my deep interest in web , specially server side scripting and Software Designing. I have a blog at http://www.techbracket.net.
Check out my application at Appspot : [[http://socghop.appspot.com/student_proposal/show/google/gsoc2009/ankur/t123878370958]]
|mindmap of Google Apps integration in Drupal.jpeg||215.16 KB|