#summary One-sentence summary of this page.
#labels gsoc2011,externalapisproject

= Introduction =

This page is tracking of progress for GSoC 2011 Project: Integration with External API's

= Design & Terminology = 
== Resource ==

Resource is a document or file that is exported to GDocs and being kept track of. When Melange exports a document to GDocs it will store returned document ID from Google Documents API. This document should be associated with user for whom resource exported for, and with a unique key that tells where the resource exported from. This shows the basic structure of Resource class:

{{{
class Resource(db.Model):
  """Model of an exported Google Docs resource
  """

  #: Required field storing "ID" of exported resource.
  #: This value is returned from Google Documents at first upload.
  resource_id = db.StringProperty(required=True)

  #: Name of the resource. This value is changed only when
  #: actual name of exported Google document changes.
  resource_name = db.StringProperty(required=True)

  #: Owner of document for whom document exported for, and 
  #: whose Google Documents account is expected to has the resource.
  owner = db.ReferenceProperty(reference_class=soc.models.user.User,
                               required=True,
                               collection_name='exported_documents',
                               verbose_name=ugettext('Owner'))
}}}
