Drupal-Gapps Further : Google contacts data and document list API Integration

Events happening in the community are now at Drupal community events on www.drupal.org.
flyankur's picture

Overview 

The Project aims to take drupal-gapps project to the next level by :

  1. Integrating the Google Applications ( Google Docs, etc)  with Drupal
  2. Improvising and adding more features to existing drupal-gapps API.

State of Drupal-Gapps project : DrupalGapps Project aims to Integrate Google Apps seamlessly with Drupal.

The Approach towards this vision which was intitation long back , while i was developing LMS. The first check point was achieved in gsoc-2009, as a part of which i developed the Drupal-gapps User-managerment Framework ( API ),  a wrapper to Google Provisioning API .

DrupalGapps has 2 main component 

1. Drupal-Gapps CORE : It consist of the Wrapper API. Each Wrapper API is built by wrapping up Individual Google Apps API. Currently, the Drupal-Gapps CORE consist of 

       a.  Wrapper API of Google Provisioning API 
       b.  Wrapper API of Google Authentication API

2. Drupal-Gapps Application modules: It is a package of sub-modules built using Drupal-Gapss CORE API  and Drupal API to Integrate Google Apps further Currently following sub-modules exist. 

     a. Drupal-Gapps UI : This is developed by Stella using Drupal-Gapps Api. It provides the User interface to manage Google Account. Do CRUD actions.

Check out my application at Google Summer of code 2010 Website

    Only local images are allowed.

Description

I want to Integrate existing Google Applications , such as Gmail, Google docs, Google Spreadsheet, etc using their APIs and hence also add more features to Drupalgapps CORE / API .

There are 2 mail Goals : 

1. Integrate the Google Apps with Drupal by building wrapper API for : 

    a. Google Contacts Data API  

  •  Edit or delete content in an existing contact, and query the content in an existing contact.
  • List of a user's contacts, 
  • View and update Contacts content in the form of Google Data API feeds.
  • A relatively medium sized API 
  •  Addition to Drupal-Gapps CORE 
  • Usefullness : 
    • Many use-cases . For example : Maintain relationships between people in social applications built using Drupal
    • Google Apps now has a Market place, Drupal being most used framework/CMS. This API integration would make horizons even wider for web application built using Drupal and Google Apps

   b. Google Document-list API 

  • Retrieving list of documents
  • Searching document on many criteria
    • Document type
    • Keyword in title
    • Based on Sharing
    • Based on Folder
  • Downloading and Uploading Documents
  • Making Folder and more 
  • A relatively medium sized API 
  • Addition to Drupal-Gapps CORE ) 
  • Usefullness 
    • Google Docs now store all type of files, be it images, etc. So Web Application built on Drupal and Google Apps could use the free file storage.
    • Open attached documents in a node in Google Docs directly 

2. Make Application using Drupal-Gapps Core

    a.  Registration module : 

  •  The Module will provide an application over Drupal-Gapps API , which will over-ride , rather add to current registration system , giving space for Google Apps account registration along with drupal user registration . The module will be flexible enough, so as to accommodate its flow according to varing need of administrators.
  • For example : User could be asked for Desired email-id and then, his New email-id ( Of Google Apps ) and randomly Generated password  will be mailed to the secondry email of user Or Displayed there it self. The desired password can also be enabled from admin page.
  • Usefulness :
    • Ease the process on Google Apps Deployment , hence making Drupal the first choice of CMS with Google Apps

    b.  Google Docs Integration module : 

  •  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 . )
  • While writing a post , Article i.e a Node Attach files directly from your Google Documents. The module will list all document, which can be attached into the post. 
  • While attaching, mention the permissions. Read-only, or editable . 
  • Usefulness :
    • Immense Usefulness, when Google Docs is being used a file storage.
    • Provides the ease of storing and attaching documents. 
    • Again, Adds to Drupal's advantage 

