| #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. |