Changeset - 2e9fbcbd5950
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-02-25 17:35:51
bkuhn@ebb.org
Make it clearer that they should pick one of the projects.
HT lizhidong
1 file changed with 10 insertions and 5 deletions:
0 comments (0 inline, 0 general)
GSoC2014Ideas.mdwn
Show inline comments
 
Google Summer of Code 2014 Ideas
 
================================
 

	
 
Welcome, potential Google Summer of Code students!  This project is
 
currently called "The NPO Accounting Project", for lack of a better name.
 

	
 
The project is coordinated by
 
[Software Freedom Conservancy, Inc.](https://sfconservancy.org/) which is a
 
501(c)(3) charitable not-for-profit organization in the USA.  We run all our
 
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.  Since this NPO Accounting project
 
is just getting started, there are only the four potential projects below
 
for a GSoC 2014 student.  Assuming Google picks us for GSoC 2014, we'll be
 
selecting just one student, but we've provided four project choices.  We
 
need all of these items below done anyway, and we want to find the best
 
possible student/project match.  Please pick the project that fits your
 
skills and background best when submitting your application.
 
for a GSoC 2014 student.  Students who wish to apply to our org should pick
 
one specific project below, and focus their application on that project.
 

	
 
We'll likely select just one student, but we've provided multiple project
 
choices.  Students who wish to apply to our org should pick *one* of the four
 
projects below, and focus their application on that project.
 

	
 
We need all of these items below done anyway, and we want to find the best
 
possible student/project match.  Please pick the *single* project below that
 
fits your skills and background best when submitting your application.
 

	
 
## 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/),
 
   and then write some reports using that new 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. Convert  [Ledger-CLI](http://www.ledger-cli.org/) to use fixed-point
 
   arithmetic.
 

	
 
   Currently Ledger-CLI uses floating point arithmetic, which is definitely a
 
   mistake for an accounting system.  This causes
 
   [off-by-one bugs](http://bugs.ledger-cli.org/show_bug.cgi?id=992) on some
 
   types of transactions.  This should be fixed.
 

	
 
   A successful student on this task will:
 
      * Write various test cases for Ledger-CLI that will clearly show the
 
        floating point issue.
 
      * Rework the codebase to use fixed-point arithmetic so those bugs are
 
        closed.
 
      * Shepherd the patch upstream.
 
      * Close any bug tickets in the bug tracker that relate to this issue.
 
      * Time permitting: verify that other Ledger implementations don't
 
        face the same problem.
 

	
 
   Note that because this would be a major "bombing run" sort of change,
 
   there may be some resistance to upstreaming this patch, so this task may
 
   be harder than it looks on the surface from a community advocacy angle.  
 
      
 
3. 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.
0 comments (0 inline, 0 general)