Use-Cases  

  1. Contacts Data API
  • Synchronize Google contacts with contacts on Drupal.
  • Socialize using Contacts API, bring out social features and maintain relationships between people in social applications built using Drupal website.
  • Also Google Wave , Buzz integration would need wrapping up Contacts data API and already existing wrapper of Google Provisiong API. If one want to retrieve or manipulate information about a participant's contacts in a Wave Gadget, one will have to use the Google contacts data API.
  • Document list API
    • Attach Docs, Spreadsheet, PDFs, Diagram, and anytype of file on the node , gives an endless usefullness for any collaborative website being built on Drupal.
    • Ability to open attached file directly from Drupal-node in Google Docs from a link on side "Open as Google Document ", in similar fashion ,as it is possible in gmail allows google docs use very easy and quick. This would take integration deeper and give smoother experience hence making Drupal the best choice as CMS when the organisation/company is using Google Apps too.
    • Creating, Deleting , Retrieving / Searching documents that match specific keywords, categories, or metadata will be very useful.
    • Sharing Google docs on basis of Drupal groups, rules, are very much usable in various scenarios.
    • Maintain Folders for each group, and all attachment, documents related to that group in it. Like Google groups, all displayed on Groups page and easily managable too.



    There can be many many more use-cases, these are the highlights. With Google Docs regularly updating and improving, this is a great opportunity.

    I have attached a document , which consist of premature work, done for developing a prototype of our college LMS. That would give an overview of what i want to achieve.

    Profit to Drupal  

    1. It will further spread the wings of drupal's functionality , as google apps could work in even more symphony with drupal.
    2. 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 .
    3. 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.
    4. With Google Apps Marketplace up, and already many Application added. Drupal as a framework, has a great opportunity and possibilites to churn out great Apps which have Google Apps integration.

    Timeline  

    Tasks before May 23, 2010

    1. Setup Google Apps Working base.
    2. Study Google Contacts data and document list API
    3. Discuss and research on the API Design and other issues related Project with Mentor.

    1. Milestone 1 ( Planning , Designing and Prototyping )

    May 23 -June 4 --> Plan and write down the design , Integration method, etc. 

    2. Milestone 2 ( Developing Drupal-Gapps CORE / API )

    June 4 - July 8 -->  Build Wrapper API's of Drupal-Gapps CORE - Contacts Data API and Document list API

    July 10-July 14 --> Testing , Debugging and Documentation (Detailed ).

    3. Milestone 3 ( Drupal-Gapps  Application modules)

    July 14-July 31 --> Code Drupal-Gapps Registration Module 

    August 1-August 12 --> Code Drupal-Gapps Document Integration Module 

    August 13-August 17 :--> Final Testing , Debugging and Compiling the Documentation. Drupal-Gapps V.2 ready to Roll

     

    Deliverables  

    1. Registration module

    2. Document Integration Module

    3. Wrapper API to Contacts and Document list APIs , neatly documented

    Motivation to do this project:

    I have been working on drupal since 1 year, 4 months . The community has supported and 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.

    DrupalGapps is also being used at places like , Community Libraries, Google Wave integration for a NGO's website, Learning management system developed on Drupal,and many more. I have just release the Beta version of Drupalgapps (http://drupal.org/project/drupalgapps), and i hope it will spread and reach new heights, and help drupal to become the most prefered CMS where Google Apps integration is a need. I seek a great potential in Drupalgapps project and want to work on this direction. I also aim to build a Google Apps community in drupal, to support and develop for any feature release in Google Apps / Apps API in future.

    Mentors

    Kaustubh Shrikanth ( houndbee)

    Robert Wohleb ( Rwohleb ) 

    Stella Power ( Stella )


    Difficulty

    Medium 


    Contact  

    IRC / Gmail / Skype / Drupal.org : flyankur


    Biography

     

    I am Ankur Saxena, currently doing my graduation from JIIT, Noida, India. I was a Google summer of code 2009 student , when i started the project DrupalGapps. I am a Opensource enthusiast, and Drupal lover. I organise and take part in Many Drupal and Opensource related events and meetups.

    Drupal.org profile 


    AttachmentSize
    state.jpg54.3 KB
    gappsintegration.doc620 KB
    openasgoogledocs.jpg31.29 KB

    Comments

    Can you explain why you are

    rwohleb's picture

    Can you explain why you are including LDAP in this work? I don't see what it has to do with contacts and document APIs.

    Love the concept. I am really

    auzigog's picture

    Love the concept. I am really interested in providing integration between Google Docs and Drupal. Google Docs is widely used among activists a project management tool, but each of the apps in the suite don't necessarily integrate very well, and it's hard to keep your documents organized and accessible.

    My proposed project (http://groups.drupal.org/node/60118, http://auzigog.com/gsoc-proposal) seeks to remedy this by creating specific project management tools to replace certain uses of google docs (like using a spreadsheet to make a timeline of tasks). But in some cases, integrating with google docs would be better than replacing specific possible uses of google docs.

    Hope your project goes through!

    @Rwohleb : Yeah, you are

    flyankur's picture

    @Rwohleb : Yeah, you are right. I hence removed " LDAP brdge to fetch Fname and Lname from Ldap to Register Google Apps account " feature , as it is diverting the project from main aim. It could later be added.

    @Auzigog , Thanks . It great you seek Google Docs integration. And yes , Even at my university, Google Docs, and other Google Apps are used by most. I read your proposal, Google Apps project is a great way to expose Collaboration in your " Project managment Tools ".you can use Google Apps project ( http://www.drupal.org/project/drupalgapps ) to manage Google accounts, Make groups. It presently has a full User-management kit. After Google Contacts data API and Google Docs integration, you can play a lot with Contacts, Get a bit Social, play with Docs too. There are no limits. With Google Wave and Buzz coming soon to Google Apps , i see good heights to which you can take Project management with Drupal.

    I see Drupalgapps with Wave and Buzz integration too. But right now, its time to enable Drupal to play with Contacts data and Documents.

    Best of Luck for your project. I hope it goes through too.

    I have Updated the proposal with some " use-cases ", "profit to Drupal " and " Biography " sections . Check them out.

    and Here is the link of last year discussion on Drupalgapps : http://groups.drupal.org/node/20128

    Using Zend objects?

    hongpong's picture

    I was able to make something that worked to post YouTube videos by authenticating, instantiating and filling up Google Data objects from the Zend library, then sending the objects.
    This worked pretty well, are you looking at Zend to handle these objects properties? It's handy, the Zend libraries support a lot of things.
    http://framework.zend.com/download/gdata
    http://code.google.com/apis/gdata/index.html

    This looks great! However,

    stella's picture

    This looks great! However, in addition to the above, I would also suggest that you extend the UI module to allow users to more easily configure, customise and integrate their sites with the new API calls you're adding.

    Also I'm sure you're doing it anyway, but you should add in a deliverable on both user and developer documentation.

    Good work, and fingers crossed!

    Stella

    Very promising!

    rancas's picture

    It is a greate project and can be a killer application for Drupal based intranets and knowledge management systems. We are using Openatrium and document management is a unresolved issue even in that fantastic Drupal distribution.

    If you release something I can give a try on openatrium trying to build a feature out of it.

    Good work.

    Luca.

    subscribe +1

    grienauer's picture

    subscribe +1

    Subscribe

    joeebel's picture

    Yes!

    Subscribe

    artatac's picture

    Subscribe

    Subscribe

    jvieille's picture

    Subscribe

    Google Summer of Code 2010

    Group organizers

    Group categories

    Important Announcement

    Group notifications

    This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: