Proposal for GSoC 2011

Ajay Thomas ajaythomas.inc at gmail.com
Sun Apr 3 01:31:39 EDT 2011


Hi Christian and others

I have drafted my proposal for GSoC 2011. Please provide feedback and
suggestions for this proposal. I am sure there is always room for
improvement. Hoping to be a part of the developer team of GnuCash. Necessary
mockups have been linked to webpages where they are available. I have also
attached the proposal.




*Title:* *Live news feed from financial newspapers as a GnuCash plugin*



*Abstract:*



My idea is to implement a plugin within GnuCash which gathers live news feed
from financial newspapers and brings it to the user without him/her having
to open a browser and scan sites to see how his portfolio is performing.
This plugin allows users to track the progress of his portfolio and if the
user needs a detailed report, the link always opens in a browser. This
plugin would be a first step towards making the GnuCash software a more
internet based one.

* *

*Benefit to the users:*

* *

Most users (including me and many of my friends who use it) use most of the
potential of GnuCash including accounting for equities and bonds invested by
them. While it gives a platform for them to keep a record of their equities,
it is better to provide a more user-oriented personalized approach and this
plugin comes into play scanning financial news feeds and bringing the news
right into the window of GnuCash.
Project Details:

GnuCash has a lot of features including accounting for equities and shares.
However, apart from the math and calculation part, GnuCash does not have any
plugin that allows the user to see how his portfolio is performing and the
finance news. I thought of creating a plugin which functions like an RSS
feed in the GnuCash window itself and scans financial news from newspapers
selected by the user beforehand. Thus, a personalised live news feed is
available to the user in GnuCash itself. When the user clicks on the link,
the web page would be rendered right inside a window in GnuCash.

Possible implementation methods available are:

·         A webkit window which loads an HTML page with embedded javascript
which is saved in the gnucash's installation path.

·         Using C code to implement gtk widgets

·         Using C++ code to implement gtkmm widgets

·         Using Scheme to write a plugin

 I have seen and tweaked around the existing support for the first three
technologies in GnuCash.

I have looked into some plugins developed using gtk and also the webkit
rendering done for the reports in GnuCash. Support for gtkmm widgets is a
relatively new functionality. Weighing the pros and cons of each
implementation, I will be able to select the best one out of them and will
try and get a good balance of both the aesthetic sense and functionality.

Currently, I am developing some test menu plugins similar to the bi_import
plugin and have familiarized myself with how the UI and backend code can be
implemented. These plugins will live under src/plugins/ . They will be
included under Tools in the menu toolbar. On clicking, the action in the
ui.xml file will be called. I am working on different actions that a plugin
can perform. I am very comfortable with HTML and javascript and I believe I
can easily add more functionality to the RSS plugin using these
technologies.

Also with respect to GnuCash functionality and working, I am going through a
couple of existing minor priority bugs and getting more familiar with the
source code.
Deliverables:

·         A plugin wherein the user gets personalized live news feed from
financial newspapers

·         The plugin will have the following features:

◦   The user can add feed urls through the Add Feed Window
(Mockup<http://shadytest.orgfree.com/mockup-setup.htm>
)

◦   Edit and delete the feed urls and organize the feed urls into specific
folders using the Properties Window of the plugin
(Mockup<http://shadytest.orgfree.com/mockup-props.htm>
)

◦   Webkit Window displaying the summary of the link in the feed, the user
can click on the title to see the complete web page through a browser



If time permits, I plan to include some of these functionalities described
below. I intend to implement some of these ideas after the GSoC as an
ongoing effort to improve the plugin functionality:



·         Support for APML – Attention Profiling Mark up language

 APML is an open standard (in APML.xml) that encapsulates our interest
through our feed urls in an open standard way. Having this information, we
can use it to communicate or choose proper feeds, enable/ disable feed based
on our attention value.

·         Offline availability of feed content and better organization of
feed urls

Based on user input, the plugin chooses how much data (in terms of MB)
should be cached for future offline reading and for how long. Also based on
this information, we can suggest to users to delete feed urls that do not
have updates for a threshold time, which can again be set by the user
itself.

·         User can remove specific news feed based on keywords.

Sometimes newsfeeds from a particular feed URL can be overwhelming and users
might want to restrict the newsfeed by choosing only topics within a
particular feed that they are interested in. This seems to be a challenging
idea, but after implementing the current functionality of the plugin, I
could decide on the feasibility of this feature. We can also make use of the
APML profile to automatically enable/disable news items from news feed.
Project Schedule:

*Before 23 May*

·         Study in detail the Glib library, and implementation of widgets
and integration of plugins with the codebase of GnuCash.

·         Develop test plugins using the above mentioned implementation
methods and weigh the pros and cons of them.

