blob: 4784a08b1ff3e64c93480f224ba7055be0cafb3d [file] [log] [blame]
#summary tracks progress for the "integration with external apis" project.
#labels Phase-Requirements
<wiki:toc max_depth="3" />
= 1. Introduction =
This page is tracking of progress for GSoC 2011 Project: Integration with External API's
----
= 2. Requirements =
== 2.1 Melange Lists ==
===Overview===
Basically an export button for each lists on Melange that triggers an export mechanism to Google SpreadSheets. (including OAuth roundtrip, access token storing on datastore)
===Problems & Solutions===
* *Problem:* exporting a JavaScript list
* *Solution:*
== 2.2 Student Proposals ==
===Overview ===
Students will be able to edit their proposals through tinyMCE editor or link to a Google Document file. There will be a "Sync Now" button to syncronize proposal that Melage holds with actual Google Documents file.
===Problems & Solutions ===
* *Problem:* Student may not be awere that proposal is syncronised only when he/she clicks "Sync Now" button.
* *Solution1:* Give responsibility to student.
* *Solution2:* Sync proposal with stored ACL. Check for single revisions and get the closest revision to deadline.
* *Problem:* As Google Documents stores HTML files in full-HTML form (including images, css files etc.) a method must be implemented to embed that document to actual proposal entry.
* *Solution:*
== 2.3 Surveys (issue 1243) ==
===Overview===
Export a survey as either a pdf, google doc, plain text, something to save the entire webpage view.
== 2.4 Tracking Numbers (issue 1239) ==
=== Overview ===
Program administrators have spreadsheets that will enable students to have tracking numbers for their welcome packages and tshirts. Same for payment status.
== 2.5 Export Melange stuff for developers' use ==
=== Overview ===
Export some statistics and data to Google Documents to work on or to integrate with other services like Fusion Tables.
----
= 4. Project Timeline =
This table is based on deliverables.
|| 25 May - 31 May (Week 1) || Add Google Data packages to Melange. ||
|| 1 June - 7 June (Week 2) || Add related fields create required models. ||
|| 8 June - 21 June (Week 3,4) || Integrate OAuth. ||
|| 22 June - 12 July (Week 5,6,7) || Student proposal syncing. Write tests if possible. ||
|| 13 July - 15 July || Midterm Evaluation. ||
|| 15 July - 19 July (Week 8) || Learn how Melange lists actually works. ||
|| 20 July - 2 August (Week 9,10) || Melange List exporting. ||
|| 3 August - 17 August (Week 11,12) || Work on open issues about APIs. issue 1239, issue 1243 ||
|| 17 August - 26 August (Week 13) || Export Melange stuff for developers' use ||
= 5. Design & Terminology =
== 5.1 Open Auth Roundtrip ==
https://lh3.googleusercontent.com/-G5GUxfUdXS0/TgC_I0dXVmI/AAAAAAAAADI/hAGOlYZngq0/s640/MelangeOAuth%252520%2525281%252529.png
== 5.2 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'))
}}}
----
=6. Meeting Notes & Agendas =
== Monday, May 16 18:30:00 in UTC (Skype Conference)==
=== TODOs ===
* Create the blogpost summarizing last week today.
* Have a call with your mentor this week, most of us are in PDT time zone.
* Put a link to your GAE instance on the wiki page (and blog if possible)
* Don't forget to make your next blogpost before the next meeting.
* Get ready to start coding!
== Tuesday, May 20 20:00:00 in UTC (GTalk with Mario) ==
Mario delivered me notes for my project from discussion with Melange team.
===TODOS:===
* Update project requirements
* Start working on exporting a html document from Google Documents and integrating with Melange.
* Come up with a timeline. Designate deliverables.
* Focus on the main problems instead of thinking whole project or other stuff that is already known how to handle.
== Monday, June 21 20:00:00 in UTC (GTalk with Mario) ==
===TODOS:===
* Store tokens in datastore.
* Provide a "remember me" checkbox with login button.
* Store "remember me" choice and access token in Profile model.