Difference between revisions of "GSoC2011"

From GnuCash
Jump to: navigation, search
(Proposed Projects)
(Cutecash: An alternative GUI)
Line 59: Line 59:
 
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.
  
'''Prerequisites''': C coding on Windows (Visual Studio) or Linux
+
'''Prerequisites''': C coding on Linux or Windows (mingw or Visual Studio)
  
 
'''You will learn''': You will have the time to get to know the Qt C++ GUI toolkit, but this is rather easy to learn.  
 
'''You will learn''': You will have the time to get to know the Qt C++ GUI toolkit, but this is rather easy to learn.  

Revision as of 20:26, 10 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 ideas from the GnuCash developers for student projects. If you are interested in applying to the Google Summer of Code, follow the link to google and apply.

Timeline

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.

Proposed Projects

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

Other lists of feature proposals are here:

In particular, the GnuCash developers think the following ideas would make good GSoC projects:

Data model unit testing

Many parts of the data and object model of gnucash are not yet well covered by unit tests. Also, this usually means the data model itself isn't well documented. In this task, the student can use GnuCash as a real-life example for software engineering, working his/her way through the architecture and documenting and adding unittests along the way. Unit testing, at least for the core classes that are GObject-based, can be done independent of UML modelling of the class relationships.

Prerequisites: Software engineering knowledge; C coding on Linux; probably UML

You will learn: You will have the time to evaluate your preferred unittesting framework, or write your own. You will apply this framework to the existing application code of GnuCash, so that the use cases for the tested code sections are always visible as well.

You can achieve: You will see how some more fragile parts of GnuCash can be refactored into much better code by using your newly introduced unittests. Eventually new user features will become possible only because your unittests lay the foundation for major architecture changes.

Mentor: John Ralls and others

GnuCash Business Integration

GnuCash already offers many powerful features for usage in business. However, some of those features are not yet integrated well enough within gnucash, and we would love to see some closer integration of those in the whole of GnuCash. For example, it is probably possible to turn gnucash into a Point-of-Sale (POS) application with only minor changes.

Prerequisites: C coding on Linux; GUI creation in Gtk+; Knowledge about use cases in business (POS or similar), or good communication skills to talk to some of the business users (our "customers") to find out their exact requirements

You will learn: Turning customer requirements into C and Gtk+ code so that the customers are happy

You can achieve: GnuCash will then be not only one among many software products, but it will be the one that makes the business users really happy

Mentor: Geert Janssens and others

Python reporting and scripting engine

Currently, the scripting in gnucash for e.g. report creation is avilable in the rather uncommon language Scheme. We would like to see a more common scripting language such as Python in there. The first steps of its integration are already prepared.

Prerequisites: C coding on Linux; Python coding

You will learn: Deciding which features are implemented more efficiently in the C language or better in the Python language; Tying C and Python together really well

You can achieve: Opening a whole lot of new scripting possibilities inside gnucash; Implementing many long-awaited financial reports in the newly integrated Python language

Mentor: Christian Stimming and others

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.

Prerequisites: C coding on Linux or Windows (mingw or Visual Studio)

You will learn: You will have the time to get to know the Qt C++ GUI toolkit, but this is rather easy to learn.

You can achieve: You can pick the most exiting GUI features and implement those first. Then, you will need to listen to the user's priorities to hear which features are now efficiently possible because of the new toolkit, and implement those.

Mentor: Christian Stimming and others

Student Participants Application

If you're a student who is interested in any of the ideas above, please perform the following steps:

  • Subscribe to our mailing list gnucash-devel and send a message to the list, announcing your interest and starting a discussion on how to work on this project. 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 and apply at google for your project. We are proposing the following template for student proposals:
Basic Information
-----------------
Student name:
Location (Home town, state, country):

Contact Information
-------------------
Email: 
Instant messaging contact details (Skype or similar):
Phone number (our mentors will ask for a few phone conversations, especially in the beginning):

Background/Programming Information
-----------------------------------
What programming experience do you have so far (languages, operating systems, compilers)?
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. If you need assistance with those steps, don't hesitate to ask on the mailing list gnucash-devel as well.

Previous Years

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