Difference between revisions of "GSoC2011"

From GnuCash
Jump to: navigation, search
(initial page)
 
Line 12: Line 12:
 
* April 25: Accepted student proposals published
 
* April 25: Accepted student proposals published
 
* May 23 - August 22: Students work on their GSoC projects.
 
* May 23 - August 22: Students work on their GSoC projects.
 +
 +
== Organization application ==
 +
There is a bunch of homework that our organization must complete before we have a chance to be accepted:
 +
http://www.booki.cc/gsoc-mentoring/_v/1.0/
 +
 +
In particular, we need come up with a good "ideas" page and also have good answers to the following questions:
 +
  1. Describe your organization.
 +
  2. Why is your organization applying to participate in Google Summer of Code 2011? What do you hope to gain by participating?
 +
  3. Did your organization participate in past Google Summer of Codes? If so, please summarize your involvement and the successes and challenges of your participation.
 +
  4. If your organization has not previously participated in Google Summer of Code, have you applied in the past? If so, for what year(s)?
 +
  5. What license(s) does your project use?
 +
  6. What is the URL for your Ideas page?
 +
  7. What is the main development mailing list for your organization?
 +
  8. What is the main IRC channel for your organization?
 +
  9. Does your organization have an application template you would like to see students use? If so, please provide it now.
 +
  10. Who will be your backup organization administrator?
 +
  11. What criteria did you use to select these individuals as mentors? Please be as specific as possible.
 +
  12. What is your plan for dealing with disappearing students?
 +
  13. What is your plan for dealing with disappearing mentors?
 +
  14. What steps will you take to encourage students to interact with your project's community before, during and after the program?
 +
  15. What will you do to ensure that your accepted students stick with the project after Google Summer of Code concludes?
 +
  
 
== Potential Student Participants ==
 
== Potential Student Participants ==
  
Please start with posting your ideas below, and starting a discussion on our mailing list gnucash-devel, see [[Mailing Lists]], to seek views from the community. The idea is to find out from members if your idea is feasible in the timescales of Google Summer of Code.
+
??????? Please start with posting your ideas below, and starting a discussion on our mailing list gnucash-devel, see [[Mailing Lists]], to seek views from the community. The idea is to find out from members if your idea is feasible in the timescales of Google Summer of Code.
  
 
You will then need to turn your ideas into a proposal for a project. We are proposing the following template for student proposals:  
 
You will then need to turn your ideas into a proposal for a project. We are proposing the following template for student proposals:  
  
  Basic Information
+
  ?????? Basic Information
 
  -----------------
 
  -----------------
 
  Student name:
 
  Student name:
Line 31: Line 53:
 
  Background/Programming Information
 
  Background/Programming Information
 
  -----------------------------------
 
  -----------------------------------
  What programming experience do you have so far?
+
  ###What programming experience do you have so far?
 
  Have you worked on programming project(s) before, and which one(s)?
 
  Have you worked on programming project(s) before, and which one(s)?
 
  What project in GnuCash would you like to work on?
 
  What project in GnuCash would you like to work on?
Line 46: Line 68:
 
=== Migrate Reports into HTML templates ===
 
=== Migrate Reports into HTML templates ===
  
Currently, almost all reports in gnucash are generated from files in a scripting language (here: Scheme) which writes HTML to the output.  As a result, it is rather difficult to change the resulting HTML into custom requirements.  As a new alternative, the "eguile" generator will use a HTML template with integrated scheme statements as input, and generate the HTML output from there. This is similar to PHP scripts on a webserver, which seem to fit well this kind of applications.
+
?????? Currently, almost all reports in gnucash are generated from files in a scripting language (here: Scheme) which writes HTML to the output.  As a result, it is rather difficult to change the resulting HTML into custom requirements.  As a new alternative, the "eguile" generator will use a HTML template with integrated scheme statements as input, and generate the HTML output from there. This is similar to PHP scripts on a webserver, which seem to fit well this kind of applications.
  
 
This project would try to migrate as many reports as possible from the old, script-driven approach, to the new, eguile-generator approach.  Along the way, parts which are still missing might be discovered, and those will have to be implemented as well. On the other hand at least one eguile-Report is already existing, so most of the infrastructure is probably already finished.
 
