[GSoC Proposal] Python scripting and reporting project
Rohan Kulkarni
kulkarni.rohan.p at gmail.com
Wed Apr 6 12:30:29 EDT 2011
Hello,
I have drafted a proposal for the above mentioned project.
I have come up with this proposal based on what I could research and
infer. There may be shortcomings in the content, its my humble request
to comment on this for further improvement.
Initially, I have listed down the goals of the project which involve
steps needed to integrate python scripting and some functionalities that
I want to add to the current prototype. Below that, I have described in
detail about each point, what exactly I aim to achieve.
Goals:
1] Develop python scripts in gnucash to provide a python framework.
To achieve the above goal, my aim is to focus on and enhance the
current reporting system
2] Export the report-system, which defines modules that provide
functionalities for report
generation, to python
3] Take up the business reports section, enable all the reports in this
section to be generated by
python scripts
4] Enable the customer information in this section to be imported/exported
5] Take up the standard reports section, export them to python
6] Enhance the budget generating system, add more graphical reports
7] Develop more ideas to utilise the powerful python scripting to
enhance the reporting system.
Detailed description:
-:- The aim of this project is to develop a python framework for gnucash
which currently uses uncommon scheme scripting.
A python scripting framework will enable a large set of
developers, well versed with python than with scheme to enhance or to
alter the system as per their requirements. Also migrating to python
will provide a large set of capable functionalities for gnucash.
Major part of the scripting work is in the reporting section. My
goal is to provide a python framework by exporting major parts of it to
python. This framework will be useful for development of the whole
report generating system to gradually integrate with python.
-:- The initial goal is migrate the report-system to python. This will
define modules that will provide interface for all the report generation
scripts.
This will involve writing python scripts for report tables,
bar-graphs, pie-charts, style-sheets and other related formats. The vast
python module library will enable the reporting to include wide range of
features. These scripts will provide functions that will be used by the
report generating scripts to display report data as desired.
Once this goal is achieved a python framework for writing report
scripts in will be ready. All the reporting scripts can use the
functionalities provided by this framework to create data and graphical
reports.
* Once this report-system is ported to python, test it thoroughly for
proper loading and working of modules.
-:- The next goal will be to export the business scripts. It will
involve writing python scripts, using the python defined functions in
report-system to generate reports. It will enable business reports,
customer, tax-invoices and related reports to work with the python
modules. Here a sub goal is to enable the feature of importing/exporting
customer information. I.e. to provide a functionality to import/export
customer information in csv format. It will enable users to migrate
their customer data from other sources(thunderbird/google contacts etc.)
to gnucash and vice-versa.
* Test this section for proper functioning.
-:- The next goal will be to take up the standard scripts. Though the
aim is to migrate all of it to python, initial focus will be on the
budget part. Here a sub goal is to enhance the budget reporting. Aim is
to add more graphical features to display budget reports. The current
budget summary displays simple data, budget values and actual values,
here the idea is to add horizontal bar-graphs to display them. I.e.
display bar-graphs of budgets of individual accounts along with the
bar-graphs of actual values. This will graphically give the user an idea
of where and by how much margin the budget and actual values vary. After
this, depending on the amount of time available, rest of the reports
will be migrated.
* Test this section for proper functioning.
-:- During the development of python scripting, always, aim will be to
make use of the vast python library for enhancing gnucash
functionalities with the python framework.
Deliverables:
1] A proper tested and working report-system which will facilitate
python framework for report generation.
2] A proper tested and working business report generation system.
3] A functionality of importing/exporting customer data in the business
report system.
4] A proper tested and working standard report generation system, which
will have an enhanced budget reporting.
Timeline:
-:- The initial phase will be to get familiar with the report-system.
Understand the module definition/initialisation for the report
infrastructure. Discuss about how to get started with development of code.
-:- With the understanding of the report-system, develop the required
modules in python to provide the framework. This will involve using the
python plotting modules for displaying graphs and charts. Completing
this stage will be a major part of the project.
-:- The next goal of business report scripting will involve the defined
modules in the report-system to generate reports.
-:- The sub part of importing/exporting customer data will involve the
python libraries for cvs formatting. This will complete almost 2/3rd of
the project.
-:- In the next part, first thing will be enhancing the budget reporting
with the described bar-graphs support. Later, the migrating of rest or
the scripts will start. Depending on available time the individual
reports will be migrated.
-:- The development part finishes at this point. The testing and
documenting the scripts will go hand in hand with development. So extra
time will not be consumed at this point for documenting the code. Just a
final brushing up of the documentation and final testing of codes will
be done.
Current state:
I have built and tested the gnucash code latest revision from the SVN by
enabling python. I have run the example python scripts present.
Currently getting comfortable with the python console and the reporting
scheme files. Also going through the various python modules
availablethat are required for developing the necessary scripts. Also
thinking of new ideas that can be introduced as features using the
python scripts. I am very exited and interested to get involved in this
project and to contribute to this open source community.
Thank you for reading.
Regards,
Rohan Kulkarni
IM, GTalk: kulkarni.rohan.p at gmail.com
IRC Nick: ahknor/rohan_k
More information about the gnucash-devel
mailing list