Google Summer of Code 2012
GnuCash applies as a mentoring organization in the 2012 Google Summer of Code (GSoC) program. The following are the proposed ideas from the GnuCash developers for student projects. If you are interested in applying as a student for the Google Summer of Code, first contact the GnuCash developers through the Mailing List firstname.lastname@example.org to discuss your ideas, then follow the link above and apply at Google.
The timeline is copied from here:
- March 16: List of accepted mentoring organizations published
- April 6: Student application deadline.
- April 23: Accepted student proposals published
- May 21 - August 20: Students work on their GSoC projects.
Here we collect projects which are proposed for students interested in the 2011 GSoC.
Other lists of feature proposals are here:
- http://gnucash uservoice.com/ , ranked by user's votes
- https://bugzilla.gnome.org/browse.cgi?product=GnuCash , then click on "enhancements" in the middle of the right column
In particular, the GnuCash developers think the following ideas would make good GSoC projects:
Data model unit testing
- draft *** 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
If you have other ideas yourself, do not hesitate to propose them on the gnucash-devel mailing list. We have several mentors available which could mentor projects proposed by yourself as well.
However, first please read this mailing list reply and follow its instructions. Then, explain your progress on the mailing list and discuss your project ideas in some more detail there. Announce your idea on the list, and you will quickly receive some feedback on whether this sounds like a viable project within GSoC or not. We are looking for your ideas.
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 (Country, state, Home town, state): Email: Instant messaging contact details (Skype or similar): Background/Programming Information ---------------------------------- Have you ever built GnuCash from source? Please do so before applying (see http://wiki.gnucash.org/wiki/Building), otherwise your application will not be considered! What programming experience do you have so far (languages, operating systems, compilers)?
- Note: We should add some pop quiz questions here, to make the application review a bit easier.
What project in GnuCash would you like to work on? What will be the result of your project (e.g. "At the end of my project, GnuCash can handle twenty new import and export file formats")? How do you propose to solve the problem(s) posed in the project you'd like to work on?
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.