Files @ c3d2f982cc44
Branch filter:

Location: NPO-Accounting/npo-accounting-ikiwiki/ExistingProjects/GNUCash.mdwn

http://wandborg.se/ Joar@web
Links:

- [[!wikipedia GNUCash]] - Wikipedia
- <http://www.gnucash.org/> - Project homepage

Actually not named "GNUCash" but GnuCash although it is part of the GNU Project.

## Technical

- C/C++ with CMake + make
- Scheme

## Preliminary evaluation

### Positive

- [Cross-platform](http://www.gnucash.org/)
- [Track record](http://en.wikipedia.org/wiki/GnuCash#Users) with 501(c)3 orgs.
- [Very mature codebase](http://www.ohloh.net/p/gnucash)

### Negative

- Uses svn for source code management.

### Comments

Josh Berkus: from my perspective, this has all of the drawbacks of ledger-cli, without the advantages.

<a id="evaluation"></a>
## Evaluation

### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: Yes
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: Yes
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: Yes
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: Yes
- [[Income Report|UseCases/GeneratingReports#income-report]]: Yes
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: Yes

### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases for Fund Accounting

Can each of these reports be generated, confined to a specific temporarily
restricted asset type?

[GnuCash is not designed for fund accounting](http://lists.gnucash.org/pipermail/gnucash-user/2006-October/017931.html) although it can possibly be configured to use fund accounting.

<!--
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: FIXME
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: FIXME
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: FIXME
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: FIXME
- [[Income Report|UseCases/GeneratingReports#income-report]]: FIXME
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: FIXME
-->

### Evaluation of [[Fund Accounting|UseCases/FundAccounting]] UseCases

*Not sure.*

- [[Fund-only View|UseCases/FundAccounting#fund-view]]: FIXME
- [[Funds as part of whole org View|UseCases/FundAccounting#fundless-view]]: FIXME
- [[Ignore Funds for operations|UseCases/FundAccounting#fundless-view]]: FIXME

### [[UseCases/Collaborating]] evaluation
- [[Simultaneous Editing of Ledger|UseCases/Collaborating#simultaneous-ledger-edits]]: FIXME
- FIXME: Other uses cases need rewrite.

### Evaluation of [[Double-entry Accounting|UseCases/DoubleEntryAccounting]] UseCases

- Does the system implement pure double-entry accounting? Yes

### Evaluation of [[TrackingDocumentation|UseCases/TrackingDocumentation]] UseCases

- Does the system [[link up to external documentation|UseCases/TrackingDocumentation#document-link-up]]? No

- Does it have a [[the ability to explore transactions via documentation linkage|UseCases/TrackingDocumentation#document-link-explore]]? No

### Evaluation of [[Handling multiple currencies|UseCases/MultiCurrency]] UseCases

- Does it support the concept of
  [[a single functional currency|UseCases/MultiCurrency]], while still
  permitting multi-currency entries? GnuCash has one currency per account, and whenever a transfer occurs between two accounts with different currency you specify the exchange rate.

### Evaluation of [[draft transaction|UseCases/DraftTransactions]] UseCases

- Does the system allow
  [[generally for draft transactions|UseCases/DraftTransactions#draft-general]]
  that can be later approved before officially being posted to the books? It does not seem so.

### Evaluation of WorkFlow UseCases

There is no specific workflow, GnuCash is a straight-up double-entry accounting program with report generation

- Is a [[specific workflow dictated by the system|UseCases/WorkFlow#workflow-dictated]]? No, it's very basic, single-user workflow.
- Is a [[the workflow configurable|UseCases/WorkFlow#workflow-configurable]]? No, not that I can find.
- [[Unaccrued Invoice|UseCases/WorkFlow#unaccrued-invioice]]? It does not seem so

### Evaluation of the [[Reading and Reporting API|UseCases/ReadingAPI]]

GnuCash can be configured to store the data in a PostgreSQL, MySQL or SQLite database, where you would have full access to all data from within another application.

### Evaluation of the [[Storage API|UseCases/StorageAPI]]

See above

### Evaluation of the [[Community Health|UseCases/CommunityHealth]]
- Is the [[license both determined as Free Software by FSF and OSI-approved|USeCases/CommunityHealth#license-approved]]? Yes
- Is the [[license GPL-compatible||UseCases/CommunityHealth#gpl-compatible]]? Yes
- Does the project
  [[require assignment of copyright or a CLA to get code upstreamed|UseCases/CommunityHealth#no-cla-for-profit]]? No, does not seem like it.
- How many
  [[active developers/companies contribute to the project||USeCases/CommunityHealth#dev-count]]? 11
     * If there aren't many, how hard would it be to take over the project if needed?
- Is there good [[developer documentation|UseCases/CommunityHealth#dev-docs]]? Yes
- How easy it to [[engage as a developer with the community|UseCases/CommunityHealth#dev-welcoming]]? Public IRC channel, public mailing list, public source code repository, public issue tracker.