This project would try to migrate as many reports as possible from the old, script-driven approach, to the new, eguile-generator approach.  Along the way, parts which are still missing might be discovered, and those will have to be implemented as well. On the other hand at least one eguile-Report is already existing, so most of the infrastructure is probably already finished.
Line 56: Line 78:
 
=== [[Cutecash]]: An alternative GUI ===
 
=== [[Cutecash]]: An alternative GUI ===
  
Recently, an experiment was started to re-write the GUI with a different language and toolkit: C++, Qt4, CMake. Can be developed either on Linux/gcc or on Windows/mingw or maybe even Windows MS Visual Studio. See [[Cutecash]] for the vision of that project and on how to get involved.
+
???????? Recently, an experiment was started to re-write the GUI with a different language and toolkit: C++, Qt4, CMake. Can be developed either on Linux/gcc or on Windows/mingw or maybe even Windows MS Visual Studio. See [[Cutecash]] for the vision of that project and on how to get involved.
  
 
* '''Student:'''
 
* '''Student:'''
Line 64: Line 86:
 
=== Delimited file importer ===
 
=== Delimited file importer ===
  
(copied from 2007, still relevant) A ''CSV importer'' is the more direct way to say this, but general delimited file support would be best; think of the "Import text file" dialog in Gnumeric, and in fact try to leverage that same code, if possible.  Supporting the core transaction profile is a good start, but "extended" import options (Invoices, time-spent, &c.) would be nice too.  
+
???????? (copied from 2007, still relevant) A ''CSV importer'' is the more direct way to say this, but general delimited file support would be best; think of the "Import text file" dialog in Gnumeric, and in fact try to leverage that same code, if possible.  Supporting the core transaction profile is a good start, but "extended" import options (Invoices, time-spent, &c.) would be nice too.  
  
 
There exists already a wizard-like GUI for accomplishing this task, but it is not yet finished and works only in very easy cases. The student working on this task can use the existing code as a starting point, which means there will already be some features to demonstrate and test. Eventually this feature should work with all sorts of CSV input files and extract the right portions of data, while communicating with the user in a reasonable way about the part of the data which cannot be recognized and imported.  Ideally, each required decision should have a reasonably guessed suggestion, and additionally there should be a "preview" of what the user's decision will result in.
 
There exists already a wizard-like GUI for accomplishing this task, but it is not yet finished and works only in very easy cases. The student working on this task can use the existing code as a starting point, which means there will already be some features to demonstrate and test. Eventually this feature should work with all sorts of CSV input files and extract the right portions of data, while communicating with the user in a reasonable way about the part of the data which cannot be recognized and imported.  Ideally, each required decision should have a reasonably guessed suggestion, and additionally there should be a "preview" of what the user's decision will result in.
Line 75: Line 97:
 
=== Register Rewrite ===
 
=== Register Rewrite ===
  
(copied from 2007, still relevant) Finish the re-write of the GnuCash register to use the GtkTreeView.  Make sure all the interfaces that use the Register (Transaction Register, SX Register, Invoice Register) can use the new UI.
+
?????? (copied from 2007, still relevant) Finish the re-write of the GnuCash register to use the GtkTreeView.  Make sure all the interfaces that use the Register (Transaction Register, SX Register, Invoice Register) can use the new UI.
  
 
* '''Student:'''
 
* '''Student:'''
 
* '''Mentor:''' ?
 
* '''Mentor:''' ?
 
* '''Backup Mentor:'''
 
* '''Backup Mentor:'''

Revision as of 15:39, 3 March 2011

Google Summer of Code 2011

GnuCash will apply as a mentoring organization to the 2011 Google Summer of Code (GSoC). The following are the proposed projects from the GnuCash developers. If you are interested in applying to the Google Summer of Code then follow the link to google and apply.

See SoC2007 and SoC2010 for our previous ideas and four accepted students who worked on gnucash projects in the GSoC 2007.

Timeline

See http://google-opensource.blogspot.com/2011/02/mentoring-organization-applications-now.html . The timeline as copied from here:

  • March 11: Mentoring organization application deadline.
  • March 18: List of accepted mentoring organizations published
  • April 8: Student application deadline.
  • April 25: Accepted student proposals published
  • May 23 - August 22: Students work on their GSoC projects.

Organization application

There is a bunch of homework that our organization must complete before we have a chance to be accepted: http://www.booki.cc/gsoc-mentoring/_v/1.0/

