Changeset - 42046ad749c3
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-02-14 00:27:43
bkuhn@ebb.org
note that upstream is Ledger-CLI here.
1 file changed with 4 insertions and 0 deletions:
0 comments (0 inline, 0 general)
GSoC2014Ideas.mdwn
Show inline comments
...
 
@@ -11,48 +11,52 @@ operations solely and completely on Free Software.
 

	
 
One area that we've had great difficulty is regarding non-profit accounting
 
software.  We've launch this project to improve the state of accounting
 
Open Source and Free Software for non-profits.
 

	
 
## Possible GSoC 2014 Projects
 

	
 
1. Add all necessary the tag types found
 
   [the tutorial on the Ledger-CLI setup for fiscal sponsor 501(c)3 organizations](https://gitorious.org/ledger/npo-ledger-cli/)
 
   into the
 
   [REST API for basic double-entry accounting](http://npoacct.sfconservancy.org/accounting-api/).
 
 
 
   This will require the student to get familiar (or already be familiar)
 
   with how Ledger-CLI works, how REST APIs work, and learn some basics of
 
   double entry accounting.
 

	
 
    A successful student should be able to complete that work about
 
    three-quarters the way through the summer, and then be able to focus on
 
    actually writing a few specialized NPO-style report using the API.  A
 
    great acid test will be to use the API to implement the
 
    [IRS required charity public support test](http://www.irs.gov/Charities-&-Non-Profits/Exempt-Organizations-Annual-Reporting-Requirements-Form-990,-Schedules-A-and-B:-Public-Charity-Support-Test).
 

	
 
2. Build a better test suite for [Ledger-CLI](http://www.ledger-cli.org/).
 

	
 
   Since this project relies so heavily on Ledger-CLI, we'd really like there
 
   to be a full test coverage for Ledger-CLI.  To do that, a student will
 
   need to be already somewhat familiar C++ and willing to learn about how to
 
   set up test suites for C++ programs, and likes writing tests.  The student
 
   could easily spend the whole summer just writing tests and not finish.
 

	
 
    Ledger-CLI does have the beginnings of a test suite, but its test harness
 
    needs work and improvement, and it would be very good if a test coverage
 
    report was generated.  There is also work to be done to investigate what
 
    test coverage tools should be used  for the project.
 

	
 
    While this project is of primary interest to this project, it will
 
    require careful coordination with Ledger-CLI as an upstream, and we'll
 
    help mentor the student in that.
 
    
 
3. Build a better Python interface to Ledger-CLI for use by our API.
 

	
 
   Right now, Ledger-CLI has a rather incomplete Python interface, based on
 
   [Boost.Python](http://www.boost.org/doc/libs/1_55_0/libs/python/doc/).
 
   However, the right approach is probably to use
 
   [SWIG](http://www.swig.org/) or some other similar mechanism to build a
 
   proper Python API.  Perhaps Ledger-CLI could stick with Boost.Python, but
 
   what's there clearly needs an overhaul.  The upside of using SWIG will be
 
   that we can get APIs for other languages too. 
 

	
 
   While this project is of primary interest to this project, it will require
 
   careful coordination with Ledger-CLI as an upstream, and we'll help mentor
 
   the student in that.
0 comments (0 inline, 0 general)