blob: 3d63a0f3a37261fbe57640d25a7d3e1ea22120e3 [file] [log] [blame]
#summary Ideas List for GSoC 2009
#labels Contents-Complete,Importance-Deprecated
= Introduction =
_While Melange will apply as an organization, there is no guarantee that we will be accepted as an organization for GSoC 2009. You're invited to drop by at #melange IRC to discuss. Help us make it happen._
== [PossibleMentors Possible Mentors] ==
These are, in order, the most likely or best mentors for this project idea.
== Skills ==
* All developers will need to have experience in, or be willing to learn Python.
* Prior experience with Django or an equivalent framework would be a distinct plus.
* Knowledge of JavaScript (AJAX), and a feeling for web design is big plus as well.
== Difficulty==
'Easy', 'Moderate' or 'Hard'. Hard is not necessarily better! We are risk averse!
== Early Spinoffs ==
We want code that we can actually use, not code that shows great promise. At the half way stage, you MUST have something complete that we can actually use as a 'spin off' of the work. In discussing projects we will try to help you find ways to have spinoffs along the way.
----
----
= Idea Details =
----
----
= Full Function Wiki =
===Description===
Either integrating [http://en.wikipedia.org/wiki/MoinMoin MoinMoin] or [http://en.wikipedia.org/wiki/Rietveld_(Software) Rietveld]. We're looking for a bit more than just having these in the same web server! We want to be able to do diffs and revision histories on our documents. We'd like to be able to have Melange tables show up in wiki pages. We'd like to be able to create wiki pages based on a template specified as a quiz.
----
= Quiz Adapter =
===Description===
Melange currently has two different systems for forms. There is the quiz system which is very flexible and dynamically changeable. There is the custom page system, which is very well, customizable. We'd like to marry the two systems which currently don't speak very much to each other by having a student who writes an adapter. Ultimately we'd like to either have a super quiz system where we can use some of the customizations used on custom pages, or a super custom page system which is as flexible and dynamic as the quiz system.
----
= Statistics Module =
===Description===
Extract interesting statistics from the Melange data for the benefit of the program admin. 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)
===Skills===
* AJAX skills a plus.
===Difficulty===
* Moderate to hard.
===Early Spin Off===
* (For example) At half way stage ability to show a pie chart of students by location. Also ability to show some stats of any kind broken down by the number of active projects in the organization, or by new or repeat organization. Your mid term goals need to be clearly stated in your application.
----
= Other ideas =
* integrate OpenSocial into Melange
* add features required for running Google Highly Open Participation Contest
* write tests
* add functional tests using twill
* extend functionality of our buildbot (post commit hooks, pylint integration, application deployment to testing App Engine instance)
* add feeds support for comments, announcements etc.
* add features that will enable to organize GSoC/GHOP Meetings (creating new events, managing participants, integration with Google Calendar API)
* support for Surveys inside Melange (creating surveys/editing surveys/ collecting surveys answers, surveys stats) similar form that we had in previous GSoC app, notifications about surveys,
* Melange API allowing any external page to list current status of tasks and tasks list, participating projects etc.
* generating pdfs, docs of student applications
* generating csv, pdfs of tables content
* integrating export functionality of tables, proposals with Google Docs (use Google Docs API)
* upload of student presentations (storage, viewer)
* work on selected issues from Melange Issue Tracker
* Non US students should be able to upload their Tax forms via their Student dashboard page (no more faxing or sending via email)
* Melange should enable admins/host to easily autogenerate CPT letter or letter of acceptance if one is needed/requested by student. This would generate pdf file ready to print based on the data from student profile (including program logo).
* User (Roles) profiles (mentor/admin/student/organization admin/) with profile photo, functionality to share profile information with other GSoCers ) - privacy settings for your profile
* dates that are setup in GHOP and GSoC Melange configuration page can be later automatically put into faq and terms of program in specific places
* Melange survey module should have autosave forms functionality (just like in gmail)\
* Table view with nice JS filtering option (ajax ?) - used for tasks, proposals, schools, countries, organization names, listing students, mentors etc, just any kind of table data view (this should be universal and reusable)
* Dashboard for mentor, org admin, host, student, developer with nice information/status box, updates, stats depending on the Role
* Melange will have access to blog urls and feeds from user profiles using Google FeedBurner (RSS/Feed) API we can create a nice Melange GSoC and GHOP blog planet and also add it to the Melange main page as it already done on many Google products pages
* Advanced search functionality (student, mentor, school, organization etc)
* Google Calendar API support for events planning
* RSS feeds notifications about comments, events, important dates etc
* Adding other GSoCers as friends to your profile,
* Sharing profile data with other social network users
* Messaging module allowing to send messages to other users (emails) (Way to improve communication between GSoCers, GHOPers)
* Requesting profile data access
* Better geo location features
* Nice upload of profile photo with crop functionality via JS library.
===GHOP Melange features===
* Submitting Your Claim for Prizes Online and Submitting Your Parental Consent Form - instead of faxing or sending this forms via email to LH, student will have ability to upload scanned document to their GHOP profile account, Program Administrator will have access to special view listing all the GHOP students allowing her to filter the ones that didn't send form yet and by selecting them and clicking ‚'Remind' button, Melange would automatically send reminder email to all of the selected students (simple and efficient).
More:
http://groups.google.com/group/ghop-announce/web/how-to-claim-your-ghop-prizes
* Special button to generate addresses from profiles in DHL,FedEx friendly format.
* Parsing phone numbers in user profiles, acceptable formats: +1.650.214.8031, 16502148031, 1-650-214-8031, 1 (650) 214-8031, 1 (650) 214 8031, 1 650 214 8031
* Mentors and org admins should be able to track students progress, completed tasks, open/reopened tasks, claimed tasks, there will be special views for that with filter options (status of the tasks should be open to public or not , Melange API ?)
* Each task should have one of the following status:
* Open: This task has not yet been claimed,
* Reopened: This task has been claimed but never finished and has been reopened,
* Claimed: This task has been claimed and someone is working on it,
* ActionNeeded: Work on this task must be submitted for review within 24 hours,
* Closed: Work on this task has been successfully completed.
* Mentors and org admins should be able to setup task updates notifications
* Any GHOP surveys should be done via Melange Survey module that would enable to create/edit/delete questions and build surveys from questions.
* Using GHOP calendar and Calendar API mentors, admins, students would get reminders about important dates in the program, emails can be send to the program group or/and to users emails (same for GSoC, that way LH has less work and life is good)
* Admin/host (LH) should be able to setup tasks limits for each participating project
* Admin/host (LH) should be able to view all participating projects/organization in special view with simple statistics on the same page
* Any additional statistics in Melange project should use Google Chart API and Google Visualization API
* Maybe it would be wise to add progress variable to each task so that GHOP student can update the value of it during the time he works on the particular task (0%-100%), that will also allow mentor to track progress of students tasks, when task is 100% complete mentor can get email notification to take action on particular student task (Close it)
* Informing mentor about completed task
* Each GHOP task should be tagged (Documentation, User Interface, Code, etc), GHOP admin/host can setup available tags in GHOP Melange configuration page, that way later on there are no typos and Melange can easily generate statistics for particular types of tasks. Tasks will typically fall into the following categories:
* Code: Tasks related to writing or refactoring code,
* Documentation: Tasks related to creating/editing documents,
* Outreach: Tasks related to community management and outreach/marketing,
* Quality Assurance: Tasks related to testing and ensuring code is of high quality,
* Research: Tasks related to studying a problem and recommending solutions,
* Training: Tasks related to helping others learn more,
* Translation: Tasks related to localization,
* User Interface: Tasks related to user experience research or user interface design and interaction
* Each GHOP tasks should have internal (mentors/org admins/hosts) or maybe public difficulty level, which can be later helpful in selecting grand prize winners and runner ups (not only amount of tasks counts but also quality of student work, task difficulty and other factors), organization has quick access to overview of what kind of tasks each student did and what's it's total point sum etc., this might be also available only for admins and mentors just in order to make a Grand Prize winners choosing process easier.
* GHOP Melange should have a special configuration page
* where you can setup dates like : when contest begins , when contest ends, what is the age (range) of the students that can participate for example: thirteen (13) years of age or older on November 27, 2007 (this date would be setup in configuration page and once student fill in profile data you can automagically check whether he can participate in contest)
* where you can setup countries that the contest is not open to and automatically check for students from this countries and inform them about the problem
* Selecting grand prize winner should be done via special view in the GHOP Melange project allowing admins and mentors quickly see particular student tasks, tasks amount and difficulty level (this process should be similar to how proposals are rated in GSoC)
* Additionally using special view org admin can setup number of runner ups and select them from participating students (this can be later on used to automatically generate list of both grand prize winners and runner ups)
* Prizes for completed entries - depending on the tasks amount , Melange should automatically setup prizes for each student (t-shirt, $ price), prices options and setup should be available via GHOP Melange configuration page
* Claiming first task doesn ºt require to have full profile (just Google account), however after first completed tasks, students should also not be able to register for a second GHOP task until they have completed registration (we should send an email reminder). Without registration, there can be no shirt, that should be checked when Melange setups prizes for each student
* Mentors/org admins should also get information if student claimed some tasks but didn't complete (task was reopened), with the number of that kind of tasks
* Student cannot work on more than one task at a time (this was a problem with first edition of GHOP, since we had to find duplicates using python script) - Melange will not allow GHOP student to claim second task while he is still working on previous one. There will be no need for any additional duplicates check scripts.
* There should be a view to see latest added tasks (maybe in dashboard ? or on main page ?)
* There should be a way to easily see students completed tasks (by anyone)?
* Tasks list per different criteria (also from different projects in one view)
* Tasks list quota per project (admin should be able to change that)
* GHOP Grand Prize winners are selected based on completed number of tasks, tasks quality, difficulty, student community activity and things like that, so it is not just number of completed tasks
----
= Some Rough Notes =
* Did we mention that we have an active IRC channel, #melange?
* Melange is planning to participate in GSoC and planning to provide support for the GSoC infrastructure for GSoC in 2009. Confused? So are we at times. If you see GSoC/M then the person who wrote it is making it clearer that it's about Melange participating in GSoC as a mentoring organization. "We're getting ready for GSoC/M", means we're preparing pages like this one, getting mentors to commit to being mentors etc. "We're getting ready for GSoC" could mean we're fine tuning the code ready for running the entire GSoC program.
* Some words for you, to inspire more ideas: *[http://code.google.com/p/soc/wiki/TestingGuidelines Automated Testing]*, *World Domination* (ask), *Access Control Module*, *Profiling*, *Log Analysis*, *[http://code.google.com/p/soc/issues/list?can=2&q=&sort=-id Issue Tracker]*, *[http://code.google.com/p/soc/wiki/AccessControl Security]*, *Optimization(s)*, *Mentor Summit*, *GHoP*.