Well, I tried to make it equal Melange proposal, but to a updated version, check the link in comments
Who:
My name is Felipe Eltermann and I study Computer Engineering at Unicamp (Brazil).
You can find me on e-mail "felipe.eltermann at gmail.com" and on IRC "eltermann".
I'm a free software enthusiast, first because of the freedom philosophy itself and also because I believe in the technological progress based on collaborative work.
I use GNU/Linux running KDE, Emacs for coding, Git as version control system and drush for developing Drupal.
Have you contributed to a open source project before?
I do Drupal in my day-job at Chuva-Inc. where I wrote patches to PagSeguro and Correios Quotes (both Ubercart integrated modules), which are running on production environments. Some were also integrated to the contrib modules.
Other patches to Drupal modules (the first of it was already accepted):
http://drupal.org/node/977636
http://drupal.org/node/1108752
Why do you want to do a project involving Drupal?
Last year I started working with Drupal and got really impressed with its power! Specifically, I worked on a few projects using Ubercart.
Recently I watched DrupalCon videos about Drupal Commerce, read lots of stuff on drupalcommerce.org and read some pieces of code too.
So, both because of the "giving back" motivation and the "collaboratively working on something awesome" motivation, I'm really excited to work on Drupal Commerce as a GSoC project.
Overview:
Build an interface between the process of creating a discount and the Rules settings that implements it. Through a friendly interface the store admin will be able to set up commonly used discounts without concerning with the Rules that are running behind the scenes.
Description:
Pricing in Drupal Commerce is all based on Rules, so it is possible to define numerous types of events, conditions and actions (and combine them) to provide discounts for products. Indeed, it is fully extensible so a Rules skilled user is able to set just any kind of discounts he want.
However, it is still not interesting in terms of usability. We don't want a store admin to concern with how to use Rules. Also, in most cases the discounts desired are in a predictable set of common discounts types.
So the basic idea is to provide the capacity of a store admin to easily set up common used discounts.
In general terms, it can be divided in 2 parts:
1- Define an API to translate Drupal Commerce Configurable Data into Rules.
It could be used later for some things other than discounts: simple tax configuration, coupons, currency conversion... (this will give a nice road map to the after SoC)
This is the main and hardest task and there are some questions that need to be answered:
* How to synchronize those Configurable Data and Rules?
* In rszrama's words: "Where is the line to draw where you say 'Nope, you just need to use Rules'"
2- List and implement common discounts types, and design the interface(s) the store admin would like to have available.
Well, that is the project motivation. We need to have functional use cases after the SoC. Some ideas: discounts based on.. roles, product, product type, date intervals (e.g Christmas discounts), field selected (e.g certain brand).
Schedule:
(just some explanation here: I'm in Brazil so I'll be in a "Winter of Code". So, in June I have final exams)
May 23 - May 29: Get familiarized with D7, Entity API, Fields API and Commerce
May 30 - June 5: Get familiarized with Rules, and specifically how Commerce integrates with it
June 6 - June 12: Make a good definition of "Configurable Data" and plan how the translation into Rules will work (here I will answer to the questions in "Description-1")
June 13 - June 19: Design pretty good interfaces of generic Configurable Data and / or discounts specific setup pages
June 20 - June 26: Start coding the translation API
June 27 - July 3: Code translation API + tests + doc..
July 4 - July 10: Finish translation API tests and doc
July 11 - July 17: Rank discounts types and start the development of it's internals and UI - I'm going to take a month for it
July 18 - July 24: Code discounts + UI + simple tests + doc..
July 25 - July 31: Code discounts + UI + simple tests + doc..
August 1 - August 7: Code discounts + UI + simple tests + doc..
August 8 - August 14: Finish any coding and improve simple tests
August 15 - August 22: Improve documentation
Mentors:
Mentor: rszrama
Co-mentor: wundo
Puzzle:
return array();
Links:
http://groups.drupal.org/node/138319 - First discussion
http://groups.drupal.org/node/140354 - Copy of the project description
http://drupal.org/sandbox/eltermann/1119080 - Sandbox