Dear Christian,
I am made a proposal of how I plan to implement this importing and
exporting the data in GNU Cash , please take a glance and let me know your
views on this.
*Basic Information*
Student name:Rahul Gaur
Location: Meerut City , UP ,India,
Home Town :New Delhi ,India
Email:rahul....@gmail.com
Instant messaging contact details (Skype or similar):iamaregee/iamaregee2 on
IRC (irc.ubuntu.com)
Phone : +91-8755426793
*Background/Programming Information:*
I am pursuing bachelors in engineering from CCS University Meerut(NCR) ,
India.My major is in Computer Science and this is my firstyear.I write
almost all of my code on Linux platform and I tend to develop strictly for
open source platforms.I have written codes in many different languages like
basic,Java,C++,html/css ,Python,C.The C language is being taught to us in
college as a part of engineering course and I am developing an autonomous
robo and my project involves intense level micro-controller programing in
embeded C .While at my own level I am experimenting with PyRo for controling
the robot.I have been successfully able to build GNUCash from source via SVN
.
*What project in GnuCash would you like to work on?*
I would Like to add a new import/export feature to GNU Cash with the help of
python module to main code base of the GnuCash.
*What will be the result of your project :*
With the successfull implemention of this project,user of GNU Cash will be
able to upload/retrive the genrated reports or financial data or both to a
cloud service like Google Docs ,and access it any time and anywhere over
internet or download it to any computer running GNU Cash.This feature will
enable users to keep their financial data syncronised.
*How do you propose to solve the problem(s) posed in the project you'd like
to work on?*
*Project Details: *
I've already familiarised my self with the working of GNU cash (v 2.4.4
SVNr20419).As the work is already in progress to add the python module to
Gnu Cash ,my first step will be to work on python module to make it fully
functional with the GNU Cash.This will be followed by adding support for use
of different python modules in GNU Cash so cloud sync feature can be added
to it.I've my University exams from 8th to 30th of May ,so during this
period I will be in touch with the GNUCash community through emails.During
the time before exams ,I hope to :
-
Get to know the mentor and other community members.
-
Going through Devloper Docs.
-
Brainstorm plans with the community.
This whole system works as follows syncing data :
When user selects an option of exporting the data with online account,a csv
encoder is initiated and it encodes selected database file to csv format
,then user authenticates the service and upon successfull authentication
,local directories in his online account is accessed and user selects
desired location thus upload is initated.
While in retrival process,user goes through same authentication process,then
he selcts the given data to be downloaded,the given data is downloaded in
csv format ,then decoded and accesed by GNU Cash.User edits his data and he
can sync it back with his account again.
This feature is also applicable in exporting the reports genrated in GNU
Cash.Just in case user want's to upload the generated reports,a choice for
this will be available in exporting report option when a report is
genrated.Similarly an option for report retrival will also be present.
Once upload/download procedure is done ,user will be informed about it.
*Project time-line :*
*~~~~~~ *
Phase I ~ from May 31st to June 15th
~~~~~~
-
Initial step would be to work on already included python patch in order
to make it fully functional with the main codebase of GNU Cash so new
features can be implemented.
-
As I propose new cloud syncronise feature,I plan to implement it with the
help of python scripts.I am already doing a rough proof of concept to see
how things turn out.I have written couple of scripts with Gdata and have
been successfull in uploading the reports in html,plus
spreadsheet database
in csv formats to my google docs account.
import gdata.docs.data
import gdata.docs.client
import gdata.docs.service
import gdata.spreadsheet.service
import getpass
user = raw_input('Please enter your username: ')
pw = getpass.getpass()
source = 'gdata-v1'
gd_client = gdata.docs.service.DocsService()
gd_client.ClientLogin(user, pw, source=source)
file_path = raw_input('Enter path to csv file: ')
title = raw_input('Enter name of the spreadsheet: ')
content_type = gdata.docs.service.SUPPORTED_FILETYPES['CSV']
ms = gdata.MediaSource(file_path=file_path, content_type=content_type)
entry = gd_client.Upload(ms, title)
~~~~~
Testing ~ from June 16th to 20th
~~~~~
-
I will be writing a very basic backend in python ,in order to test the
compatibility of my conceptual test codes to see how things turn
out.I will
test the patches I made in the python module.Testing the code in
stable and
unstable state ,to see if it handles the load properly without
crashing.This
will help me to lay out the road map for further development.
~~~~~
Phase II ~ from 21st of june to 14th of July
~~~~~
-
In this phase I will be fleshing out the code from proof of concept stage
to something which can handle actual load,and scaling it up and
integrating
it with main code base.
-
Major Components :~
-
A csv encoder decoder for processing the database to csv format and
viceversa.
-
Primarily I will be using Google docs to sync data,as it offers lots of
client library and apis for authentication and uploading/downloading.As
large number of people have Google accounts,so I thing it will be
acceptable
among the users of the GNUCash.Thou I don't wan't to limit it to
one serivce
,so I carry on my work for including larger support even after Gsoc.
-
I will be using Google data python client library for exporting and
importing database and reports with the google account.For this I will be
using ClientLogin feature ,enabling user to authenticate there google
accounts.Then Google spreadsheets api for handling export and
import of csv
format data.
-
The two main part to solve the purpose of exporting and importing
data.One would be a CSV encoder/decoder another will be a client Login and
upload/download scripts.My scripts will enable authenticated user
to manipulate the directories in there accounts, retrieve/export all there
data of a similar type with bulk retrieval/export feature.
-
Another feature will be report retrieval/export feature.This will be
achived by writing a dedicated html uploader and downloader.
~~~~~~
Testing ~ from july 15th to july 22nd
~~~~~~
-
I will initially begin testing the code for bugs and authentication
errors,fixing them.
-
This will be followed by testing new features of importing and exporting
data and testing this feature on different machines running GNU Cash.
~~~~~~
Phase III ~ July 23rd to August 10th
~~~~~~
-
By this time I will be roughly half a way through july,I will begin
writing pygtk (GUI) based widget for export and import feature.This will
include account authentication,bulk export and retrieval features.
-
Testing and debugging the code.
- This stage will be followed by writing documentations for the newly
added features.
- Initially I plan to wind up everything by 10th of august,I will spend
Rest of the august prettying things up ,testing the new feature and fixing
bugs,refining the documents.
- I plan to keep the community updated of my progress via weekly blog
post.
- I would be in touch with my mentor with the help of emails and irc.
- If you have any questions regarding, your are most welcome to contact
me.