blob: 12b1d2e6fadfca2f91c67591a8181a23b4525a7f [file] [log] [blame]
#summary This page contains project roadmap for year 2009
#labels Deprecated,Importance-Useful
= Melange Roadmap 2009 =
_This is the first draft of Melange Roadmap for 2009. This document is still incomplete (work in progress). We will be adding more description for each task listed below shortly._
== release script ==
* *Lead:* Pawel Solyga
* *Priority:* High
* *Scheduled for:* May 2009
* *Who:* Pawel Solyga, Sverre Rabbelier, Dan Bentley
* *ETA:* 1 week
To simplify the release process, release script will be created. Script will need to support Mercurial (hg) repository cause of our recent switch from SVN to hg. Release script will build, test using test suite, branch, tag new release and create tar.gz package to put into Download section on our code.google.com project page. In addition to that, script will also create app.yaml file from app.yaml.template and support cherrypicking of branches (previous releases) and deployment to testing GAE instances.
== GHOP features support ==
* *Lead:* Lennard de Rijk
* *Developers:* Madhudusan C.S. (GSoC) Pawel Solyga
* *Priority:* High
* *Scheduled for:* May - September 2009
* *ETA:* 4 months
* *More:* http://code.google.com/p/soc/wiki/GSoC2009Ideas
Please see the [GHOP wiki topic] for more information.
Melange GHOP features support GSoC project:
* http://socghop.appspot.com/student_project/show/google/gsoc2009/melange/t124022698486
== test suite (unit, smoke and functional tests) ==
* *Priority:* Critical
* *Scheduled for:* May - June 2009
* *Who:* Melange Team
* *ETA:* ~1 month
Right now Melange has a small set of basic unit tests (40). This task aims to extend our test suite with unit, smoke and functional tests. In addition to that we would also like to extend seed_db module which creates fake entities of different Melange models in the datastore for quick testing of Melange functionality locally and on deployed GAE application instance. seed_db module will be extended to seed all the models currently used within Melange.
Summarizing:
* unit tests
* functional tests
* smoke tests
* extending seed_db module
* special view for seed_db module
== 1000 entity limitation fix ==
* *Priority:* High
* *Scheduled for:* May 2009
* *Who:* Dan Bentley, Pawel Solyga, Sverre Rabbelier
* *ETA:* 2-3 weeks
Due to Google App Engine limitations we currently have problems with listing more than 1000 entities via the web interface. Fix for that has been already committed however it still requires some work including: addition of missing indexes, support for sharded counters to show total number of entries in the table/list, usage of deepFetch function in CSV export of tables in order to export whole table at once, not in batches like it is right now (just visible part of the table is exported).
== statistics module (GSoC & GHOP) ==
* *Lead:* Pawel Solyga, Sverre Rabbelier
* *Priority:* High
* *Scheduled for:* May - September 2009
* *Who:* Merio Ferraro (GSoC), Daniel Hans (GSoC), Sverre Rabbelier, Pawel Solyga, Lennard de Rijk
* *ETA:* 3 months
Extract interesting statistics from the Melange datastore for the benefit of different Melange Roles including Program Administrator, Developer, Organization Administrator, Mentor. Use it for: Graphs, Histograms, More Google Maps integration and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export.
* use Google Chart API
* use Google Visualization API
* display different kind of charts and statistics which can include students by country, number of organizations per program, students for each organization, students by school, mentors and org admins by country
* generate KML file with location of all mentors, students (connections between mentor and student too)
* create statistics dashboard page for organization admins, program administrators, developers (superadmins)
Melange Statistics module GSoC projects:
* http://socghop.appspot.com/student_project/show/google/gsoc2009/melange/t124022698771
* http://socghop.appspot.com/student_project/show/google/gsoc2009/melange/t124022698336
== bugs, features and enhancements from issue tracker ==
* *Priority:* High/Depends
* *Scheduled for:* May - September 2009
* *Who:* Melange Team
* *ETA:* hard to determine
To be discussed during Monday (27th of May 2009) conference call what issues we will be working on in the first place.
== surveys support (Quiz) ==
* *Priority:* High
* *Scheduled for:* June 2009
* *Who:* James Levy (GSoC), Sverre Rabbelier, Pawel Solyga
* *ETA:* 1 month
Survey is a set of questions with a different types of answers. Melange currently doesn't support surveys (quizes). In order to do midterm, final evaluations or any additional surveys within Melange the Surveys(Quiz) module is needed.
Surveys can be created/edited/deleted by Program Administrator or Organization Administrator. Each of them can also list all created Surveys. Program Administrator can request to take a quiz (survey) to any Program user including Mentors, Students, Organization Administrators. Organization Administrator should be able to request to take a quiz from Organization Mentors or Students only. Quiz issuer should be able to list quiz results, list users who did not yet take a quiz and export all that information, results to CSV file. Surveys should have option to set quiz start and end date which will make them available only during this period.
Example survey module for drupal: http://drupal.org/project/quiz
This functionality will be used for midterm, final evaluations and additional surveys.
<LH>
Future feature: Allow other Melange users to create and administer surveys. Need to talk to legal about any implications before considering this feature from the Google perspective.
Raises interesting ethical question: Should all evaluation data from user created surveys be public provided results are anonymized/user has ability to opt-out of having survey results published? Think survey results should only be published at an aggregate level in any case.
If survey results are not public, should the Sponsor (Host) of a particular program using Melange have access to survey data? I think that Sponsors should have access to all this data. If system users prefer not to share this data with Sponsors, there are [http://www.limesurvey.org/content/view/5/83/lang,en/ other FOSS survey tool options].
</LH>
== buildbot enhancements ==
* *Priority:* Medium
* *Scheduled for:* June 2009
* *Who:* Pawel Solyga, Sverre Rabbelier
* *ETA:* 1 week
Our buildbot needs to be configured to use Hg repository and pull the commits from it every couple minutes or using post-commit-hooks support on code.google.com project hosting (support for post-commit-hooks for Mercurial repositories is not available yet). Our buildbot also needs to test our code using pylint, which can be part of the build script that buildbot is already configured to run. Emails from buildbot should be send to melange-soc-buildbot google group (http://groups.google.com/group/melange-soc-buildbot). Our wiki documentation should also be updated with information about buildbot url and new buildbot google group.
== dealing with failed students ==
* *Priority:* Medium
* *Scheduled for:* July 2009
* *Who:* Lennard de Rijk, Pawel Solyga, Leslie Hawthorn, Madhudusan C.S. (GSoC)
* *ETA:* 1 week
In previous years students who have failed to complete GSoC project have just disappeared from the web application and no information about them was present on any program page. We are considering changing this. We would a have special link on the Organization Home page listing "failed" projects (e.g. disappearing students, failed via midterm or final evaluation). In addition to that there will be special comment support for those projects and both project mentors and student will be able to comment on the project to explain what happened and what was the reason of failure.
<lh>
This feature should be implemented regardless of Google's final thoughts on this feature. Post-mortem reports are a beautiful thing and also help people not go down the wrong path when considering a solving a specific problem. It's also useful for people to get a view of the social reasons things didn't work out: being overcommitted to other work, social obligations, etc. Things happen.
For implementation for GSoC, I need to confirm with Legal that this is OK and sync with Chris quickly. I assume he'll be totally fine with it.
I also think we ought to send Sponsors an email when a post-mortem is posted (good feedback). Also cuts down on trolling reports (think: I failed because my mentors were mean to me. It clearly wasn't that I took a ten week vacation. Hrm, maybe that is useful to publish. This is also a good lesson in the fact that what you say publicly here as with all Open Source participation is something that people will see/look at when considering if they'd like to undertake projects with you in the future.)
</lh>
== ajaxy table view ==
* *Lead:* Pawel Solyga
* *Priority:* High
* *Scheduled for:* July 2009
* *Who:* Pawel Solyga, Merio Ferraro (GSoC), Sverre Rabbelier
* *ETA:* 2-3 weeks
Our current list view is very limited, doesn't support ajax data fetching, column sorting and many other features like searching on client side using javascript or on server side using ajax calls. This task aims to improve it or replace it with some ready to use ajax table view.
More information about this task can be found in our issue tracker Issue 201.
== file upload support (avatars, patches, tax forms, etc) ==
* *Lead:* Pawel Solyga
* *Priority:* Medium
* *Scheduled for:* July 2009
* *Who:* Pawel Solyga, Sverre Rabbelier
* *ETA:* 2-3 weeks
Main usage will be for tax forms and all sorts of documentation in GSoC, avatars and patches can wait.
See [Ihttp://code.google.com/p/soc/issues/detail?id=44] Issue 44.
<lh>
From Google perspective for source code, LH needs to check implications from legal perspective. Assume it's ok since we satisfy restrictions now with eligibility requirements.
Tax forms from students in USA cannot be stored on GSoC site.
I see this feature as being most useful for patches/source code (GHOP), student presentations, etc. Why not have all your program "work" in one place? Useful instead of searching around. At the very least we already provide students with the opportunity to show off their work via links on their student proposal page (e.g. to slides on Slideshare or videos, etc.)
</lh>
== feeds support for comments, announcement, important dates, proposal updates ==
* *Priority:* Medium
* *Scheduled for:* July - August 2009
* *Who:* James Levy (GSoC), Sverre Rabbelier
* *ETA:* 1 month
* integration with FeedBurner API so we don't have to cache it
* feeds with important dates based on program timeline (can't we just feed from existing program calendar? - LH)
* feeds generated using cron jobs ?
* interface to post announcement by Program Administrators, Organization Administrators
* each student proposal gets a feed so mentors are aware of any proposal changes/updates
Melange news framework GSoC project:
* http://socghop.appspot.com/student_project/show/google/gsoc2009/melange/t124022698643
== django patch + gaebar support ==
* *Lead:* Pawel Solyga
* *Priority:* Low
* *Scheduled for:* August 2009
* *Who:* Pawel Solyga
* *ETA:* 2 weeks
Melange currently uses Google App Engine and django, however some of the django functionality doesn't work on GAE. With django-patch support in Melange we would be able to leverage all features of django inside Melange. In addition django-patch is required to enable gaebar support in Melange. gaebar is Google App Engine Backup and Restore project which allows to easily import and export data from GAE datastore to local computer or to other instance of application running on GAE. With gaebar support we would be able to do regular backups.
* Make Melange compatible with django-patch
* Use gaebar to import, export data from Melange instances (backup)
* We might not need this if GAE export/import tool is introduced at Google I/O or somewhere in GAE roadmap (what will most likely happen since GAE Team is already working on it)
== PDF generation of CPT letters, certificates, other documents ==
* *Lead:* Pawel Solyga
* *Priority:* Medium
* *Scheduled for:* August 2009
* *Who:* Pawel Solyga, Leslie Hawthorn
* *ETA:* 1 week
Every year GSoC students request CPT letters or other documents that will confirm their participation in GSoC. Program Administrators print out GSoC student certificates for all students that successfully finished their projects. This process is very time consuming and we aim to automate it. External python script will be created with support for simple documents templates for different kind of documents including CPT letters and certificates. Script will be able to fetch data from Melange datastore about students and generate documents in pdf format using reportlab library. For certificates script will create one big ready to print pdf file that will include certificates for all students. For other documents where pdf generation will be much faster (few documents at a time) Program Administrator will be able to select students in Web UI, select document type he/she wants to send to the Student and with a click of a button, document pdf will be generated and send to user via email. Students should be also able to request those documents via web user interface and maybe cron jobs can autogenerate and send out those documents every couple hours automatically without any intervention from Program Administrator.
* external script which will use remote api and reportlab
* http://www.reportlab.org/rl_toolkit.html
<lh>
This feature will need to be able to embed images, e.g. scanned signature and company logo.
Future feature: make this functionality available to organizations to easily produce letters of recommendation for their students. Allow easy sharing of recommendation templates/good example letters.
</lh>
== clubs support ==
* *Lead:* Lennard de Rijk
* *Priority:* Medium
* *Scheduled for:* August 2009
* *ETA:* 2 weeks
Clubs within Melange are similar to User Groups. We would like to enable users to create different Clubs within Melange (i.e Apache Club could include all GSoC Apache students, mentors and org admins). Club owner will be able to manage memeberships, add/remove/invite/delete members. Club Members will be able to quickly apply to different projects by reusing their already created Club profile.
== dashboard view for Devs, Host, Org admin (all Roles) ==
* *Lead:* Pawel Solyga, Sverre Rabbelier
* *Priority:* Medium
* *Scheduled for:* August 2009
* *Who:* Merio Ferraro (GSoC), Daniel Hans (GSoC), Sverre Rabbelier, Pawel Solyga
* *ETA:* 2-3 weeks
Showing failed students on the organization page with additional comments from both students and mentors. Requires additional discussion with GOSPO Team.
<lh>
I see this as very different from dealing with failed students. People want to see things like:
* How many of my mentors still need to complete surveys?
* What time zones are my people in so it's easy to match them up?
etc. There's all kind of data folks will want on a dashboard. This is a great place to solicit community feedback. We can choose how to limit what we implement and others are welcome to create their own views/etc. They have the source code.
</lh>
== KML GSoC generation ==
* *Lead:* Pawel Solyga
* *Priority:* Low
* *Scheduled for:* August 2009
* *Who:* Pawel Solyga, Merio Ferraro (GSoC), Daniel Hans (GSoC)
* *ETA:* 1 week
KML should include location of all mentors and students and connections between them just like in previous years. Using libkml python bindings (http://code.google.com/p/libkml/).
KML example from GSoC 2008 can be found here:
* http://code.google.com/soc/soc_map2008.kml
== integration with Google Documents API and Spreadsheets (exporting, importing data) ==
* *Priority:* Low
* *Scheduled for:* September 2009
* *Who:* Melange Team
* *ETA:* 2-3 weeks
Currently Melange provides limited export of lists into CSV file. We would like to extend this export to support Google Spreadsheets API. With this functionality we could export all kinds of data into users GSpreadsheet and then edit it inside Google Documents or export it to different formats including CSV, Excel, ODF and any other formats supported by Google Docs.
<lh>
I think this feature is more useful for the organizations than for Google. Exporting directly to a Google spreadsheet is fine, but then I'm just going to download and work with the file locally. Spreadsheets doesn't do a good job with *gigantic* reports (e.g. 1000 GSoC students)
</lh>
== meetings organizer (integration with Calendar API) ==
* *Priority:* Medium
* *Scheduled for:* October 2009
* *Who:* Melange Team
* *ETA:* 3 weeks
We would like to enable Program Administrators, Students, Mentors and Org admins to organize meetings withing Melange (invite users to attend a meeting, list registered event/meeting users, add meeting webpage, integration with Calendar API for reminders).
<lh>
Also should allow tagging, e.g. Debian, Python, San Francisco and search based on tags. Should also autopublish to program calendar.
</lh>
== advanced search functionality in Melange ==
* *Priority:* Medium
* *Scheduled for:* October 2009
* *Who:* Melange Team
* *ETA:* 1 month
Currently Melange doesn't support search functionality. We would like to add support for searching different Melange models including Users, Students, Mentors, Org admins, Students Proposals and Projects, Documents. This feature can be also integrated with ajaxy table view.
== diff tool for proposals (documents, tracking changes, rietveld, history) ==
* *Priority:* Low
* *Scheduled for:* November 2009
* *Who:* Melange Team
* *ETA:* 3 weeks
We want to be able to do diffs and revision histories on our documents, student proposals.
[http://en.wikipedia.org/wiki/Rietveld_(Software) Rietveld] source code might help us to archive this goal.
== fully functional wiki mode in documents ==
* *Priority:* Medium
* *Scheduled for:* November 2009
* *Who:* Melange Team
* *ETA:* 1 month
This feature aims to introduce additional mode for wiki like syntax in Melange documents, by setting document mode you can choose between WYSIWYG editor and Wiki syntax mode.
<lh>
:)
</lh>
== geolocation based search functionality ==
* *Priority:* Low
* *Scheduled for:* November 2009
* *Who:* Melange Team
* *ETA:* 2-3 weeks
Every year GSoC students try to find other GSoCers that live in the same country or nearby their city. We would like to introduce geolocation based search functionality within Melange to allow Students, Mentors and Org admins to search for other Melange users nearby or in particular location. This feature can be integrated with meeting organizer to easily invite all users from within selected area.
== gallery with presentations, photos, videos ==
* *Priority:* Low
* *Scheduled for:* November 2009
* *Who:* Melange Team
* *ETA:* 3 weeks
With so many GSoC projects every year and internet media era, Melange is looking for a way to share GSoC students project presentations, screenshots, screencasts, GSoC related events photos, videos etc. This task aims to implement some form of gallery with presentations, photos, videos support (embedding presentations from Google Documents or other services, embedding photos from PicasaWeb, Flickr, embedding videos from YouTube, Vimeo).
Additional ideas:
* Embed YouTube videos on personal profile page
* Embed feeds, e.g. personal blog feed, Identi.ca Feed, Twitter Feed, Facebook Feed
<lh>
:)
</lh>
== import data from previous years ==
* *Lead:* Dan Bentley
* *Priority:* Medium
* *Scheduled for:* July - December 2009
* *Who:* Dan Bentley
* *ETA:* hard to determine
In previous years GSoC used different web application that was tight to Google infrastructure. The information about Students, Mentors and Org admins from previous years are still available and aim of this task is to import that data into our socghop instance of Melange. This task is non-trivial cause the data models in Melange and previous GSoC webapp are different so conversion script is required.
== social features (friends, sending messages, gtalk) ==
* *Priority:* Low
* *Scheduled for:* December 2009
* *Who:* Lennard de Rijk, Pawel Solyga
* *ETA:* 1 month
Melange is looking for a way to extend communication between GSoC/GHOP participants (Mentors, Organization Administrators, Students). In order to do that we would like to implement a set of social features including possibility to send/receive messages to other users, add other users as friends or talk with other users via Google Talk via web interface (this features is in the Google App Engine roadmap).
* GTalk integration (we are dependent on App Engine support for that)
* Sending Messages
* Managing Friends (add, invite, delete, list, search for friends)
<lh>
I think I'm just being a luddite, but I don't care about this at all. If I want to talk to someone, I am going to talk to them on IRC. I can see this being useful for first contact between mentors/students, e.g. "I'd like to talk to you about your proposal, can you please email me at ...."
Is their some useful way to be more inclusive in which instant messaging tools we'd support?
</lh>
== OpenSocial integration ==
* *Priority:* Low
* *Scheduled for:* January 2010
* *Who:* Melange Team
* *ETA:* hard to determine
This topic requires additional research in order to determine how we can use OpenSocial inside Melange and how long it will take to integrate that kind of functionality.