In particular, we need come up with a good "ideas" page and also have good answers to the following questions:

  1. Describe your organization.
  2. Why is your organization applying to participate in Google Summer of Code 2011? What do you hope to gain by participating?
  3. Did your organization participate in past Google Summer of Codes? If so, please summarize your involvement and the successes and challenges of your participation.
  4. If your organization has not previously participated in Google Summer of Code, have you applied in the past? If so, for what year(s)?
  5. What license(s) does your project use?
  6. What is the URL for your Ideas page?
  7. What is the main development mailing list for your organization?
  8. What is the main IRC channel for your organization?
  9. Does your organization have an application template you would like to see students use? If so, please provide it now.
 10. Who will be your backup organization administrator?
 11. What criteria did you use to select these individuals as mentors? Please be as specific as possible.
 12. What is your plan for dealing with disappearing students?
 13. What is your plan for dealing with disappearing mentors?
 14. What steps will you take to encourage students to interact with your project's community before, during and after the program?
 15. What will you do to ensure that your accepted students stick with the project after Google Summer of Code concludes?


Potential Student Participants

??????? Please start with posting your ideas below, and starting a discussion on our mailing list gnucash-devel, see Mailing Lists, to seek views from the community. The idea is to find out from members if your idea is feasible in the timescales of Google Summer of Code.

You will then need to turn your ideas into a proposal for a project. We are proposing the following template for student proposals:

?????? Basic Information
-----------------
Student name:
Location (Home town, state, country):

Contact Information
-------------------
Email: 
Phone number (needed during the SoC work phase):

Background/Programming Information
-----------------------------------
###What programming experience do you have so far?
Have you worked on programming project(s) before, and which one(s)?
What project in GnuCash would you like to work on?
How do you propose to solve the problem(s) posed in the project you'd like to work on?
Have you ever built an open source package from source?
Have you ever built GnuCash from source?

If you're accepted we will also be asking for your proposed username and SSH public key for access to the subversion server. Please be prepared to provide those.

Proposed Projects 2010

Here we collect projects which are proposed for students interested in the 2010 GSoC.

Migrate Reports into HTML templates

?????? Currently, almost all reports in gnucash are generated from files in a scripting language (here: Scheme) which writes HTML to the output. As a result, it is rather difficult to change the resulting HTML into custom requirements. As a new alternative, the "eguile" generator will use a HTML template with integrated scheme statements as input, and generate the HTML output from there. This is similar to PHP scripts on a webserver, which seem to fit well this kind of applications.

This project would try to migrate as many reports as possible from the old, script-driven approach, to the new, eguile-generator approach. Along the way, parts which are still missing might be discovered, and those will have to be implemented as well. On the other hand at least one eguile-Report is already existing, so most of the infrastructure is probably already finished.

  • Student:
  • Mentor: jsled
  • Backup mentor:

Cutecash: An alternative GUI

???????? Recently, an experiment was started to re-write the GUI with a different language and toolkit: C++, Qt4, CMake. Can be developed either on Linux/gcc or on Windows/mingw or maybe even Windows MS Visual Studio. See Cutecash for the vision of that project and on how to get involved.

  • Student:
  • Mentor: Cstim
  • Backup Mentor:

Delimited file importer

???????? (copied from 2007, still relevant) A CSV importer is the more direct way to say this, but general delimited file support would be best; think of the "Import text file" dialog in Gnumeric, and in fact try to leverage that same code, if possible. Supporting the core transaction profile is a good start, but "extended" import options (Invoices, time-spent, &c.) would be nice too.

There exists already a wizard-like GUI for accomplishing this task, but it is not yet finished and works only in very easy cases. The student working on this task can use the existing code as a starting point, which means there will already be some features to demonstrate and test. Eventually this feature should work with all sorts of CSV input files and extract the right portions of data, while communicating with the user in a reasonable way about the part of the data which cannot be recognized and imported. Ideally, each required decision should have a reasonably guessed suggestion, and additionally there should be a "preview" of what the user's decision will result in.

  • Student:
  • Mentor:
  • Backup mentor:

Register Rewrite

?????? (copied from 2007, still relevant) Finish the re-write of the GnuCash register to use the GtkTreeView. Make sure all the interfaces that use the Register (Transaction Register, SX Register, Invoice Register) can use the new UI.

  • Student:
  • Mentor: ?
  • Backup Mentor: