Check out my application at Appspot : http://socghop.appspot.com/student_proposal/show/google/gsoc2009/ankur/t123878370958
-
Overview
-
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.
- Gmail
- 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 :
- Kaustubh Srikanth : Primary mentor and Local mentor
- Robert wohleb : Advisor and Backup mentor
Roadmap :
- 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.
Biography :
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]]
Attachment | Size |
---|---|
mindmap of Google Apps integration in Drupal.jpeg | 215.16 KB |
Comments
I love this concept, and I
I love this concept, and I agree this would be a great addition to Drupal. However I do worry that the proposal is somewhat far-reaching for a Summer of Code project. 8 weeks of programming seems like a stretch to me.
There is some existing code out there which could be helpful and/or provide a starting point or possibilities for collaboration
An implementation of GData protocol, part of an older Summer of Code. Incomplete last I looked.
http://drupal.org/project/gdata
Googl Authentcation Module, implements Google's AuthSub protocol
http://drupal.org/project/google_auth
Google Calendar API (very incomplete, needs a lot more)
http://drupal.org/project/event_GCalendar
I'm sure there is more.
GData relies on the Zend Framework, which provides a wide variety of pre-packaged Google App integration points. Do you plan on building off the Zend Framework implementations or starting from scratch?
Thanks for an exciting proposal.
Work till now
hey heyrocker,
Thanks for comment ! hmm..
Gdata is not complete. I have build good Code base while working on Integrating G-Apps with drupal while building LMS. And i wont have problem completing this my projected work in the proposed time. 8 Weeks , Right its long, but i tried to use all the time alloted soc project, and Maximum to code, just in case.
Gooogle_auth implements authsub , But i would prefer Oauth, in case of Google. Also because, I have already implemented Oauth protocol in drupal , Please check out this web version of the Attached document . I have fetched Gmail feeds, Google Docs feeds and parsed them to display them as i wish to. Please check out the Current block display i have created in the 3rd ScreenShot in the doc.( Its a Dashboard with a bird's eye View of all the information in LMS, analogous to Igoogle )
Event_Gcalendar is also incomplete. I Aim to Integrate Google Calendar in So depth later.My goal is to group set of people in drupal community interested in contributing to drupal in the field of Google apps and Education.
And yes, in my case i choose to build from scratch due to my interest. But i have lately , i had to shifted to Zend Gdata, due to increased set of possibilities. But at some points, i had no options rather then doing thing myself , from scratch. :)
Please comment and Review !!
Thanks
Hope a online demo Soon. I think i can also get a small video about the work i have done till now .
Thanks
Please comment !!
Yes demo please!! That
Yes demo please!! That would be quite cool to see! Is that with the paid enterprise google apps?
Sure drupal can natively do all the things google apps can do, with a combination of contrib/custom modules. But it remains that googles stuff is ready to go real quick and enables some "possibly for some" unobtainable or undesirable features for their server environment.
Think this could be very cool for some use cases.
I think this is a good
I think this is a good project, and it would be a great addition to Drupal, but I agree with heyrocker that the idea may be a little too big for 8 weeks of work. Maybe we can narrow the scope of this project using spec that is provided. Maybe just work on Google Apps User account management?
This way, the work will be more manageable, and if it doesn't take as long as the 8 weeks, then there's no harm in doing extra work.
The attachments look fantastic. I'm impressed!
Matthew Klein
matt@zivtech.com
This sounds like a godsend
This sounds like a godsend but here's my input:
I would say that what is needed first of all would be a well thought out framework of plugins that can act as a wrapper for the gdata apis such as the gdata project started off doing. This should provide a reliable and easy to update/maintain framework for Drupal to do the basic CRUD and authentication tasks for a variety of Google services. A core module to act as a broker 'glue' with additional modules to provide application specific services, so one for Google calendars, one for contacts, one for docs etc.
There are developments with the views project for being able to query external data sources and so development of the Drupal specific stuff such as this and helpers for themers etc into the basic framework would then let other do as they wish. There's little point in creating custom blocks and application specific modules for a single use case when, in my opinion, letting others manipulate the data would be more beneficial. Views integration, feedapi extensions, cck field modules, extensions for date and calendar modules - that's where I can see this really taking off and getting additional support from the community rather than adding to the list of duplicate modules. If there's a specific use case that can't be handled easily by existing drupal module integration then create a separate module for that, reusing the code from the framework.
Perhaps a more realistic workplan would be to create the glue, create a couple of Google application specific submodules, and then try to use the resulting framework for a specific use case module. By trying to use your own framework, you could then work out what needs refactoring and/or editing along the way. If you have time left, then try adding other submodules for other Google services.
I'm not sure about what the status of the gdata project is at present, but you could see about getting maintainership or taking over, even creating a completely new version if required and starting from scratch if this is deemed to be a better option.
I think that with a solid and well supported collection of Google API related framework modules, this could be a fantastic addition to Drupal and the community. However, if done with too much haste and little consideration for the billion or so use cases for such a project, it could easily end up being yet another abandoned module.
Please don't take this as a downer on your plans - this is just my opinion on how to make it a solid and long lasting effort for everyone.
Because , my earlier account
Because , my earlier account was unable to post any content due to some error of mollum. I have made a new account.
@adrianlewis : My Heartiest thanks for this wonderful vision. I missed this perspective , and i understood what you wanted to convey. I brainstormed and re-thought the plan, and i found out that the glue to hold everything together. The new evolved form of my proposed project has following new aspects , Please review :
available
GDATA APIs :
* Google Apps APIs
* Google Base Data API
* Blogger Data API
* Google Book Search Data API
* Google Calendar Data API
* Google Code Search Data API
* Google Contacts Data API
* Google Documents List Data API
* Google Finance Portfolio Data API
* Google Health Data API
* Google Notebook Data API
* Picasa Web Albums Data API
* Google Spreadsheets Data API
* Webmaster Tools Data API
* YouTube Data API
mashable. Further , in future GDATA of youtube, picassa, and other serivices could be creativly mashed for any specific use-case.
adrianlewis :What do you say !!
@ Mascrocosm : I have posted this Screencast on my blog . Please check it out . I could not arrange a working demo , because LMS is currently available inside campus only, though it was online on web, but due to some issue, Public IP is no more available. I will try arrange that as soon as possible. We are using Education edition of Google Apps.
@kleinmp : thanks for your comment. I will try to sharpen the tasks listed by me. Though i did some homework already, so i felt i could complete this in the given time frame. But you and heyrocker are absolutely right, it might just go out of hand and become haphazard and difficult to manage. And After the direction given by adrianlewis , i see a whole new vision to my project Idea. thanks :)
Past SoC work
Another student and I started work in this direction during SoC 2007 for the OSU OSL. Check it out: http://code.google.com/p/drupal-google-api/
I have to agree with previous comments. The original proposal was very broad. It makes a lot more sense to start with a solid API/framework, and build a set of flexible modules on top of it. Some people will want to use all of the provided features. Others will only want to use part of it. Remaining flexible so that people can mix-and-match will be key.
Abstract: The project
Abstract:
The project objective is to build a framework for flexible Google Apps User management from drupal
The Drupal-Gapps framework for user management
Content:
Overview: The project objective is to build a framework for flexible Google Apps User management from drupal
Description: The Drupal-Gapps framework (Google Apps User Account management )
Complete Google Apps user management (CRUD) from Drupal . The part of framework will implement provisioning API v2 , to synchronize Google Apps user data with current Drupal user management system and hence provide an easy and flexible management of Google Apps account from drupal. Please take look of this screencast , this is the some work, i did in this direction.
o Add User Account
1. User Account can be added by Uploading an Spreadsheet of First name, Last name, and Random password.
2. Ldap Integration : An Extension module of Ldap module , If user details ( First name , last name and secondry email) can be retrieved from LDAP structure .
3. The normal way : User can himself Enter Details and Fill in Desired Email-ID, while registering.
o Delete User Account : Admin can Delete User who are members of a Google App Group mapped to his role in Drupal.
o Update User Account Details
o Retrieve User Account Details
o Add Nicknames
o Delete Nicknames Account
o Update Nicknames Account
o Retrieve Nicknames Account Details
o 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.
o Delete Groups : Admin can delete group mapped to a role
o Update Groups
o Retrieve Groups Details
o Add Members to Groups based or role. Admin can also disable this Role mapping property.
My orignal proposal is at groups.drupal.org/node/20128 . Due to broad scope of my proposal and time constraint to 3 months I have broken my orginal proposal into 2 part, and this application deals with the first part
Mentors: looking for mentor
Difficulty:medium
Above is my proposal as on
Above is my proposal as on appspot. I divided by application into 2 part. One Google Apps user management Framework ( i posted this one ) and Second Google Data integration framework . Unfortunately, i could not submit my second proposal.
Deliverables
Deliverables :
1. Drupal-Gapps API:
Drupal-Gapps core module will provide an API which will act as a Wrapper to Google Apps API and will be the highlight of this project. Being more specifc, Google Apps API has 2 components :
a. Management APIs ( Google Provisioning API , Reporting API , Email migration API )
b. Application( Google services) specific APIs ( Google Data API , Email setting API , Contacts API)
The Result Drupal-Gapps API Version-1 will provide an API, which will impliment both Google Provisioning API only and Google DATA API. After discussing with my mentors, the plan is to divide API into 2 layer, first of low-level routines ( considering both component API's have different method of access and authentication, i.e Google Provisioning has its own methord authentication and access, Outh / AuthSub for Gdata. This would help keep the concern of API authentication off the table and let developers just use high-level routines , Though if Google add or updates API authentication process , then layer needs to touched and also when Drupal-Gapps API would be extended to use other Apps API , like Contact API. ) and and second layer implimenting High-level routines.
The Drupal-Gapps API v1 will act as solid core for future Drupal-Gapps API, adding support and routines for Other APIs and future developement will be very easy here after.
2. Drupal-Gapps Application
3. Detailed Documentation of Drupal-Gapps API and Drupal-Gapps Exmaple modules to assist developers.
Roadmap :
For more Visual Details , please check out this gantt chart : http://techbracket.net/drupal-gapps-gantt.html
OR Download the project file of Gnome-planner from here : http://techbracket.net/drupal-gapps-gantt.mrproject
Tasks Before May 23rd,
My current semister classes ends on 15th may and exams being from 18th to 23rd may ( http://www.jiit.ac.in/jiit/NOTICES/Imp%20Notices%20to%20Parents/Modified%20Academic%20Calendar%2008-09.pdf ). So May would be all stuffed with semister reports , project and exams. Though i will be active, i wont be able to devote enough time in project planning and design till may 23rd . So
1. Setup Google Apps Working base on a website. Hopefully on http://www.techbracket.net
2. Study Google Apps API ( Already done most of it as i have worked on it. I will try to fill the empty gaps if any. )
3. Discuss and research on the API Design and other issues related Project with Mentor, Though on a small scale till now as i would be busy with college till then
1. Milestone 1 ( Planning , Designing and Prototyping )
May 23-May 29 --> Task 1 : Research and Study for the design of Drupal-Gapps includeing API .
May 30-June 4 --> Task 2 : Plan and write down the design and roadmap of Drupal-Gapps API.
2. Milestone 2 ( Developing Drupal-Gapps API )
June 4-July 8 --> Task 3 : Code and develop Drupal-Gapps API .
July 10-July 14 --> Task 4 : Testing , Debugging and Documentation (Detailed ).
Deliverables : Drupal-Gapps API , neatly documented
'July 9' ==> Mid-term evaluation
3. Milestone 3 ( User management KIT )
July 14-July 21 --> Task 1: Code Drupal-Gapps Registration Module
July 22-July 25 --> Task 2: Code the Bridge Module
July 26-July 30 --> Task 3: Code Google Apps user management Module
July 31-August 1 --> Task 4: Testing , Debugging and Documentation ( Detailed )
Deliverables : Complete Google Apps user management Kit ( module a, b, c in (2) Drupal-Gapps Application from Derivables) and Proper documentation to assist Developers and Administrators
4. Milestone 4 ( Google Services Modules )
August 2-August 7 --> Task 1 : Code example module for Google APPS ( Google Docs, Google Spreadsheet, Gmail Inbox only ) using Drupal-Gapps API.
August 8- August 9 --> Task 2 : Work on User-interface, themeablity and flexiblity.
August 10-August 12 --> Task 3 : Testing, Debugging and Documentation ( Detailed )
Deliverables : An Example Module for each service , Not just Showing the how to Use Drupal-Gapps API, they will be ready to use in general Drupal-Gapps use cases ( eg : University LMS ). This module will also use FeedAPI to parse Atom feed of each service to by default build a block, node, page, etc. This will be neatly Documented.
5. Milestone 5
August 13-August 17 :--> Final Testing , Debugging and Compiling the Documentation. Drupal-Gapps V.1 ready to Roll
'August 18' ==>Submit Final evaluation Report !!
Please post your Advice
Thanks !!
Ankur Saxena
New Google App
A lot of web applications are adding up in the world of technology. Have you heard of the new Google voice application? Many are looking forward to trying this new Google application as it will connect all of your phone applications in one. Currently, Google voice is under construction, but users of Google voice, if T-Mobile users, can connect their phone number to Google under their Myfaves application, and then make free calls at any time. No instant payday loans for users and their phone service bills, as calls are all free when made from Google, though they will show up as a 605 area code. A GV Mobile for the iPhone application is on the way. This way, you can make phone calls without worrying about maxing out the credit cards on phone bills using Google Voice.
http://personalmoneystore.com/moneyblog/2009/04/21/google-voice-tmobile-...
@Zoey : Voice call all for
@Zoey : Voice call all for free. Sounds Cool . Lets wait and see what Google has in their "Voice" package, except free calls.
Project Wiki page :
"Drupal-Gapps framework for user management" Project Wiki page : http://groups.drupal.org/node/22645
Ideal for us...
I'm working on a Drupal-based LMS for the distance learning college I work for that incorporates Google Apps and this is exactly what we need. A working solution through Moodle has been devised, but Moodle 'out of the box' is too rigidly geared towards traditional University & college frameworks, I find it quite an irritating platform & has huge server demands when compared with Drupal. I'm aiming to get a sandbox solution that uses Drupal ready by end of October this year; is there any chance that your Gapps module will be completed by then? Also, will there be specific server requirements for this?
Many thanks for working on this module.
@mrcinceo sorry for Late
@mrcinceo
sorry for Late reply ! , was on bed for last month. Any ways , great !! my project was also inspired my LMS which we made for our university using Drupal. This module would be ready for you to use by Oct. End , or at max November mid . :) . Though it is ready , but for you to integrate it with LMS, i am adding few more feature , which would help you out.
Yeah , for the same reason we choose Drupal. Any ways, if you have any problem regarding This module , mail me at flyankur@gmail.com.
This would be awesome!
We provide services to Charities and UN agencies to help them better deliver humanitarian programs.
We have a requirement to integrate socially concerned organisations that use google apps gmail, so they can work at web points (different programs/projects) ideally seamlessly - single sign on, using their gmail credentials.
We would then require their authenticated e-mail and desired display name on various drupal based sites to grant them access to various pages, enable commenting, polling etc. usual stuff.
i think what you have described above might do it!!!
Please keep us posted on developments. This sounds very interesting.
Warm regards,
Raj
Status update?
I wrote something like this (Grupal - Drupal® seamlessly integrated with Google Apps) but have been waiting to see how this project turned out before starting work on version 3.0 (with groups integration, among other things).
Given the proposal and blog appear to have vanished, is it fair to say this has been abandoned? According to the project page (last updated 6 months ago) "Current status: Currently on Milestone 2 - Task 1,2 , i am working on feature list for Drupal-Gapps API.". Was anything produced that we might be able to use going forward?
Sam
All code from the Summer of
All code from the Summer of Code is available for download here:
http://code.google.com/p/google-summer-of-code-2009-drupal/downloads/list
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Thanks!
Downloading now...
Status
Ok so I found drupalgapps.module and SFAICT it provides an admin interface to set Google Apps administrator details and then a handful of wrappers for the Google Provisioning API.
Highlights:
- mailing the administrator when things go wrong
- proxy support
- no dependency on external libraries (Zend)
- a clever (if unnecessary?) cron routine to maintain a valid token
Lowlights:
- errors like "The HTTPS request to Google seems to be broken like hell (unknown error)."
- hardcoding to jiitu.org e.g. "$url = 'https://apps-apis.google.com/a/feeds/jiitu.org/user/2.0/'.$username;"
I'm guessing then that nobody is actually using this code?
Sam
Re: Status
@samj, are you finding that the module you mention is currently the most usable among the other projects mentioned?
subscribing
subscribing
SUbscribing, greetings,
SUbscribing, greetings, Martijn
Subscribing
Thank you!
Drupalgapps Further : Google
Drupalgapps Further : Google contacts data and document list API Integration . Check it out here - http://groups.drupal.org/node/60973
After successful Google summer of code -2009 , this is my Google summer of code 2010 proposal for Drupalgapps.
Subscribing
Subscribing