·         Bond with development community and ask for suggestions and
feedback on the test plugins developed.

·         Work on the UI and back end design of the plugin.



*23 May – 11 June *

·         Develop the code to display the webkit window for displaying the
RSS feeds within gnucash.

·         Develop the menu for the plugin and other UI related work.

·         Modify the makefile for including the plugin in the building and
configuration step.



*12 June – 11 July*

·         Develop the “user input setup” dialog box for the feeds.

·         Develop code to allow users to create folders for related feed
urls.

·         Develop the Properties dialog box for the plugin.

·         Document the code using doxygen.

 * *

*12 July – 15 July*

Mid Term Evaluation



*13 July – 9 August*

·         Develop the code to display the URLs within a GnuCash Window and
show a short summary of the link.

·         Work on the rendering of the web pages and other intricate user
design details, by taking advice from mentors and other developers.



*     10 August - 22 August *

·         Complete the documentation and test for bugs.

·         Write up a developer documentation manual that would help other
developers to build plugins for GnuCash easily.

·         Buffer time for any unforeseen delays.

* *

*Bio/Programming Experience:*



I am undergraduate student studying Computer Science and Engineering in NITK
Surathkal, India.


I have built GnuCash from source. Using svn, I checked out the source on my
linux system. I have built other softwares from source and am very
comfortable with svn commands and creating patches.


C and C++ are my favourite languages and have coded almost all my projects
using these languages for the past 4 years. In Grade 12, I created an air
travel management software using C++ (graphics included) with a friend of
mine as a course project. As part of my course work in my fourth semester, I
am currently working on developing the popular game, Tetris. It uses the C++
graphics library, OpenGL.


I am also very good at web development and have a strong command over HTML,
PHP, MySQL and JavaScript. I am a part of the Web Club at NITK and I have
created many websites. Notable ones among them include the website for the
Student Union <http://www.studentunion.0fees.net/> of my college (NITK)
which is currently hosted on a free server for development purposes. We are
in the final phase, just fixing a few bugs and filling content. It should be
moved to the NITK server by the end of April. It will have the details of
all students of the college on its database and in the near future, we
intend to include sms feature and fees payment through it. I have also lent
a helping hand to the development of the site for
Eforea<http://www.eforea.in/>,
the Entrepreneurship cell of NITK which was made using Joomla. I have also
created a basic test Facebook
application<http://www.apps.facebook.com/ajayguess/>using HTML and
JavaScript and I intend to make more advanced apps using the
Graph Protocol and Facebook API.



I am also good at assembly level programming. We are currently learning
Microprocessor and Interfacing (Intel 8086 microprocessor) using TASM (Turbo
Assembler). As part of this course, I am currently working on developing a
speed sensor to detect speed of cars on highways. It uses 2 piezoelectric
sensors to detect the entry and exit of cars on a particular strip of road
of known length. The time is calculated using a timer and the speed is thus
calculated and displayed on seven segment display board.

* *

I am an avid fan of the Linux operating system and a user of Ubuntu for the
past 2 years. I have experience in Windows as well. However for this
project, I plan on using linux for development purposes. I have good
experience using the gcc compiler, the Gnu Debugger and doxygen for
development, testing and documentation.



Moreover, apart from programming, I am very interested in finance and keep a
constant watch on the stock market. I have appeared for and passed India's
National Stock Exchange (NSE) certified financial module, “Financial
Markets”.

* *

*Why GnuCash?*

GnuCash is a finance management software that has helped me to get a better
understanding of the world of finance. I have been using it for some time
and I am proud to say that GnuCash has definitely helped me be moneywise
keeping track of my finances. When I came to know that it was selected for
GsoC 2011, I really wanted to be a part of the project. In fact, this is the
only proposal I have sent for this year's edition of GSoC.

I believe that coding for open source communities is something that would
require skill and diligence from my part and I am very passionate about
this. GnuCash is a very good desktop application for managing finance. I
would like to add more functionality that makes it more internet based and
the RSS feeds plugin is a first step.

I hope to be a part of the GnuCash team during GSoC, and post-GSoC, and
would love to see my code being shipped as part of a release in the near
future. Apart from my love for programming, my interests in finance and
being a part of the developer community of a software I regularly use, have
triggered me to contribute to this project.


-- 
Ajay Thomas
IRC Nick: jay_t
II Year, Comp. Sc. Engg.
NITK Surathkal
Karnataka
<http://www.myvirtualconfessions.blogspot.com/>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gsoc-proposal.pdf
Type: application/pdf
Size: 84210 bytes
Desc: not available
URL: <http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20110403/784ab760/attachment-0001.pdf>


More information about the gnucash-devel mailing list