2000-03-30 09:50:40 +00:00
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
|
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
2000-05-17 07:02:14 +00:00
|
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<title>GnuCash Project Goals</title>
|
2000-07-11 01:06:24 +00:00
|
|
|
<meta name="description" content= "The Linux GnuCash project
|
|
|
|
|
aims at creating a world-class personal finance package.
|
|
|
|
|
Goals include ease-of use, double entry, OFX support,
|
|
|
|
|
charts, and reports, and multi-user support.">
|
|
|
|
|
<meta name="keywords" content= "linux, OFX, accounting, finance,
|
|
|
|
|
financial, ledger, double entry, GPL, gnu">
|
2000-03-30 09:50:40 +00:00
|
|
|
</head>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<body bgcolor="#eeeeee" fgcolor="#000000">
|
2000-03-30 09:50:40 +00:00
|
|
|
<h1>GnuCash Project Goals</h1>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The people behind <a href="http://gnucash.org">GnuCash</a>
|
|
|
|
|
aim to create a world-class GPL'ed Open Source Personal
|
|
|
|
|
Financial Application for GNU/Linux and other Unix's. This page
|
|
|
|
|
reviews some of the technical issues and development status
|
|
|
|
|
surrounding this project. It is a kind of an <b>FAQ</b> for
|
|
|
|
|
developers and contributors, providing status, and suggesting
|
|
|
|
|
directions and technologies for deploying new features. If you
|
|
|
|
|
simply want to get a better idea of what <a href=
|
|
|
|
|
"http://gnucash.org">GnuCash</a> is and what it does, visit its
|
|
|
|
|
<a href="http://gnucash.org">home page</a>. The home page
|
|
|
|
|
contains screen shots, news items, and mailing list
|
|
|
|
|
archives.</p>
|
|
|
|
|
|
|
|
|
|
<p>There are currently several different versions of GnuCash.
|
|
|
|
|
We've adopted the kernel numbering scheme: even minor relase
|
|
|
|
|
numbers (1.2.x, 1.4.x) are considered to mark stable releases,
|
2000-06-23 23:07:48 +00:00
|
|
|
while odd numbers (1.3.x, 1.5.x) mark development releases.
|
|
|
|
|
</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
2000-06-23 23:07:48 +00:00
|
|
|
<li>The current stable, production release is gnucash-1.4.0 and
|
|
|
|
|
is based on the <a href= "http://www.gnome.org">Gnome</a> / <a
|
|
|
|
|
href= "http://www.gtk.org">GTK</a> libraries.
|
2000-05-17 07:02:14 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-06-23 23:07:48 +00:00
|
|
|
<li>The 1.5.x releases focus on adding new features and
|
|
|
|
|
improving existing functionality.
|
2000-05-17 07:02:14 +00:00
|
|
|
</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
|
|
|
|
|
2000-06-23 23:07:48 +00:00
|
|
|
<p>The latest version is available only via CVS. Occasionally,
|
|
|
|
|
some of the more stable CVS versions are given a version number,
|
|
|
|
|
and packaged as a precompiled deb or rpm install package. Naive or
|
|
|
|
|
begining users should probably stick to version gnucash-1.4.0.
|
|
|
|
|
More adventurous users can try one of the 1.5.x releases, However,
|
|
|
|
|
keep in mind that they are in a state of constant change and will
|
|
|
|
|
often be unstable.
|
|
|
|
|
</p>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<p>This document is divided into several sections.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ol>
|
|
|
|
|
<li><a href="#arch">Architectural Goals</a></li>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<li><a href="#reqs">Requirements</a></li>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<li><a href="#size">Sizings</a></li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li><a href="#feats">Features</a></li>
|
|
|
|
|
</ol>
|
2000-05-17 07:02:14 +00:00
|
|
|
<hr>
|
2000-07-11 01:06:24 +00:00
|
|
|
<!--===================================================-->
|
|
|
|
|
<a name="arch">
|
2000-03-30 09:50:40 +00:00
|
|
|
<h1>Architectural Goals</h1>
|
2000-07-11 01:06:24 +00:00
|
|
|
</a>
|
2000-05-17 07:02:14 +00:00
|
|
|
There are some over-reaching design principles and philosophies
|
|
|
|
|
that we intend to maintain. Some of these concepts and terms
|
|
|
|
|
are introduced in this section.
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<h2>Separation of GUI and Data</h2>
|
|
|
|
|
First, we must maintain a clean separation between the data
|
|
|
|
|
structures and the GUI that manipulates them, along the lines
|
|
|
|
|
of the <b>Model-View-Controller</b> paradigm.
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Lists of accounts and the transactions in them can be
|
|
|
|
|
thought of as a representation of financial data, a <b>
|
|
|
|
|
Model</b>.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>The GUI that adds, modifies and deletes these should be
|
|
|
|
|
thought of as a manipulator of the data, a <b>Controller</b>.
|
|
|
|
|
Thus, the Motif or Gnome GUIs are merely two possible
|
|
|
|
|
manipulators of the data; others, based on <i>e.g.</i>
|
|
|
|
|
web/cgi-bin, Qt/KDE, emacs, Java applets or Java servlets
|
|
|
|
|
ought to be possible.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li>The <b>View</b> of the data is a subset or slice of the
|
|
|
|
|
data described by the Model. The View may consist of only the
|
|
|
|
|
transactions for the month of May, or only the account totals
|
|
|
|
|
for certain accounts. The View is used in part to generate
|
|
|
|
|
the reports and graphs, but it is also that which the
|
2000-05-17 07:02:14 +00:00
|
|
|
Controller interacts with. Views are generated by queries to
|
|
|
|
|
the data store.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>GnuCash also needs to deal with multiple distributed data
|
2000-03-30 09:50:40 +00:00
|
|
|
sources: stock quotations from the net or transaction
|
|
|
|
|
confirmations from online banks and brokerage houses, or from
|
|
|
|
|
more mundane sources, such as file imports, or merger of data
|
2000-05-17 07:02:14 +00:00
|
|
|
from several users. Amongst these terms, the concept of a
|
|
|
|
|
global Model-View is dated, and somewhat inappropriate. Rather,
|
|
|
|
|
we need to be concerned about how data is represented in the
|
|
|
|
|
local address space of the GUI, how the GUI manipulates it, how
|
|
|
|
|
data is brought in and merged from external sources, and how
|
|
|
|
|
that data is again output, whether to a file or a local or
|
|
|
|
|
remote database.</p>
|
|
|
|
|
|
|
|
|
|
<p>Thus, the <b>View</b> essentially represents a local data
|
2000-03-30 09:50:40 +00:00
|
|
|
cache of the data that is immediately present and being
|
2000-05-17 07:02:14 +00:00
|
|
|
displayed, reported, and manipulated. The <b>Model</b> is the
|
2000-03-30 09:50:40 +00:00
|
|
|
abstraction of that data that the GUI (the controller) can act
|
|
|
|
|
on.</p>
|
|
|
|
|
|
|
|
|
|
<h2>The Financial Engine</h2>
|
|
|
|
|
In GnuCash, the Model is implemented via the <b>Engine</b> API,
|
|
|
|
|
and the View is the data that is currently in the <b>
|
|
|
|
|
Engine</b>. Thus, the Engine is a set of programming API's that
|
|
|
|
|
the GUI (or a script, or even a clever command-line-addict) can
|
|
|
|
|
use to manipulate the data.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Currently, the Engine is fairly poor, and is tightly tied to
|
|
|
|
|
the data structures that the GUI manipulates. These data
|
2000-03-30 09:50:40 +00:00
|
|
|
structures include:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><b>Transactions</b>, which consist of a set of journal
|
|
|
|
|
entries (JE's) whose values sum to zero.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><b>Journal Entries</b> (internally refered to as
|
|
|
|
|
'splits') which record prices and values.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><b>Accounts</b>, which consist of a list of journal
|
|
|
|
|
entries.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-09 03:31:02 +00:00
|
|
|
<li><b>Chart of Accounts</b>, which is a heirarchical tree of
|
2000-05-17 07:02:14 +00:00
|
|
|
accounts.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
|
|
|
|
The Engine has a very simple apply/commit model, and a simple
|
2000-05-17 07:02:14 +00:00
|
|
|
query mechanism for generating reports and views. The goal of
|
|
|
|
|
the commit and query model is to aid/simplify the creation of
|
|
|
|
|
& merger with an SQL back-end.
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The Engine currently handles only a small set of data
|
2000-03-30 09:50:40 +00:00
|
|
|
sources:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>It can import and merge in QIF's;</li>
|
|
|
|
|
|
|
|
|
|
<li>It can read and write its own binary byte stream;</li>
|
|
|
|
|
|
|
|
|
|
<li>It can get stock quotes from the net.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>However, since the Engine is meant to be the interface
|
2000-03-30 09:50:40 +00:00
|
|
|
between the GUI and the financial data, it is really intended
|
|
|
|
|
to be able to do much more.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>In particular, it should be possible to back the Engine onto
|
|
|
|
|
an SQL database, and thereby enable multiple users and/or
|
2000-03-30 09:50:40 +00:00
|
|
|
interface to more complex accounting systems. The engine should
|
|
|
|
|
also be expandable to handle other sources of data, such as
|
|
|
|
|
OFX, Integrion GOLD, the Open Trading Protocol, the OMG CORBA
|
|
|
|
|
General Ledger submission, the IBM San Francisco business
|
|
|
|
|
objects, or closer to home, Linux Kontor. In particular, it
|
|
|
|
|
should be possible to use GnuCash not only to view data from
|
|
|
|
|
these sources, but also to manipulate it and send it back.</p>
|
|
|
|
|
|
|
|
|
|
<h2>Modularity, Extensibility and Customization</h2>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The above structure should leads us to view GnuCash not so
|
2000-03-30 09:50:40 +00:00
|
|
|
much as a tightly integrated application, but rather as a loose
|
2000-05-17 07:02:14 +00:00
|
|
|
confederation of component objects, libraries and interfaces.
|
|
|
|
|
In order to facilitate the gluing together of these parts, as
|
|
|
|
|
well as simplify the questions of customizability, change and
|
|
|
|
|
rapid development, GnuCash makes use of the <a href=
|
|
|
|
|
"http://www.swiss.ai.mit.edu/projects/scheme/index.html">
|
|
|
|
|
Scheme</a> extension language (as implemented in the FSF <a
|
|
|
|
|
href="http://www.gnu.org/software/guile/guile.html">Guile</a>
|
|
|
|
|
interpreter), to glue the pieces together. (Note that the
|
|
|
|
|
engine interface is also available with <a href=
|
|
|
|
|
"http://www.perl.org">Perl</a> interfaces, thanks to a <a href=
|
|
|
|
|
"http://starship.skyport.net/crew/beazley/swig.html">SWIG</a>
|
|
|
|
|
wrapper.</p>
|
|
|
|
|
<hr>
|
|
|
|
|
<!--===================================================-->
|
2000-05-09 06:13:04 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<a name="reqs">
|
2000-05-17 07:02:14 +00:00
|
|
|
<h1>Requirements</h1>
|
2000-07-11 01:06:24 +00:00
|
|
|
</a>
|
2000-03-30 09:50:40 +00:00
|
|
|
Implicit in this desire for extensibility is the need to build
|
|
|
|
|
financial applications supporting two major classes of users:
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Home Users</li>
|
|
|
|
|
|
|
|
|
|
<li>Small Business Users</li>
|
|
|
|
|
</ul>
|
|
|
|
|
They may use some of the same financial terminology, and
|
|
|
|
|
hopefully might share a fair bit of code, but have quite
|
|
|
|
|
different goals and requirements.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<h3>Personal Finance Needs</h3>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Important properties of a personal finance system
|
2000-03-30 09:50:40 +00:00
|
|
|
include:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Needs to be approachable and usable by occasional users
|
2000-05-09 06:13:04 +00:00
|
|
|
who are not knowledgeable about accounting.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<li>Ease of use and simplicity is critical.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>A reasonable selection of reports, graphs, charts, and
|
|
|
|
|
tools for personal finance, such as mortgage
|
2000-03-30 09:50:40 +00:00
|
|
|
calculations.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Budgeting support needs to be targeted at <em>naive</em>
|
2000-03-30 09:50:40 +00:00
|
|
|
users.</li>
|
|
|
|
|
|
|
|
|
|
<li>Interfaces to on-line banking, shopping, stock
|
|
|
|
|
systems.</li>
|
|
|
|
|
|
|
|
|
|
<li>Support for management of stock portfolios that may
|
|
|
|
|
involve considerable sophistication, since individuals
|
|
|
|
|
commonly have retirement plans that hold mutual funds,
|
|
|
|
|
stocks, options, bonds, and the like.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<h3>Small Business Needs</h3>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>With a business system, it is likely that there will be
|
|
|
|
|
full-time users, which puts the emphasis on <em>
|
|
|
|
|
efficiency</em> of user interface rather than on its
|
|
|
|
|
approachability to naive users.</li>
|
|
|
|
|
|
|
|
|
|
<li>Business systems require network support, and the ability
|
|
|
|
|
to support multiple simultaneous users.</li>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<li>Some business users may want access to the system from an
|
2000-05-17 07:02:14 +00:00
|
|
|
MS Windows 95/98/NT box. For these folks, a web-based
|
|
|
|
|
interface could be just handy. Web interfaces are also nice
|
|
|
|
|
for ASP type deployment.</li>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li>
|
|
|
|
|
Small businesses do not often have sophisticated investment
|
|
|
|
|
portfolios; they instead need support for additional
|
|
|
|
|
sophistication in such areas as:
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-07-11 01:06:24 +00:00
|
|
|
<li>Payroll (Batch processed and individual)</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<li>Inventory Control & Asset Management</li>
|
|
|
|
|
<li>Amortization Schedules, Depreciation</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li>Shipping and Receiving</li>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<li>Accounts Receivable, Accounts Payable (A/R, A/P)</li>
|
|
|
|
|
<li>Credit Card Processing</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>Support for calculations associated with accrual
|
|
|
|
|
accounting.</li>
|
|
|
|
|
|
|
|
|
|
<li>Ambitions for the future might include interfaces to
|
|
|
|
|
online shopping carts, credit card clearing interfaces, and
|
|
|
|
|
ERP systems.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<h3>Reconciling Those Needs</h3>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>A seemingly contradictory factor is that the kinds of
|
2000-03-30 09:50:40 +00:00
|
|
|
sophistication that are required vary considerably.
|
|
|
|
|
Consider:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>A home user does not generally require most of the
|
|
|
|
|
sophistication (sophistry?) of accrual accounting that is
|
|
|
|
|
required by business enterprises. Thus, home users don't need
|
|
|
|
|
<em>much</em> of the sophistication of an Accounts Receivable
|
|
|
|
|
or Payable system, or the <em>bizarre</em> depreciation
|
|
|
|
|
policies that crop up in Asset Management systems.<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
On the other hand, home users are in increasing need of
|
|
|
|
|
surprisingly sophisticated financial tools for managing
|
|
|
|
|
stock portfolios, including:
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Mutual funds</li>
|
|
|
|
|
|
|
|
|
|
<li>Retirement savings plans, with such identifiers as
|
|
|
|
|
401(k), IRA, Roth IRA, RRSP</li>
|
|
|
|
|
|
|
|
|
|
<li>Corporate stock purchase plans</li>
|
|
|
|
|
|
|
|
|
|
<li>Corporate option plans</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
2000-05-09 06:13:04 +00:00
|
|
|
Another set of contradictory requirements has to do with the
|
2000-05-17 07:02:14 +00:00
|
|
|
back-end, and interfacing to other systems:
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Home users need a simple-to-install, simple-to-maintain
|
|
|
|
|
system. This essentially rules out the use of SQL for the
|
|
|
|
|
storage medium/back-end for home users. (That is, the current
|
|
|
|
|
state of the art for SQL on Linux does not offer any simple,
|
|
|
|
|
fool-proof management for data).</li>
|
|
|
|
|
|
|
|
|
|
<li>By contrast, non-SQL systems for business use are almost
|
|
|
|
|
unimaginable. SQL provides a high degree of data integrity
|
|
|
|
|
and storage robustness, and also simplifies tremendously the
|
|
|
|
|
import and export of data. Powerful SQL tools exist that can
|
|
|
|
|
work magic in the hands of a good DB admin.</li>
|
2000-05-09 06:13:04 +00:00
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>It may be that these will require <em>completely</em>
|
2000-03-30 09:50:40 +00:00
|
|
|
different systems, and that GnuCash cannot be "all things to
|
|
|
|
|
all people." This remains to be seen.</p>
|
2000-05-17 07:02:14 +00:00
|
|
|
<hr>
|
|
|
|
|
<!--===================================================-->
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<a name="size">
|
2000-05-17 07:02:14 +00:00
|
|
|
<h1>Sizings</h1>
|
2000-07-11 01:06:24 +00:00
|
|
|
</a>
|
2000-05-17 07:02:14 +00:00
|
|
|
This section attempts to guesss how hard it would be to
|
|
|
|
|
implement certain features.
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<h2>Personal Financial Application</h2>
|
|
|
|
|
Below are listed the technical work items needed to implement
|
|
|
|
|
the features that home users might hope to have. They are
|
|
|
|
|
listed in approximate order of priority.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The right hand column shows a sizing guesstimate. pm ==
|
|
|
|
|
person-months. These sizings are meant to show 'effort needed
|
|
|
|
|
to complete', rather than 'total effort required'. Thus,
|
|
|
|
|
half-finished items have smaller sizings.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>Small</b> 0 to 4 pm</li>
|
|
|
|
|
|
|
|
|
|
<li><b>Medium</b> 3 to 12 pm</li>
|
|
|
|
|
|
|
|
|
|
<li><b>Large</b> More than 12 pm</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<table border="1" summary= "Personal Finance Functionality Requirements">
|
2000-03-30 09:50:40 +00:00
|
|
|
<tr>
|
|
|
|
|
<th>Feature</th>
|
|
|
|
|
<th>Sizing</th>
|
2000-06-02 06:14:23 +00:00
|
|
|
<th>Responsible</th>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#i18n">Internationalization</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Dave</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-05-09 06:13:04 +00:00
|
|
|
<td><a href="#reports">Reports</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-05-09 06:13:04 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#graphs">Graphs</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Guppi/Bill</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#ledger">Simplified Ledger</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Dave,Linas</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#glitz">Themes, Icons, Glitz</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#misc">Miscellaneous Small Tasks</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#alerts">Alerts, Recurring
|
|
|
|
|
Transactions</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Medium</td>
|
|
|
|
|
<td>RLB</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#budget">Budgeting</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Dave</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#check">Check Printing</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Small</td>
|
|
|
|
|
<td>Grib</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#userpref">User Preferences/Session Mgmt.</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#quickim">Quicken(TM) Import</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Grib</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#quickex">Quicken(TM) Export</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Grib</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#book">Books, Accounting Periods</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Linas</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#currency">Multiple Currencies</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Rethink Requirements-Linas</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
2000-05-13 03:36:06 +00:00
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#ext">Extension Language Support</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
|
|
|
|
<td>RLB</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#quote">Stock Quotes, Price Quotes</a></td>
|
2000-05-13 03:36:06 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>RLB</td>
|
2000-05-13 03:36:06 +00:00
|
|
|
</tr>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#install">Install</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Small ?</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#double">Forced Double Entry</a></td>
|
2000-05-09 06:13:04 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-05-09 06:13:04 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#401K">401K etc.</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#docs">Documentation</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
2000-05-13 07:01:36 +00:00
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#note">Annotate with Investment News</a></td>
|
2000-05-13 07:01:36 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-05-13 07:01:36 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#loan">Loan and Mortgage Calculators</a></td>
|
2000-05-13 07:01:36 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-05-13 07:01:36 +00:00
|
|
|
</tr>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#overdraft">Overdraft Alerts</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#tech">Technical Stock Analysis</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td><a href="#sink">Depreciation, Sinking Funds</a></td>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#ofx">OFX, Online Banking, Trading,
|
|
|
|
|
Bill-pay</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Large</td>
|
|
|
|
|
<td>Dave</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#tab">Tab-delimited ASCII export</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#tax">Tax Preparation</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Large</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#palm">Sync with Palm Pilot
|
|
|
|
|
organizers</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#emerg">Emergency Records Organizer</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Small</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
<h2>Small Business Features</h2>
|
|
|
|
|
Features that small/medium businesses expect.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<table border="1" summary=
|
|
|
|
|
"Business Functionality Requirements">
|
2000-03-30 09:50:40 +00:00
|
|
|
<tr>
|
|
|
|
|
<th>Feature</th>
|
|
|
|
|
|
|
|
|
|
<th>Sizing</th>
|
2000-06-02 06:14:23 +00:00
|
|
|
<th>Responsible</th>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#engine">Enhanced Engine, Financial
|
|
|
|
|
Objects</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Large</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#sql">SQL I/O</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:14:23 +00:00
|
|
|
<td>Linas</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#multiuser">Multi-User Support</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#arap">A/R, A/P Accounts Payable,
|
|
|
|
|
Receivable</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#payroll">Payroll</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#invoice">Invoicing</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#estimate">Job Costing</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Medium</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td><a href="#expense">Expense Accounts</a></td>
|
|
|
|
|
|
|
|
|
|
<td>Large</td>
|
2000-06-02 06:19:15 +00:00
|
|
|
<td>?</td>
|
2000-03-30 09:50:40 +00:00
|
|
|
</tr>
|
|
|
|
|
</table>
|
2000-05-17 07:02:14 +00:00
|
|
|
<hr>
|
|
|
|
|
<!--===================================================-->
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<a name="feats">
|
2000-05-17 07:02:14 +00:00
|
|
|
<h1>Features and Functions</h1>
|
2000-07-11 01:06:24 +00:00
|
|
|
</a>
|
2000-05-17 07:02:14 +00:00
|
|
|
This section reviews the current status of various features.
|
|
|
|
|
Some of these are 'in process', some are 'almost done', some
|
|
|
|
|
are 'completely done'. This section thus provides status on
|
|
|
|
|
both where we've been, and where we're going.
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="i18n"><b>Internationalization</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
All menus, markup and help-text should be
|
|
|
|
|
internationalized, so that GnuCash may be usable in any
|
|
|
|
|
country. This would include the printing of currency values
|
|
|
|
|
in the local country conventions.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Current status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>All GUI messages currently use GNU <tt>gettext()</tt>
|
|
|
|
|
for the message catalogs. Translations exist for English,
|
|
|
|
|
British, French, Sweedish and German.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Help pages available only in English and French.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Monetary and string handling done through glibc. The
|
|
|
|
|
latest glibc (2.2.3) is nedded to get the correct
|
|
|
|
|
functions.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li>Yannick Le Ny <y-le-ny@ifrance.com> traduction
|
2000-05-17 07:02:14 +00:00
|
|
|
en francais</li>
|
|
|
|
|
|
|
|
|
|
<li>Most GUI input elements use the gtk text widget, and
|
|
|
|
|
thus use the XIM input method in asian locales. This
|
|
|
|
|
allows <i>e.g.</i> Kanji, Katakana support. However, the
|
|
|
|
|
register does <em>not</em> use XIM, and thus doesn't
|
|
|
|
|
currently support the asian languages. This needs
|
|
|
|
|
fixing.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dt><a name="reports"><b>Reports</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
A variety of reports, including Net Worth, Balance Sheets,
|
|
|
|
|
and Profit and Loss statements. These should be printable:
|
|
|
|
|
that is, exportable as HTML as well as print-ready
|
|
|
|
|
postscript. These should be easy to customize. Ideally,
|
|
|
|
|
even novice users should be able to create custom reports.
|
|
|
|
|
|
|
|
|
|
<p>The Report Generator should be a separate but "dockable"
|
|
|
|
|
subsystem of the whole. That is, it should be possible to
|
|
|
|
|
run the report generator in a stand-alone, read-only
|
|
|
|
|
fashion without having to start up the main application. It
|
|
|
|
|
should be possible to run reports nightly from a
|
|
|
|
|
command-line and/or cron job.</p>
|
|
|
|
|
|
|
|
|
|
<p>One difficult aspect of reporting is designing a
|
2000-03-30 09:50:40 +00:00
|
|
|
configurable interface, so that people can build custom
|
2000-05-17 07:02:14 +00:00
|
|
|
reports. The <a href="xacc-reports.html#NEWREP">New
|
2000-03-30 09:50:40 +00:00
|
|
|
Reporting Infrastructure</a> is seeking to build this up
|
|
|
|
|
using Guile.</p>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<p>Generated reports should be exportable to other gnome
|
2000-05-24 23:18:35 +00:00
|
|
|
systems using bonobo. Reports should also be exportable to
|
2000-05-17 07:02:14 +00:00
|
|
|
the gnumeric spreadsheet (possibly by writing out gnumeric
|
|
|
|
|
file format??)</p>
|
2000-05-09 06:13:04 +00:00
|
|
|
|
|
|
|
|
<p>Reports should make use of the 'action' field ...</p>
|
|
|
|
|
Relationship to budgeting not clear ...
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<p>Stock portfolio tools should include a Cost Averaging
|
2000-03-30 09:50:40 +00:00
|
|
|
report, Market Index report, Stock Option values,
|
|
|
|
|
Estimation of capital gains tax liabilities.</p>
|
2000-05-09 06:13:04 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<p>Reports should be printable to printer.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Status:</b></p>
|
2000-05-09 06:13:04 +00:00
|
|
|
|
2000-05-09 03:31:02 +00:00
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>A general reporting infrastrucutre was implemented in
|
|
|
|
|
Perl, in the form of html-embedded perl (ePerl). However,
|
|
|
|
|
this reporting mechanism was abondoned in part because
|
|
|
|
|
ongoing build and install problems related to eperl and
|
|
|
|
|
swig. Also, since eperl didn't poarticipate in the
|
|
|
|
|
interpreter even loop, the report generator had to runn
|
|
|
|
|
as a separate process, reading data via pipes. This was
|
|
|
|
|
uglier than some folks liked.</li>
|
|
|
|
|
|
|
|
|
|
<li>A general reporting infrastructure has been <a href=
|
|
|
|
|
"xacc-reports.html#NEWREP">implemented in Scheme</a>.
|
|
|
|
|
Currently, there are simple reports for Profit/Loss,
|
|
|
|
|
Balance Sheet, and portfolio valuation.</li>
|
|
|
|
|
|
|
|
|
|
<li>Reports are currently displayed with the gtk-xmhtml
|
|
|
|
|
widget but are being ported to the gtk-html widget. The
|
|
|
|
|
gtkhtml widget should provide printing abilities through
|
|
|
|
|
gnome-print (right ????).</li>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<li>There is currently no way (no longer any way??) to
|
2000-05-17 07:02:14 +00:00
|
|
|
generate reports from the command line ...</li>
|
|
|
|
|
|
|
|
|
|
<li>A list of 'required reports' is needed. Then these
|
|
|
|
|
need to be implemented.</li>
|
|
|
|
|
|
|
|
|
|
<li>Heavy discussion by matt martin, Robert Merkel
|
|
|
|
|
...</li>
|
2000-05-24 23:18:35 +00:00
|
|
|
|
|
|
|
|
<li>The following technologies were rejected/unused mostly
|
|
|
|
|
because they were too complex, didn't hang together technologies:
|
|
|
|
|
<a href= "http://www.oasis-open.org/cover/">SGML</a> and <a href=
|
|
|
|
|
"http://www.oasis-open.org/cover/xml.html">Extensible
|
|
|
|
|
Markup Language - XML.</a> In the long run, these are
|
|
|
|
|
preferable to HTML, since <a href=
|
|
|
|
|
"http://www.jclark.com/dsssl/">DSSSL</a> tools such as <a
|
|
|
|
|
href="http://www.jclark.com/jade/">Jade (James DSSSL
|
|
|
|
|
Engine)</a> can be used to convert to RTF, Postscript, etc.
|
|
|
|
|
Add to this the consideration that XML is the basis for the
|
|
|
|
|
<a href="http://www.w3.org/DOM/">Document Object Model</a>,
|
|
|
|
|
which is being integrated into many web-based applications,
|
|
|
|
|
and we can see that XML is an increasingly significant
|
|
|
|
|
format as we look to the future.
|
|
|
|
|
</li>
|
|
|
|
|
|
2000-05-09 03:31:02 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-05-09 06:13:04 +00:00
|
|
|
</dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<dt><a name="graphs"><b>Graphs</b></a></dt>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Graph portfolio value vs. cost</p>
|
|
|
|
|
|
|
|
|
|
<p>Graphs, charts, etc. too ...</p>
|
|
|
|
|
|
|
|
|
|
<p>Asset allocation pie chart.</p>
|
|
|
|
|
|
|
|
|
|
<p>The following graph packages are candidates: <a href=
|
|
|
|
|
"http://www.gnome.org/guppi/">GUPPI</a>, plotutils,
|
|
|
|
|
gnumeric/graph code. The gnumeric/graphcode is already
|
|
|
|
|
bonobo-ified.</p>
|
|
|
|
|
|
|
|
|
|
<p>If gnumeric and gnucash are to use a common graph
|
|
|
|
|
solution, the following are gnumeric requirements: --
|
|
|
|
|
interactive plot editing -- each segment attributes totally
|
|
|
|
|
settable/controllable -- drag/move callbacks when segments
|
|
|
|
|
are click-draged.</p>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<p>Graphs should be printable to printer.</p>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Evaluate different graphing packages, including <a
|
|
|
|
|
href="http://www.gnome.org/guppi/">GUPPI</a></li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dt><a name="ledger"><b>Simplified Ledger</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-06-02 06:14:23 +00:00
|
|
|
Ledger needs various fixes/cleanups. Before any fixups can be
|
|
|
|
|
done, agreement needs to be gotten as to what the register
|
|
|
|
|
*should* look like.
|
|
|
|
|
|
|
|
|
|
<p>Multi-Line splits look confusing when viewed from
|
|
|
|
|
Income/Expense Accounts.
|
|
|
|
|
</p>
|
|
|
|
|
<p>Stock splits & reverse splits are not displayed correctly.
|
|
|
|
|
</p>
|
|
|
|
|
<p>Currency trading Ledger is confusing.
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
2000-03-30 09:50:40 +00:00
|
|
|
Stocks and Mutual funds are handled by placing them each in
|
|
|
|
|
their own account. Each account can be viewed individually.
|
|
|
|
|
If all of the stock accounts are children of a master
|
|
|
|
|
trading account, then the trading account can be viewed and
|
|
|
|
|
modified in a General Ledger window. The current stock
|
|
|
|
|
general ledger window is a bit obtuse, and difficult to
|
|
|
|
|
understand and use. A simplified but still powerful ledger
|
|
|
|
|
window is desperately needed.
|
2000-06-02 06:14:23 +00:00
|
|
|
</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<p>How to most simply allow the user to
|
|
|
|
|
enter loads and fees?
|
|
|
|
|
Through multi-line transactions. Unfortunately, some users
|
|
|
|
|
may not properly understand multi-line transactions,
|
|
|
|
|
at least not initially.
|
2000-05-17 07:02:14 +00:00
|
|
|
Thus, a little popup is needed to allow the user to type in
|
|
|
|
|
the sales load or fee and such, and then auto-create the
|
2000-06-02 06:14:23 +00:00
|
|
|
needed journal entries.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Note the current transfer window does <em>NOT</em> allow
|
|
|
|
|
a share price to be specified !! Needs fixing ...</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dt><a name="docs"><b>Documentation</b></a></dt>
|
2000-05-13 03:36:06 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dd>Need to add a 'meta keyword' tag to the documetnatin
|
|
|
|
|
pages, this will help the search engine (<em>e.g.</em> <a
|
|
|
|
|
href="http://www.htdig.org/">htdig</a>) better categorize the
|
|
|
|
|
help. <a href="http://www.senga.org/mifluz/html/">Mifluz</a>
|
|
|
|
|
might be more embeddable ... I am told that htdig-API is in
|
2000-07-11 01:06:24 +00:00
|
|
|
good solid condition for this, but undocumented.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dt><a name="glitz"><b>Themes, Icons, Glitz</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
A variety of finer touches need work:
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-05-09 07:34:54 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Hint-of-the-Day</b>. A collection of a some
|
|
|
|
|
50-100 hints-of-the-day: short (2-4 sentance)
|
|
|
|
|
hints/tips on how to use gnucash. Every time the user
|
2000-06-02 06:14:23 +00:00
|
|
|
starts gnucash, an new hint shows up ...
|
|
|
|
|
<b>Status:</b> Dave volunteers...
|
|
|
|
|
</p>
|
2000-05-09 07:34:54 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Themes</b>. Some theme testing required. The
|
|
|
|
|
effect of themes on the register window needs to be
|
|
|
|
|
reviewed.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Button Bar</b> A user-configurable button-bar
|
|
|
|
|
would be nice too. The button bar is the set of
|
|
|
|
|
'buttons' (open, edit...) at the top of a register
|
|
|
|
|
window and the main window.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Categories/Default Chart of Accounts</b> Provide
|
|
|
|
|
a default Chart of Accounts, which will mostly consist
|
|
|
|
|
of a default set of 'Categories' (Income/Expense
|
|
|
|
|
Accounts). These are categories such as "Automobile
|
|
|
|
|
Expense", "Bank Interest Income", and "Employment
|
|
|
|
|
Income". The user should be able to select a default
|
|
|
|
|
set of accounts, and have those created
|
2000-03-30 09:50:40 +00:00
|
|
|
automatically.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>To actually implement this, it might be best to
|
2000-03-30 09:50:40 +00:00
|
|
|
simply create a file with these in them, and load that
|
|
|
|
|
file. A mechanism should be provided to allow the user
|
|
|
|
|
to weed out undesired accounts whilst not preventing
|
|
|
|
|
them from using them at a later date, if desired.</p>
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Household Assets</b> Add an example showing how
|
|
|
|
|
regular household assets (house, car, jewelry, etc.)
|
|
|
|
|
should be treated. In particular, show how appreciation
|
|
|
|
|
and depreciation should be treated.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-05-13 03:36:06 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>More account types</b> Introduce more
|
|
|
|
|
'fundamental' account types: (ammortized) Loan,
|
|
|
|
|
Mortgage, ESOP, House, Line of Credit.</p>
|
2000-05-13 03:36:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-05-13 07:01:36 +00:00
|
|
|
<li>
|
2000-06-02 06:14:23 +00:00
|
|
|
<p><b>Cut-n-paste</b> Cut-n-paste of whole transactions
|
|
|
|
|
in the regsiter window... <b>Status:</b>Dave... Done. (in
|
|
|
|
|
1.4.0)</p>
|
2000-05-13 07:01:36 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-05-13 03:36:06 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Bank name in combo-box pull-down</b> When user
|
|
|
|
|
enters a new bank name, should be presented with a
|
|
|
|
|
combo-box listing other bank-account names ... (note
|
|
|
|
|
this may require implementation of engine callbacks so
|
|
|
|
|
that relevent code can be informed when there are new
|
|
|
|
|
bank names?)</p>
|
2000-05-13 03:36:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Currency Selection Popup</b> Currency field
|
|
|
|
|
should get preplaced by menu of long-hand currency
|
|
|
|
|
names, three-letter ISO abbreviations, and symbols.
|
|
|
|
|
User should be able to add new currency types. Should
|
|
|
|
|
also keep a static exchange-rate table.</p>
|
2000-05-13 03:36:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Popup Calculator</b> All price/amount fields
|
|
|
|
|
should pop up a calculator widget; output of calculator
|
|
|
|
|
gets entered in field.</p>
|
2000-05-13 03:36:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Popup Calender</b> All date fields should pop up
|
|
|
|
|
a calender widget; selected date should get entered in
|
|
|
|
|
field.</p>
|
2000-05-13 03:36:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Register View</b> Allow user to view only
|
|
|
|
|
non-reconciled transactions ...</p>
|
2000-05-13 03:36:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-05-13 07:01:36 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Autocompletion</b> Quickfill should also
|
|
|
|
|
auto-complete amount, memo fields.</p>
|
2000-05-13 07:01:36 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Autoincrement</b> Check numbers should
|
|
|
|
|
auto-increment.</p>
|
2000-05-13 07:01:36 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Configurable main-window Status Bar</b> Bottom of
|
|
|
|
|
main window currently shows total assest, and total
|
|
|
|
|
income-expense (profits). Make this configurable, so
|
|
|
|
|
that user can show arbitrary sums of arbitrary
|
|
|
|
|
accounts.</p>
|
2000-05-13 07:01:36 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Dockable Registers/ aka "Browser Mode"</b>.
|
|
|
|
|
Currently, when each new register opens, it opens in a
|
|
|
|
|
new window. An alternate style would be to 'dock' the
|
|
|
|
|
register window in a bigger frame, and just have
|
|
|
|
|
'backward/forward' buttons to navigate through
|
|
|
|
|
different registers (the way that a browser navigates
|
|
|
|
|
web pages.) This of course would be a user
|
|
|
|
|
preference.</p>
|
2000-05-13 07:01:36 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-05-10 07:19:06 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Wizards/Context sensitive help</b>. When users
|
|
|
|
|
create new accounts, need to suggest stuff if the user
|
|
|
|
|
typed something unexpected ... (<em>e.g.</em>
|
|
|
|
|
non-alphanumeric input) ...</p>
|
2000-05-10 07:19:06 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Navigation</b> Menu navigation using the keyboard
|
|
|
|
|
should be possible. Although menu mnemonics exist, they
|
|
|
|
|
seem to be broken. ???</p>
|
|
|
|
|
|
|
|
|
|
<p>Similarly, tab-key navigation should be possible.
|
2000-03-30 09:50:40 +00:00
|
|
|
Currently, it is possible to use the tab key to
|
|
|
|
|
navigate from field to field in the register window, to
|
|
|
|
|
user arrow keys to navigate menus, and quick-fill to
|
|
|
|
|
automatically complete fields. However, it is not
|
2000-05-17 07:02:14 +00:00
|
|
|
possible to tab over to the "Commit" button. It should
|
|
|
|
|
be.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Folder Tabs</b> Currently, Income/Expense
|
|
|
|
|
accounts can be shown or hidden by selecting from a
|
|
|
|
|
menu. It would be nice to be able to examine different
|
|
|
|
|
account types (Asset, Liability, Income, Expense,
|
|
|
|
|
Payables, Receivables, Inventory) by selecting a tab
|
|
|
|
|
folder.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Fly-Over Help</b> When the user pauses the mouse
|
|
|
|
|
over a button, "fly-over" pop-up help windows should
|
|
|
|
|
appear.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Grayed-out Form Help</b> Create grayed out
|
|
|
|
|
entries in the ledger, titled "Memo", "Description",
|
|
|
|
|
etc, helping users understand what should be typed into
|
|
|
|
|
each field. <b>Status:</b> Done, as of version
|
|
|
|
|
1.3.2(?)</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b><a href="http://www.emacs.org">emacs,</a> vi,
|
|
|
|
|
motif, KDE, gnome Key Bindings for Text Fields</b> Make
|
|
|
|
|
sure that text fields can handle the vi and emacs key
|
|
|
|
|
bindings, so that <em>e.g.</em> emacs-style ctrl-a,
|
|
|
|
|
ctrl-k does the right thing.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dt><a name="misc"><b>Miscellaneous Small Projects</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
A variety of small projects (mostly in the one person-week
|
|
|
|
|
range):
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>File Format</b>. Rework miscellaneous file storage to
|
|
|
|
|
use Sleepy Cat DB.
|
|
|
|
|
<b>Status:</b> RLB, 2 weeks.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>Reconcile Window</b>.
|
|
|
|
|
<b>Status:</b> Dave.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>Print Register Window</b>. Output register window to
|
|
|
|
|
printer.
|
|
|
|
|
<b>Status:</b> none
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>gtkhtml</b>. Grib.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>print</b>. Grib.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>key-val pairs</b>. Grib.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>guid in fileio</b>. Dave.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>Engine validity test suite</b>.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b>Reconcile groups</b>.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><b># of decimal places in prices (penny stock)</b>.
|
|
|
|
|
</p>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dt><a name="book"><b>Books, Accounting Periods</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
Ability to close the book at end of the fiscal year. This
|
|
|
|
|
consists of several steps:
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Permanently lock some transactions as non-editable.
|
|
|
|
|
This should be straight-forward by using the <tt>
|
|
|
|
|
reconciled</tt> field to indicate a <tt>locked</tt>
|
|
|
|
|
value, and not allowing the GUI to edit locked
|
|
|
|
|
records.</li>
|
|
|
|
|
|
|
|
|
|
<li>Transfer the Income minus Expense for the book period
|
|
|
|
|
to an equity account, so that each new period starts with
|
|
|
|
|
zero income/expense balances.</li>
|
|
|
|
|
|
|
|
|
|
<li>A mechanism to purge really old transactions from the
|
|
|
|
|
database.</li>
|
|
|
|
|
|
|
|
|
|
<li>Extensions to reporting infrastructure ...</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
A user should be allowed to 'delete' an account <em>
|
|
|
|
|
only</em> if it has no transactions in the currently
|
|
|
|
|
open book.
|
|
|
|
|
|
|
|
|
|
<p>Of course, it's not deleted from the old books.</p>
|
|
|
|
|
|
|
|
|
|
<p>From this last, we conclude that every chart of
|
|
|
|
|
accounts should have a begining and ending date (that
|
|
|
|
|
match the book period), and the file format needs to
|
|
|
|
|
support multiple charts ...</p>
|
|
|
|
|
</li>
|
2000-06-02 06:14:23 +00:00
|
|
|
<li>Memorized Transactions ... Currently, transaction
|
|
|
|
|
autocompletion works by autocompleting with the last
|
|
|
|
|
'similar' transaction. This ability will get trashed
|
|
|
|
|
when books for the old year get closed, because there
|
|
|
|
|
won't be 'similar' transactions.
|
|
|
|
|
</li>
|
2000-05-09 06:13:04 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
2000-05-13 03:36:06 +00:00
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>A mini-design doc exists in
|
|
|
|
|
src/engine/future.txt</li>
|
2000-05-13 03:36:06 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dd><a name="check"></a></dd>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<dt><b>Check Printing</b></dt>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dd>
|
2000-07-11 01:06:24 +00:00
|
|
|
Create a check-printing ability. Includ MICR (Magnetic Ink,
|
|
|
|
|
Computer Readable) check printing abilities.
|
2000-07-31 20:12:18 +00:00
|
|
|
<a href="http://dir.yahoo.com/business_and_economy/shopping_and_services/financial_services/banking/checks/">
|
|
|
|
|
Yahoo Check Printing</a> provides a list of vendors & printers.
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Bill Gribble has built a prototype based on the
|
2000-07-11 01:06:24 +00:00
|
|
|
gnome-print. Waiting for gnome-print to mature ...</li>
|
|
|
|
|
<li>MICR Fonts are available & brought to mailing list.
|
2000-05-09 06:13:04 +00:00
|
|
|
</ul>
|
2000-07-31 20:12:18 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-05-09 06:13:04 +00:00
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dt><a name="userpref"><b>User Preferences</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Create menu system and file format for manipulating user
|
2000-05-17 07:02:14 +00:00
|
|
|
preferences. Preferences include things like default
|
|
|
|
|
currency, register layout and colors, etc.
|
|
|
|
|
|
|
|
|
|
<p>What are some of the comptitive preference-handling
|
|
|
|
|
technologies? Lets get some URL's here ... Following the
|
|
|
|
|
unix tradition, there is no global prefernces registery.
|
|
|
|
|
Note that session management and preferences are related
|
|
|
|
|
things ... sort-of. Right now, we don't treat themn as such
|
|
|
|
|
...</p>
|
|
|
|
|
|
|
|
|
|
<p>Session management is not implemented; viz, we don't
|
|
|
|
|
remember where things were left at when the user shut down
|
|
|
|
|
the windowing system, and we don't restore the session
|
|
|
|
|
afterwords. This includes: which register windows were left
|
|
|
|
|
open, what sizes they were, what thier placements on the
|
|
|
|
|
screen were, etc. I beleive session management needs to be
|
|
|
|
|
coordinated with KDE and with gnome, and all compliant
|
|
|
|
|
window maangers will do the rest (?)</p>
|
|
|
|
|
|
|
|
|
|
<p>Independently of session management, the register
|
|
|
|
|
windows should remember how big they were last time they
|
|
|
|
|
were poped up, and they should pop up the same size, again.
|
|
|
|
|
The app should remember these sizes from invocation to
|
|
|
|
|
invocation.</p>
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Works good; lots of preferences in the gui.
|
|
|
|
|
Implemented in home-grown scheme.</li>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<li>These are saved in the '.gnucash/config.auto' file.
|
2000-05-17 07:02:14 +00:00
|
|
|
The current file format is raw scheme code, rather
|
|
|
|
|
delicate to tweak by hand ...</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="ext"><b>Extension Language Support</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
The application is wired together partly with C, partly
|
|
|
|
|
with Scheme. The architecture of the wiring and how scheme
|
|
|
|
|
is fit in needs to be reviewed, with a general overview
|
|
|
|
|
created so that additional extensions may be added in a
|
|
|
|
|
straightforward manner.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The overall architecture is envisioned thus:</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>All code, including the transaction engine, the file I/O
|
|
|
|
|
routines, the menus, and the ledger, will be abstracted
|
2000-03-30 09:50:40 +00:00
|
|
|
into compact modules that can function independently of
|
|
|
|
|
each other. At the highest level, there will be a
|
|
|
|
|
infrastructure with extension language interfaces that will
|
|
|
|
|
"wire together" the various modules.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Such "wiring together" will consist of a dispatch
|
2000-03-30 09:50:40 +00:00
|
|
|
infrastructure that will allow arbitrary menu entries to be
|
|
|
|
|
hooked to arbitrary modules. The configuration for menu
|
|
|
|
|
entries, and their associated callbacks, will be specified
|
|
|
|
|
in an extension-language configuration file. At the final
|
2000-05-17 07:02:14 +00:00
|
|
|
stages, it is <em>highly</em> desirable to be able to, in
|
|
|
|
|
some manner, import new modules <em>without</em> requiring
|
2000-03-30 09:50:40 +00:00
|
|
|
that the application itself be recompiled and relinked.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Scheme/Guile is the central extension language.</li>
|
|
|
|
|
|
|
|
|
|
<li>Optional interfaces to the data engine can be
|
2000-05-17 07:02:14 +00:00
|
|
|
generated using <a href=
|
2000-03-30 09:50:40 +00:00
|
|
|
"http://starship.skyport.net/crew/beazley/swig.html">
|
|
|
|
|
SWIG</a>.</li>
|
|
|
|
|
|
|
|
|
|
<li>Rob Browning is the reigning expert.</li>
|
|
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dt><a name="alerts"><b>Recurring Transactions, Calander Alerts</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-06-02 06:14:23 +00:00
|
|
|
(1)Add support for automatic, recurring transactions, <em>
|
2000-05-13 03:36:06 +00:00
|
|
|
e.g.</em> mortgage payments, fixed-interest bonds, regular
|
2000-05-17 07:02:14 +00:00
|
|
|
salary checks, regular gas/phone/electric bills, <em>
|
|
|
|
|
etc.</em>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<p>(2) Recurring bills, salary income, etc. are simpler to
|
2000-05-17 07:02:14 +00:00
|
|
|
handle, since they don't have intersest rates, balloons,
|
|
|
|
|
etc. They do/will have multiple splits (<em>e.g.</em>
|
|
|
|
|
payroll gross, fica, futa, income taxes, payroll net).</p>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<p>(3)Provide list of upcoming & recently paid
|
|
|
|
|
bills/scheduled payments/scheduled deposits for the next
|
|
|
|
|
1,2,3,6,12 months. Historical view shows payments crossed
|
|
|
|
|
out (!?)</p>
|
|
|
|
|
|
|
|
|
|
<p>(4)Loans & mortgages are one of the more complicated
|
|
|
|
|
recurring transactions. Typically, there might be a years
|
|
|
|
|
worth of smaller payments, then a long string of larger
|
|
|
|
|
payments, followed by a baloon.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>(5)Provide a calender-display of upcoming & past
|
2000-05-17 07:02:14 +00:00
|
|
|
scheduled payments. Clicking on a calander day should raise
|
|
|
|
|
up editable list of transactions. Calendering should
|
|
|
|
|
include generic red-lettering of important dates: taxes
|
|
|
|
|
due, insurance renewal dates, domain registration renewal
|
|
|
|
|
dates, ISP contract expiration date :-). These may or may
|
|
|
|
|
not be associated with transactions. Memoes should be
|
|
|
|
|
possible. Popups should happen when dates get close.
|
|
|
|
|
Technology: need to find/evaluate gnome-calender/dayplanner
|
|
|
|
|
for integration.</p>
|
|
|
|
|
|
|
|
|
|
<p><b>Design Notes:</b> Most alerts & data storage
|
|
|
|
|
should be driven out of the engine. This will enable
|
|
|
|
|
multi-user, distributed use. <b>Note:</b> alerts should be
|
|
|
|
|
piggy-backed on a general alert infrastructure within the
|
|
|
|
|
engine, viz, registered callbacks when balances change, so
|
|
|
|
|
that windows can be redrawn. Not clear on if/how calander
|
|
|
|
|
events might be server-ified. (On the other hand, a good
|
|
|
|
|
calander should be server-ified, and thus viewable by
|
|
|
|
|
secretaries, co-orkers, etc.)</p>
|
|
|
|
|
|
|
|
|
|
<p>More complex financial instrucments may need a
|
|
|
|
|
guile-based extension mechanism to compute values ....
|
|
|
|
|
simple interest/mortgage calculators should be done in C in
|
|
|
|
|
the engine ... (<em>e.g.</em> depreciation schedules ...
|
|
|
|
|
under us tax law, a variety of different schedules are
|
|
|
|
|
allowed ... )</p>
|
|
|
|
|
|
|
|
|
|
<p>May need interfaces to email for emailed alerts.</p>
|
|
|
|
|
|
|
|
|
|
<p>Plot forcast graphs based on scheduled income &
|
|
|
|
|
payments ... is this tied into budgeting ????</p>
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
2000-05-13 03:36:06 +00:00
|
|
|
<li>Need to create design doc, need to implement engine
|
2000-05-17 07:02:14 +00:00
|
|
|
pieces, need to hunt down gnome-calendering bonobo.</li>
|
2000-06-02 06:14:23 +00:00
|
|
|
<li>RLB thinks its 2-3 weeks for items 1,2,3.
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<dt><a name="budget"><b>Budgeting</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
Ability to create a budget (<em>i.e.</em> - estimates of
|
|
|
|
|
future expenditures). Reconcile actual expenditures against
|
|
|
|
|
future expenditures. Create simple, step-by-step 'financial
|
|
|
|
|
plan' budgeting GUI's:
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Home purchase planner</li>
|
|
|
|
|
|
|
|
|
|
<li>Retirement planner</li>
|
|
|
|
|
|
|
|
|
|
<li>College tuition planner</li>
|
|
|
|
|
|
|
|
|
|
<li>Debt reduction planner</li>
|
|
|
|
|
|
|
|
|
|
<li>Scrimp-n-Save planner</li>
|
|
|
|
|
|
|
|
|
|
<li>Special purchase planner (big ticket items)</li>
|
|
|
|
|
</ul>
|
|
|
|
|
Create a summary budget/track-record budget report that a
|
|
|
|
|
professional financial planner/advisor could use.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Note that the above 'step-by-step' budgeters will have a
|
|
|
|
|
very very different GUI than what the budgeting system
|
2000-03-30 09:50:40 +00:00
|
|
|
required for a small-business might look like.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<ul>
|
|
|
|
|
<li>A design doc has been submitted by Bob Drzyzgula.
|
|
|
|
|
Take a look at <tt>./src/budget.txt</tt> in the source
|
|
|
|
|
directory.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Bryan Larsen has begun work .. it's scheme based ...
|
|
|
|
|
Dave Peticolas has some gui roughed out ...</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<dt><a name="quickim"><b>Quicken(TM) Import</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
Ability to import Quicken QIF files. Both MSMoney and
|
|
|
|
|
Quicken use QIF files to export data.
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<ul>
|
2000-06-02 06:14:23 +00:00
|
|
|
<li>Quicken import is implemented and mostly works.
|
|
|
|
|
(Bill Gribble, Done, in version 1.4.0)</li>
|
|
|
|
|
|
|
|
|
|
<li>Work needs to be done for recurring transactions, etc.</li>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
QIF processing, as used for on-line banking, is <em>
|
|
|
|
|
not</em> implemented. That is, staged import isn't
|
|
|
|
|
done.
|
2000-06-02 06:14:23 +00:00
|
|
|
Note that since banks use QIF, the <em>correct</em>
|
2000-05-17 07:02:14 +00:00
|
|
|
way to reconcile bank accounts on-line is through
|
2000-06-02 06:14:23 +00:00
|
|
|
QIF.
|
|
|
|
|
On one side, we have existing recorded transactions;
|
2000-05-17 07:02:14 +00:00
|
|
|
on the other, the latest bank statement, in QIF
|
2000-06-02 06:14:23 +00:00
|
|
|
format.
|
|
|
|
|
Now, just put them together ...
|
|
|
|
|
Grib estimates 2 weeks for this.
|
|
|
|
|
</p>
|
2000-05-17 07:02:14 +00:00
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<dt><a name="quickex"><b>Quicken(TM) Export</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Ability to export Quicken QIF files.
|
2000-07-11 01:06:24 +00:00
|
|
|
Several design alternatives are apparent:
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
A special 'report' that writes out qif could be
|
|
|
|
|
created.
|
2000-07-11 01:06:24 +00:00
|
|
|
This would use the 'reports' infrastructure to
|
|
|
|
|
generate qif's.
|
2000-05-17 07:02:14 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>It is fairly easy to traverse the data in the engine
|
|
|
|
|
to write out qif files. Just do it.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b> not started</p>
|
2000-05-09 06:13:04 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dt><a name="quote"><b>Stock Quotes, Price
|
|
|
|
|
Quotes</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
2000-06-08 23:52:34 +00:00
|
|
|
Add ability to obtain stock, mutual fund, and currency trading
|
|
|
|
|
data from news agencies, web pages.
|
|
|
|
|
Add ability to download historical prices as well.
|
2000-05-17 07:02:14 +00:00
|
|
|
(<em>e.g.</em> get 5-year history of mutual fund
|
2000-06-08 23:52:34 +00:00
|
|
|
performance vs. djia).
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<p>Right now, stock prices are stored along with everything
|
2000-06-08 23:52:34 +00:00
|
|
|
else, in the main database, in the transaction table.
|
|
|
|
|
This leads to several aesthetic quandries.</p>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>It bulks up the database with 'less-than critical'
|
2000-06-08 23:52:34 +00:00
|
|
|
information. That's bad. We need an alternate storage
|
|
|
|
|
mechanism.</li>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
2000-06-08 23:52:34 +00:00
|
|
|
<li>Currently, the transactions stored in the engine
|
|
|
|
|
are either 'critical' <em>viz.</em>,
|
|
|
|
|
record the movement of money, or are non-critical <em>viz.</em>
|
2000-05-17 07:02:14 +00:00
|
|
|
record things retreivable from the historical record,
|
2000-06-08 23:52:34 +00:00
|
|
|
<em>e.g.</em> prices.
|
|
|
|
|
This alone is a good reason to ask that price & other
|
|
|
|
|
non-critical financial data be stored in a separate location.
|
|
|
|
|
Add to this the idea that we should probably store other
|
|
|
|
|
'technical' stock data, such as share volume, high/low/close,
|
|
|
|
|
daily volatility, etc.
|
|
|
|
|
</li>
|
2000-05-17 07:02:14 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
2000-06-08 23:52:34 +00:00
|
|
|
<li>Quotes.pm can obtain stock quotes from Yahoo (NYSE), Fidelity
|
2000-03-30 09:50:40 +00:00
|
|
|
Investments, T.Rowe Price, and do automated update of
|
|
|
|
|
GnuCash data files (with the <tt>gnc-price</tt> perl
|
|
|
|
|
script). Need to add more data sources. See <tt>
|
|
|
|
|
src/quotes/Quote.pm</tt> and <tt>
|
2000-06-08 23:52:34 +00:00
|
|
|
src/quotes/gnc-prices</tt> for details.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-06-08 23:52:34 +00:00
|
|
|
<li>
|
|
|
|
|
<a href="http://sourceforge.net/project/?group_id=4232">
|
|
|
|
|
Quote.pm</a> is now a separate development project at
|
|
|
|
|
SourceForge.
|
|
|
|
|
</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Need to integrate with GUI. Right now, this is a
|
2000-06-08 23:52:34 +00:00
|
|
|
stand-alone perl script run from <tt>crontab.</tt> RLB
|
|
|
|
|
has written scheme wrappers for the module. Its ready now, but
|
|
|
|
|
not checked into cvs. Will be in 1.5.
|
|
|
|
|
</li>
|
2000-06-09 04:43:29 +00:00
|
|
|
|
|
|
|
|
<li>A separate, historical-quote module can be found at the
|
|
|
|
|
<a href="http://sourceforge.net/project/?group_id=2403">QuoteHist</a>
|
|
|
|
|
sourceforge site. It might be a good idea to fold this
|
|
|
|
|
together with the Quote.pm module !?
|
|
|
|
|
</li>
|
2000-06-02 06:14:23 +00:00
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="install"><b>Install</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Install on Redhat, Caldera, Corel, SuSE, FreeBSD, TurboLinux,
|
|
|
|
|
etc.
|
2000-07-11 01:06:24 +00:00
|
|
|
<p></p>
|
2000-06-02 06:14:23 +00:00
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="currency"><b>Multiple Currencies</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Need to support multiple currencies.
|
|
|
|
|
Work is needed in the GUI. The engine currently supports
|
|
|
|
|
multiple currencies by treating them as securities, thus
|
|
|
|
|
allowing currency trading. The currency-trading register
|
|
|
|
|
needs a complete overhaul as it is obtuse and
|
|
|
|
|
unintuitive.</p>
|
|
|
|
|
|
|
|
|
|
<p>A simplfied way of dealing with one-shot currency
|
|
|
|
|
exchanges needs to be implemented, essentially just a
|
|
|
|
|
simple calculator popup.</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
<b>Status:</b> Need to rethink wether the one-shot exchanges
|
|
|
|
|
should in fact be recorded full-fledged in the engine.
|
|
|
|
|
Also: EURO support is currently hacked in: the EURO is treated as
|
|
|
|
|
a 'special' currency. Virtually all the euro code can be fully
|
|
|
|
|
generalized (and should be).
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="double"><b>Forced Double-Entry</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
The system supports double-entry: every transaction
|
|
|
|
|
indicates a pair of accounts: one is debited, and one is
|
|
|
|
|
credited.
|
|
|
|
|
|
|
|
|
|
<p>Double-entry is a powerful way of ensuring the integrity
|
|
|
|
|
of of the financial data. Currently, while double-entry is
|
|
|
|
|
supported, its use is not enforced: the user <em>can</em>
|
|
|
|
|
create dangling transactions, where only one account is
|
|
|
|
|
indicated.</p>
|
|
|
|
|
|
|
|
|
|
<p>Although this is acceptable for home use (arguably
|
|
|
|
|
desirable, since it allows the casual user the simplicity
|
|
|
|
|
they desire), it is not acceptable for business use. (The
|
|
|
|
|
counterargument is that casual users that aren't
|
|
|
|
|
accountants need all the help at getting things right that
|
|
|
|
|
they can get.)</p>
|
|
|
|
|
|
|
|
|
|
<p>It must be possible to enforce double entry, so that a
|
|
|
|
|
transaction cannot be completed until two accounts have
|
|
|
|
|
been specified.</p>
|
|
|
|
|
|
|
|
|
|
<p><b>Restricted Double</b> Note that sometimes, the words
|
|
|
|
|
'single-entry' have a an alternate meaning: they can mean
|
|
|
|
|
'a double entry account which can only be credited, or
|
|
|
|
|
debited, but not both'. We need to implement this.</p>
|
|
|
|
|
|
|
|
|
|
<p><b>Current status:</b></p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>April 1998 -- The engine has a couple of flags in it
|
|
|
|
|
that control double-entry behavior: it can be made lax or
|
|
|
|
|
strict, however, they are compiled in, and there is no
|
|
|
|
|
way to change them from the GUI.</li>
|
|
|
|
|
|
|
|
|
|
<li>Dec 1998 -- Scrubber functions implemented to crawl
|
|
|
|
|
through data, and find all unbalanced or orphaned
|
|
|
|
|
transactions.</li>
|
|
|
|
|
|
|
|
|
|
<li>May 2000 -- Default will be changed to double-entry
|
|
|
|
|
always. It will not be possible to disable this and move
|
|
|
|
|
to single-entry.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="401K"><b>401(k), RSP</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
401K, 403, IRA, Roth IRA, SEP, Keogh ... "Retirement Savigs
|
|
|
|
|
Plans"
|
|
|
|
|
|
|
|
|
|
<p>Retirement Savings Plans often do not put a high
|
|
|
|
|
priority on tracking costs, as the tax implication is that
|
|
|
|
|
amounts are taxable upon withdrawal, meaning that there is
|
|
|
|
|
little necessity to track capital gains. (huh??)</p>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="note"><b>Annotate with News Stories</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Download, save, annotate investment news and research.
|
2000-07-11 01:06:24 +00:00
|
|
|
Provide a way of storing news stories with accounts, and
|
2000-06-02 06:14:23 +00:00
|
|
|
possibly annotating individual transactions in the same
|
2000-07-11 01:06:24 +00:00
|
|
|
way.
|
|
|
|
|
<p></p>
|
2000-06-02 06:14:23 +00:00
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="loan"><b>Loan and Mortgage Calculators</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Provide a variety of simple GUI utilities to allow user to
|
|
|
|
|
calculate the future value of loans, mortgage payments,
|
|
|
|
|
interest payments, etc.
|
|
|
|
|
|
|
|
|
|
<p> Consider the following dialogue layout:</p>
|
|
|
|
|
<pre>
|
|
|
|
|
loan amount $_____________ currency _________ (pull-down menu)
|
|
|
|
|
Remaining balance $___________
|
|
|
|
|
Payment amount $___________
|
|
|
|
|
balloon payment $_____________
|
|
|
|
|
other payment $________ (e.g. escrow, tax)
|
|
|
|
|
Payment frequency (weekly/monthly/bimonthly/quarterly/yearly)
|
|
|
|
|
loan start date mm/dd/yy length -----(weeks/months/years/payments)
|
|
|
|
|
loan time left (number of days/weeks/months, rounded)
|
|
|
|
|
number of payments left
|
|
|
|
|
interest rate %__________________
|
|
|
|
|
payee ____________
|
|
|
|
|
pay-from account __________________
|
|
|
|
|
next due date mm/dd/yy
|
|
|
|
|
</pre>
|
|
|
|
|
Note that in the above, not all fields are independent:
|
|
|
|
|
some can be calculated from others. The <tt>other
|
|
|
|
|
payment</tt> should bring up a mini-register, allowing user
|
|
|
|
|
to add any number of splits.<br>
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Not Started.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="overdraft"><b>Overdraft Alerts</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Overdraft alerts are popups that pop up whenever the user
|
|
|
|
|
enters a transaction that would move an account below some
|
|
|
|
|
minimum balance, or above some max balance (for a bank
|
|
|
|
|
account) or an expense/spending limit is reached (on an
|
|
|
|
|
expense account). A similar but different alert can be
|
|
|
|
|
implenmented for price highs & lows. Note that these
|
|
|
|
|
alerts do <em>not</em> require any sort of calendaring or
|
|
|
|
|
recurring transaction support.
|
|
|
|
|
|
|
|
|
|
<p>Design requirements: implement multiple (not just two)
|
|
|
|
|
alerts for any account type. Alert should consist of</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>value point or price point</li>
|
|
|
|
|
|
|
|
|
|
<li>movement direction</li>
|
|
|
|
|
|
|
|
|
|
<li>'is active' boolean flag (<em>i.e.</em> Should be
|
|
|
|
|
possible to 'turn off alert' without deleting it)</li>
|
|
|
|
|
|
|
|
|
|
<li>memo text</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><b>Status:</b></p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Not Started.</li>
|
2000-05-17 07:02:14 +00:00
|
|
|
</ul>
|
|
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-13 07:01:36 +00:00
|
|
|
<dt><a name="tech"><b>Technical Stock Analysis</b></a></dt>
|
|
|
|
|
|
2000-06-02 06:14:23 +00:00
|
|
|
<dd>Provide technical stock analysis graphs, <em>e.g.</em>
|
2000-07-11 01:06:24 +00:00
|
|
|
volume, 90 moving avg, beta, etc. See gstalker for example of
|
|
|
|
|
how to do it ...
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="sink"><b>Asset Depreciation, Sinking Funds,
|
|
|
|
|
Amortization Schedules</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Need to
|
|
|
|
|
support different deprciation schedules (see IRS books for
|
|
|
|
|
that). Asset depreciation is complex; there are many
|
|
|
|
|
different deprciation schedules, and these vary from
|
|
|
|
|
country to country, and change when new tax laws are
|
|
|
|
|
implemented. It might be hard for free software to provide
|
|
|
|
|
a no-cost subscription to updated depreciation modules.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-05-13 07:01:36 +00:00
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<dt><a name="ofx"><b>OFX support</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Provide the SGML DTD parsers to handle the OFX reports that
|
|
|
|
|
many banking institutions are providing, or will soon be
|
|
|
|
|
providing, to retail customers. See below for OFX
|
|
|
|
|
references.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>OFX is an open spec from Microsoft, Intuit, and
|
2000-03-30 09:50:40 +00:00
|
|
|
Checkfree, and which will be supported by Integrion. The
|
|
|
|
|
OFX DTD's are included in the 1.1 distributions. See <a
|
|
|
|
|
href="http://www.ofx.net">OFX Home Page</a> for
|
2000-05-17 07:02:14 +00:00
|
|
|
details.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>There are two ways to build an OFX parser. One way is to
|
|
|
|
|
build a compile-time DTD parser that treats the DTD as if
|
|
|
|
|
it were an IDL, and generates C language stubs for a
|
|
|
|
|
parser. This approach was attempted and abandoned because
|
|
|
|
|
it leads to fragile C code and a very large binary.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>The parser is fragile because minor DTD
|
|
|
|
|
non-compliances are hard to parse, handle and recover
|
|
|
|
|
from.</li>
|
|
|
|
|
|
|
|
|
|
<li>The parser is huge because the DTD results in
|
|
|
|
|
hundreds of (C++) objects being generated.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
The other method would be to perform run-time DTD parsing.
|
|
|
|
|
This is attractive particularly because it is a more
|
|
|
|
|
commonly-used approach; there are a variety of XML tools
|
|
|
|
|
available that provide this function.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Run-time parsing may be slower, but on the OFX client
|
2000-03-30 09:50:40 +00:00
|
|
|
side, this should not be a bottleneck.</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>A compile-time parser was developed and
|
|
|
|
|
abandoned.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Note that the organizations developing OFX are looking
|
2000-03-30 09:50:40 +00:00
|
|
|
to use XML as their "formats of the future;" this may
|
|
|
|
|
encourage the use of one of the many XML parsers available
|
2000-05-17 07:02:14 +00:00
|
|
|
for UNIX.</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-03 07:08:30 +00:00
|
|
|
<dt><b>Other on-line support</b></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
2000-05-09 06:13:04 +00:00
|
|
|
<pre>
|
2000-05-17 07:02:14 +00:00
|
|
|
>> the German T-Online
|
|
|
|
|
>> homebanking system BTX.
|
|
|
|
|
>>
|
|
|
|
|
>> I Germany we have a very popular online homebanking system,
|
|
|
|
|
>> based on the T-Online BTX (Datex-J) system. All of the
|
|
|
|
|
>> commercial homebanking software packages like MS-Money or
|
|
|
|
|
>> Quicken work with that online system. With that system,
|
|
|
|
|
>> you can retrieve account data from your bank, and also
|
|
|
|
|
>> send your transfers.
|
|
|
|
|
>>
|
|
|
|
|
>> I am using since more than 2 years a GPL software written
|
|
|
|
|
>> by a former colleague of mine, Niek Busscher, to work with
|
|
|
|
|
>> the T-Online homebanking system. That software package with
|
|
|
|
|
>> the name ZKA4BTX is very unknown, since Niek published it only
|
|
|
|
|
>> by email.
|
|
|
|
|
>>
|
|
|
|
|
>> Some words to the features of ZKA4BTX :
|
|
|
|
|
>>
|
|
|
|
|
>> - Completely written in Tcl
|
|
|
|
|
>> - Uses Xcept as a BTX browser
|
|
|
|
|
>> - Retrieve account data from multiple banks
|
|
|
|
|
>> - Send transfers, using TAN
|
|
|
|
|
>> - Export retrieved account data to CBB, Xfinans and QIF files
|
|
|
|
|
>> - Export retrieved account data to CBB, Xfinans and QIF files
|
|
|
|
|
>>
|
|
|
|
|
>> With a simple click to an icon on my desktop, ZKA4BTX logs into
|
|
|
|
|
>> T-Online, gets all my account datas from several banks, and writes
|
|
|
|
|
>> (adds) it to my CBB, Xfinans or GNUcash (QIF) files.
|
|
|
|
|
>>
|
|
|
|
|
>> Another very important thing is that I can do all my tranfers
|
|
|
|
|
>> offline, editing a transfer sheet, and ZKA4BTX sends these
|
|
|
|
|
>> transfers in one step to my bank.
|
|
|
|
|
>
|
|
|
|
|
>One thing we could do in the short-medium term is have gnucash
|
|
|
|
|
>launch ZKA4BTX to get the data, export it to QIF, and then load
|
|
|
|
|
>it in, all through one command.
|
2000-05-09 06:13:04 +00:00
|
|
|
</pre>
|
2000-05-17 07:02:14 +00:00
|
|
|
</dd>
|
2000-05-03 07:08:30 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="tab"><b>Tab-delimited ASCII file format</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
People <em>like</em> to be able to read file contents in
|
|
|
|
|
ASCII; there are many Unix tools for manipulating ASCII. An
|
|
|
|
|
ASCII equivalent of the current file format should be easy
|
|
|
|
|
to develop ... just substitute the writes with <tt>
|
|
|
|
|
printf()</tt>s.
|
|
|
|
|
|
|
|
|
|
<p>The tab-delimited format should be compatible with that
|
2000-05-17 07:02:14 +00:00
|
|
|
of <tt>/rdb</tt>, aka <a href=
|
|
|
|
|
"ftp://ftp.rand.org/pub/RDB-hobbs/">RAND/Hobbs /rdb</a> or
|
|
|
|
|
<a href=
|
2000-03-30 09:50:40 +00:00
|
|
|
"ftp://ftp.linux.it/pub/database/RDB/nosql-0.8.tar.gz">
|
2000-05-17 07:02:14 +00:00
|
|
|
NoSQL.</a> (NoSQL is available as part of the <a href=
|
|
|
|
|
"http://www.debian.org">Debian GNU/Linux</a> distribution,
|
2000-03-30 09:50:40 +00:00
|
|
|
for instance.)</p>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The <tt>/rdb</tt> format is thus:</p>
|
2000-03-30 09:50:40 +00:00
|
|
|
<pre>
|
|
|
|
|
field-name tab fieldname tab fieldname \n
|
|
|
|
|
------------------------------------------ \n
|
|
|
|
|
value tab value tab value \n
|
|
|
|
|
value tab value tab value \n
|
|
|
|
|
etc ...
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>It is a very simple, very basic flat table format. The
|
|
|
|
|
use of <tt>/rdb</tt> with GnuCash should try to match with
|
|
|
|
|
SQL schemas as much as possible in order to minimize I/O
|
|
|
|
|
complexity and incompatibility.</p>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="tax"><b>Tax Preparation</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Gotta prepare those taxes.
|
2000-07-11 01:06:24 +00:00
|
|
|
W-2, W-3, 941, 940 Processing.
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
2000-07-11 01:06:24 +00:00
|
|
|
TurboTax --
|
|
|
|
|
categorize items according to different tax
|
|
|
|
|
schedules
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<li>VAT -- Value Added Tax. Varies from country to country.
|
|
|
|
|
</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<li>Estimate income taxes.
|
|
|
|
|
Estimate itemized deductions, find potential
|
|
|
|
|
deductions, categorize them</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-07-11 01:06:24 +00:00
|
|
|
<p></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="palm"><b>Sync with Palm Pilot organizers</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>There are Quicken-workalikes that run on the
|
2000-07-11 01:06:24 +00:00
|
|
|
PalmComputing platform; it would be good to inter-operate
|
|
|
|
|
with this. See
|
|
|
|
|
<a href="ftp://ryeham.ee.ryerson.ca/pub/PalmOS/">PalmLink</a>
|
|
|
|
|
and <a href="http://www.orbits.com/Palm/">Palm & Linux</a>.
|
|
|
|
|
<p></p>
|
2000-05-24 07:26:21 +00:00
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="emerg"><b>Emergency Records Organizer</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dd>Put together a single-page report showing critical info
|
2000-07-11 01:06:24 +00:00
|
|
|
about accounts, etc.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="engine"><b>Enriched Engine, Financial Objects</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
The current system makes a distinction between the data
|
|
|
|
|
(account, transaction) and they GUI that displays it. The
|
|
|
|
|
data is embedded within and controlled by the "Engine",
|
|
|
|
|
which is a set of routines to access accounts,
|
|
|
|
|
transactions, etc. The engine serves as a kind of a dynamic
|
|
|
|
|
cache between the permanent data repository (file, sql db)
|
|
|
|
|
and the GUI.
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>The current engine is rather simple: it provides support
|
|
|
|
|
for accounts, account hierarchies and transactions
|
2000-03-30 09:50:40 +00:00
|
|
|
consisting of multiple entries.</p>
|
|
|
|
|
|
|
|
|
|
<p>Many of the features described elsewhere will require
|
|
|
|
|
that the engine have a far richer, more sophisticated data
|
|
|
|
|
model, including such things as:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Linking to "Address Info" ( <em>e.g.</em> names,
|
2000-03-30 09:50:40 +00:00
|
|
|
addresses)</li>
|
|
|
|
|
|
|
|
|
|
<li>Transaction identifiers</li>
|
|
|
|
|
|
|
|
|
|
<li>Part numbers, SKU IDs</li>
|
|
|
|
|
|
|
|
|
|
<li>Interest rates</li>
|
|
|
|
|
|
|
|
|
|
<li>Budget policy</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p>Note: it makes no sense at this point to make the engine
|
|
|
|
|
API much richer than what the GUI can currently
|
2000-03-30 09:50:40 +00:00
|
|
|
support.</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>Locks</b> When splits are implemented, and the
|
|
|
|
|
parent transaction has been marked as cleared, the record
|
|
|
|
|
should be locked, so that further modifications to the
|
|
|
|
|
amount can't be performed (or at least, a warning is
|
2000-05-17 07:02:14 +00:00
|
|
|
generated to prevent accidental garbaging up of old
|
|
|
|
|
transactions).</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
<b>Books</b> Ability to close a book at the end of the
|
|
|
|
|
fiscal year, thus indicating that nobody is permitted
|
|
|
|
|
to "mess around" with that old data.
|
2000-07-11 01:06:24 +00:00
|
|
|
In a business environment, the auditors may have
|
2000-03-30 09:50:40 +00:00
|
|
|
"signed off" on the validity of the data; at that
|
|
|
|
|
point, the ability to modify audited data should be
|
2000-05-17 07:02:14 +00:00
|
|
|
<em>very</em> tightly controlled, or even outright
|
2000-07-11 01:06:24 +00:00
|
|
|
forbidden.
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<p><b>Current Status:</b></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>The basic engine has been detangled from the GUI
|
|
|
|
|
elements, as of version gnucash-1.1.4.</li>
|
|
|
|
|
|
|
|
|
|
<li>Binary file I/O mostly detangled into a separate
|
|
|
|
|
module.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>Crude transaction logging/auditing in place; should
|
|
|
|
|
be suitable for error/crash recovery but has not been
|
|
|
|
|
"tried by fire."</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li>Backup files automatically created and
|
|
|
|
|
time-stamped.</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
<tt>BeginEdit()/RollbackEdit()/CommitEdit()</tt>
|
|
|
|
|
routines mostly in place,
|
2000-07-11 01:06:24 +00:00
|
|
|
These "Transaction processing constructs" should
|
2000-03-30 09:50:40 +00:00
|
|
|
simplify creation of an SQL back end, or some other
|
2000-07-11 01:06:24 +00:00
|
|
|
more sophisticated database engine.
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>Multiple currency support is present but still pretty
|
2000-07-11 01:06:24 +00:00
|
|
|
"raw."</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li>Query engine is minimal/sparse in capabilities.</li>
|
|
|
|
|
|
|
|
|
|
<li>Linas <linas@linas.org> is maintaining the
|
2000-07-11 01:06:24 +00:00
|
|
|
engine code.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-07-11 01:06:24 +00:00
|
|
|
<p></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-09 06:13:04 +00:00
|
|
|
<dt><a name="sql"><b>SQL I/O</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
A module is necessary to allow data to be fetched from an
|
2000-05-06 05:23:52 +00:00
|
|
|
SQL database, and for that database to be updated.
|
2000-07-11 01:06:24 +00:00
|
|
|
There has been <em>much</em> discussion about this on
|
|
|
|
|
mailing lists both for GnuCash and
|
|
|
|
|
<a href="http://www.menet.umn.edu/~curt/cbb/">CBB.</a>
|
|
|
|
|
Major points have included:
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
<ul>
|
2000-07-11 01:06:24 +00:00
|
|
|
<li>The use of a database allows only that data which
|
|
|
|
|
is actually <em>in use</em> to be loaded into
|
|
|
|
|
memory. This permits managing larger sets of
|
|
|
|
|
transactions more efficiently.
|
|
|
|
|
</li>
|
|
|
|
|
<br><br>
|
|
|
|
|
|
|
|
|
|
<li>It also allows data to be pushed out to the DBMS
|
|
|
|
|
<em>immediately after entry,</em> rather than waiting
|
|
|
|
|
for the user to "save the books."
|
|
|
|
|
</li>
|
|
|
|
|
<br><br>
|
|
|
|
|
|
|
|
|
|
<li>Using a client/server SQL database might make it easier
|
|
|
|
|
to turn GnuCash into a multi-user system.
|
|
|
|
|
</li>
|
|
|
|
|
<br><br>
|
|
|
|
|
|
|
|
|
|
<li>By using a well-known DBMS, outside programs are
|
|
|
|
|
provided a well-defined way of getting at, and
|
|
|
|
|
perhaps even modifying, GnuCash data.
|
|
|
|
|
(Actually, this is not true: GnuCash already provides
|
|
|
|
|
a uniform, well-documented, prefered data access API.
|
|
|
|
|
As long as this
|
|
|
|
|
API is used, there is some gaurantee that data is stored
|
|
|
|
|
in a self-consistent fashion. Not using the GnuCash
|
|
|
|
|
programming interfaces risks corrupting the data.
|
|
|
|
|
Direct access to the data is dangerous and discouraged.
|
|
|
|
|
Furthermore, The API is guarenteed to be backwards
|
|
|
|
|
compatible with a variety of data storage formats.
|
|
|
|
|
Due to enhancements, the actual form of the data stored in
|
|
|
|
|
a flat file, or in the SQL database, may change without
|
|
|
|
|
warning.)
|
|
|
|
|
</li>
|
|
|
|
|
<br><br>
|
2000-03-30 09:50:40 +00:00
|
|
|
<li>
|
|
|
|
|
Those SQL databases available on Linux tend to involve
|
2000-05-17 07:02:14 +00:00
|
|
|
considerable <em>administrative</em> overhead in terms
|
2000-03-30 09:50:40 +00:00
|
|
|
of getting them set up.
|
2000-07-11 01:06:24 +00:00
|
|
|
This may be a minor cost to a business enterprise
|
|
|
|
|
that routinely hires DataBase Administrators.
|
|
|
|
|
It is <em>not</em> acceptable to require this of
|
|
|
|
|
naive users that may find "simple" things like
|
2000-03-30 09:50:40 +00:00
|
|
|
<pre>
|
|
|
|
|
% su -
|
|
|
|
|
Password:
|
|
|
|
|
# cd /tmp
|
|
|
|
|
# rpm -i gnucash-4.1.3.i386.rpm
|
|
|
|
|
# exit
|
|
|
|
|
</pre>
|
|
|
|
|
to be challenging.
|
|
|
|
|
</li>
|
2000-07-11 01:06:24 +00:00
|
|
|
<br><br>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>
|
|
|
|
|
It might be useful to use an embedded database engine
|
|
|
|
|
like unto <a href="http://www.sleepycat.com/">Sleepycat
|
2000-07-11 01:06:24 +00:00
|
|
|
DB</a>,
|
|
|
|
|
<a href="ftp://koobera.math/uic.edu/www.cdb.html">cdb</a>,
|
|
|
|
|
or something like
|
|
|
|
|
<a href="http://www.opengroup.org/public/prods/dmm4.htm">
|
2000-05-17 07:02:14 +00:00
|
|
|
ISAM</a> (Note CQL++ supports ISAM access methds), or
|
2000-07-11 01:06:24 +00:00
|
|
|
even an embedded SQL engine such as
|
|
|
|
|
<a href="http://www.ispras.ru/~knizhnik/gigabase.html">
|
2000-05-17 07:02:14 +00:00
|
|
|
GigaBASE</a>.
|
2000-07-11 01:06:24 +00:00
|
|
|
The reasons to do so include ... ???
|
2000-05-06 05:23:52 +00:00
|
|
|
</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<br><br>
|
2000-03-30 09:50:40 +00:00
|
|
|
<li>
|
|
|
|
|
GnuCash presently uses a document-oriented model, where
|
|
|
|
|
the <em>entire</em> set of books are loaded in, and
|
|
|
|
|
dumped out, all at one fell swoop.
|
2000-07-11 01:06:24 +00:00
|
|
|
GnuCash needs to be modified to access the database
|
2000-05-17 07:02:14 +00:00
|
|
|
in a transactional manner. This is at least partly
|
|
|
|
|
implemented with the <tt>Begin()/End()</tt> constructs
|
2000-07-11 01:06:24 +00:00
|
|
|
in the engine.
|
2000-05-17 07:02:14 +00:00
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<p>
|
|
|
|
|
Some transactional thoughts: entire SQL
|
2000-05-17 07:02:14 +00:00
|
|
|
tables/databases do not need to be locked while the
|
2000-07-11 01:06:24 +00:00
|
|
|
user is editing a transaction via the GUI.
|
|
|
|
|
Instead, an optimistic approach, similar to that
|
2000-05-17 07:02:14 +00:00
|
|
|
employed by CVS (concurrent version system, a mechanism
|
|
|
|
|
for storing versions of source code) could be used: if
|
|
|
|
|
the edits conflict with changes made by others, edits
|
|
|
|
|
are be rejected en-masse, allowing the user to merge
|
2000-07-11 01:06:24 +00:00
|
|
|
and correct their changes.
|
|
|
|
|
Important note: updating SQL does <em>not</em>
|
2000-05-17 07:02:14 +00:00
|
|
|
require locks to be held for extended periods of
|
2000-07-11 01:06:24 +00:00
|
|
|
time!
|
|
|
|
|
</p>
|
2000-05-17 07:02:14 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
The SQL engine chosen should be fully transactional,
|
|
|
|
|
passing the 'ACID' test (Atomicity, Consistency,
|
|
|
|
|
Isolation, Durability).
|
2000-07-11 01:06:24 +00:00
|
|
|
Note that
|
|
|
|
|
<a href="http://openacs.org/why-not-mysql.html">MySQL
|
|
|
|
|
does not satisfy the 'ACID' criteria</a>.
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
</ul>
|
2000-07-11 01:06:24 +00:00
|
|
|
<p></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dt><a name="multiuser"><b>Multi-user Support</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Multi-user support should be added with either an SQL
|
|
|
|
|
backend to the engine, and/or through CORBA interfaces to
|
2000-05-17 07:02:14 +00:00
|
|
|
the engine.
|
2000-07-11 01:06:24 +00:00
|
|
|
Project Kontor and also FreeMoney is working on SQL
|
2000-05-17 07:02:14 +00:00
|
|
|
schemas; Kontor is also working on Java RMI/CORBA
|
2000-07-11 01:06:24 +00:00
|
|
|
interfaces.
|
|
|
|
|
Another possibility is to create a web application
|
2000-05-17 07:02:14 +00:00
|
|
|
server, and have users do much/most of I/O via a web
|
|
|
|
|
interface, possibly using the register object as a browser
|
2000-07-11 01:06:24 +00:00
|
|
|
plugin.
|
|
|
|
|
The following industrial-strength features are
|
|
|
|
|
needed:
|
|
|
|
|
<br><br>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>transaction-oriented queuing of updates</li>
|
|
|
|
|
|
|
|
|
|
<li>event subscription channel for updates</li>
|
|
|
|
|
|
|
|
|
|
<li>user authentication</li>
|
|
|
|
|
|
|
|
|
|
<li>user authorization</li>
|
|
|
|
|
|
|
|
|
|
<li>non-repudiability</li>
|
|
|
|
|
|
|
|
|
|
<li>encryption of network connections</li>
|
|
|
|
|
</ul>
|
2000-07-11 01:06:24 +00:00
|
|
|
<p></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dt><a name="arap"><b>Accounts Payable, Receivable</b></a></dt>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dd>Add features to track sales receipts and other pending
|
2000-07-11 01:06:24 +00:00
|
|
|
sources of income, as well as owed sums. It must be possible
|
|
|
|
|
to match invoices to payments. It must be possible to
|
|
|
|
|
track the average age of an amount-due/amount-owed.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dt><a name="payroll"><b>Payroll</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
2000-05-17 07:02:14 +00:00
|
|
|
Payroll introduces a <em>sizable</em> amount of complexity
|
2000-03-30 09:50:40 +00:00
|
|
|
in terms of the need to comply with constantly-changing
|
|
|
|
|
government regulations in whatever country one is in.
|
2000-07-11 01:06:24 +00:00
|
|
|
While the GnuCash "engine" might remain free,
|
2000-03-30 09:50:40 +00:00
|
|
|
maintenance of payroll functionality would require
|
|
|
|
|
"subscribing" to an update scheme; it might be troublesome
|
2000-07-11 01:06:24 +00:00
|
|
|
to try to provide such a "subscription" free of charge.
|
|
|
|
|
<p></p>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="invoice"><b>Invoicing</b></a></dt>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<dd>Invoicing. To design an invoice, need to have a
|
2000-07-11 01:06:24 +00:00
|
|
|
mini-word-processor/simple drawing plug-in. Is
|
|
|
|
|
Abisource/Abiword a candidate? Probably needs bonobo...
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
<dt><a name="order"><b>Order Entry</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>
|
|
|
|
|
Mini-GUI allowing users to type in orders.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dt><a name="estimate"><b>Job Costing</b></a></dt>
|
|
|
|
|
|
2000-07-11 01:06:24 +00:00
|
|
|
<dd>Ability to prepare and track estimates.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<dt><a name="expense"><b>Expense Accounts</b></a></dt>
|
|
|
|
|
|
|
|
|
|
<dd>Expense Account Automation, including air, car, hotel,
|
2000-07-11 01:06:24 +00:00
|
|
|
dining. Receipts, reservations, cancellations.
|
|
|
|
|
<p></p>
|
|
|
|
|
</dd>
|
2000-03-30 09:50:40 +00:00
|
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h1>References</h1>
|
|
|
|
|
|
|
|
|
|
<ul>
|
2000-07-23 04:44:35 +00:00
|
|
|
<li><a href="http://www.gnucash.org/">GnuCash Home Page</a></li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li><a href="http://www.hex.net/~cbbrowne/finances.html">
|
|
|
|
|
Christopher Browne's List of GNU/Linux Accounting
|
|
|
|
|
Software</a></li>
|
|
|
|
|
|
2000-07-23 04:44:35 +00:00
|
|
|
<li><a href="http://www.gnucash.org/gnucash-devel/">Official
|
2000-03-30 09:50:40 +00:00
|
|
|
GnuCash mail archives</a></li>
|
|
|
|
|
|
2000-07-23 04:44:35 +00:00
|
|
|
<li><a href="http://www.mail-archive.com/gnucash-devel@gnucash.org/">
|
2000-06-02 06:14:23 +00:00
|
|
|
GnuCash Mail archives</a> -- alternate.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-07-23 04:44:35 +00:00
|
|
|
<li><a href="http://www.linuxlinks.com/Software/Financial/">
|
|
|
|
|
Financial Applications for Linx</a>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li><a href="http://www.pathcom.com/~sstratos/">gstalker</a>
|
|
|
|
|
gtk/gnome stock grapher.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href=
|
|
|
|
|
"http://prope.insa-lyon.fr/~rhertzog/geniustrader/">Genius
|
|
|
|
|
Trader</a> stock graphing tool. Based on Perl and Tk.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.daveware.com/linuxrapid.html">
|
|
|
|
|
Xrapid</a> stock technical analysis.</li>
|
|
|
|
|
|
2000-06-08 23:52:34 +00:00
|
|
|
<li><a href="http://getquote.giammy.com/">GetQuote</a> is a
|
|
|
|
|
command-line toll for getting stock quotes. Implemented in C.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href="http://sourceforge.net/project/?group_id=3522">
|
|
|
|
|
Accountant</a> project at sourcforge aims to create a generic
|
|
|
|
|
business library.</li>
|
2000-05-13 07:01:36 +00:00
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li><a href="http://www.ios-online.de/Linux-Kontor/">
|
|
|
|
|
Linux-Kontor</a> - an industrial accounting package that uses
|
|
|
|
|
Java and SQL databases.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href="http://www.pango.org/">Pango</a>
|
|
|
|
|
internationalized text rendering for gtk.</li>
|
2000-05-03 08:36:40 +00:00
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li><a href="http://www.gnu.org/projects/gnue/gnue.html">Gnu
|
2000-05-17 07:02:14 +00:00
|
|
|
Enterprise</a> a business financial project.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href=
|
2000-03-30 09:50:40 +00:00
|
|
|
"http://members.iweb.net.au/~steveoc/ERP/index.html ">ERP</a>
|
|
|
|
|
Business Accounting project</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://obelisk.dhs.org">Obelisk</a> Business
|
|
|
|
|
Accounting project</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.didx.com/xml-builder.html">XML
|
|
|
|
|
Builder</a> allows GUI screens to be described using XML
|
|
|
|
|
markup. See also mozilla.org's xpfe ...</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.ofx.net/">Open Financial Exchange</a>
|
|
|
|
|
a consortium backed by Intuit, CheckFree and Microsoft do
|
|
|
|
|
advance on-line banking.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://http://www.otp.org/">Open Trading
|
2000-05-17 07:02:14 +00:00
|
|
|
Protocol</a>. An XML-based message protocol for payment,
|
|
|
|
|
invoice presentation, and payment receipts.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href="http://www.semper.org/">Secure Electronic
|
|
|
|
|
Marketplace for Europe</a>. SEMPER is a European R&D
|
|
|
|
|
project in the area of secure electronic commerce over open
|
|
|
|
|
networks.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>HBCI 2.0: Homebanking Computer Interface</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href=
|
|
|
|
|
"http://ganges.cs.tcd.ie/mepeirce/Project/oninternet.html">
|
2000-03-30 09:50:40 +00:00
|
|
|
Payment mechanisms designed for the Internet</a> provides a
|
2000-05-17 07:02:14 +00:00
|
|
|
treasure-trove of links for zillions of standards and
|
|
|
|
|
proposals.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li><a href="http://www.sabotage.net/redhat/ssl.html">SSLeay
|
|
|
|
|
RPM's</a></li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.sabotage.net/security/ecash/lucre/">
|
2000-05-17 07:02:14 +00:00
|
|
|
-lucre</a> a publicaly available version of e-cash.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li><a href="http://www.openapplications.org/">Open
|
|
|
|
|
Applications Group</a> is developing specs for accounting
|
|
|
|
|
systems.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href=
|
|
|
|
|
"http://www.compassgl.org/newhometest/990305fr1.html">OMG
|
|
|
|
|
General Ledger (GL) Facility</a> The Compass submission for
|
|
|
|
|
the OMG (CORBA) General Ledger.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href="http://www.xfrml.org/">XFRML, XML-based
|
|
|
|
|
Financial Reporting Markup Language</a>. Quote from their
|
|
|
|
|
site: <i>XFRML is a framework that will allow the financial
|
|
|
|
|
community a standards-based method to prepare, publish in a
|
|
|
|
|
variety of formats, exchange and analyze financial reports
|
|
|
|
|
and the information they contain.</i></li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
|
|
|
|
<li><a href="http://www.ibm.com/java/sanfrancisco">IBM San
|
|
|
|
|
Francisco</a> Business and Financial Java classes.</li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href="http://www.integrion.com/">Integrion</a>, a
|
|
|
|
|
16-bank + IBM consortium aimed at building up on-line banking
|
|
|
|
|
infrastructure. Mostly aimed at mainframes, middleware, high
|
|
|
|
|
transaction volumes and data integrity.<br>
|
|
|
|
|
<br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.sun.com/980224/javapos/">Java Point
|
|
|
|
|
of Sale</a> interfaces.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="ftp.gnu.org:/pub/gnu/plotutils/">Gnu
|
|
|
|
|
Plotutils</a> needed for building the graphing portions of
|
|
|
|
|
the code.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.im.lcs.mit.edu/~magnus/ml/">partly
|
|
|
|
|
finished GTK grid widget</a> may be better than Clint,
|
|
|
|
|
gtktable.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://glade.pn.org/">Glade</a> an XML-based
|
|
|
|
|
GTK+ User Interface Builder</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="www.php.net">PHP-3</a> for html-embedded
|
|
|
|
|
perl-like language.</li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.engelschall.com/sw/eperl">Embedded
|
|
|
|
|
Perl</a></li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.transaction.net/money/">How Money
|
|
|
|
|
Works</a></li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.penguincomputing.com/antarctic.html">
|
|
|
|
|
Antarctic Project Server</a></li>
|
|
|
|
|
|
|
|
|
|
<li><a href="http://www.im.lcs.mit.edu/~magnus/ml/">Maxwell's
|
|
|
|
|
Lemur -- a GTK based table widget</a></li>
|
|
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li><a href="http://www.ispras.ru/~knizhnik/gigabase.html">
|
|
|
|
|
GigaBASE</a> embeddabale SQL database.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
2000-05-17 07:02:14 +00:00
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<h1>Historical References</h1>
|
|
|
|
|
The following URL's are inactive, obsolete or otherwise wasting
|
|
|
|
|
away, but are here for historical interest, in part to document
|
2000-05-17 07:02:14 +00:00
|
|
|
the way things used to be. Of archeological, nostalgic use
|
|
|
|
|
only.
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<ul>
|
|
|
|
|
<li><a href="http://www3.hmc.edu/~rclark/xacc/">X-Accountant
|
2000-06-02 06:14:23 +00:00
|
|
|
Home Page</a> - this was the original site for
|
2000-05-17 07:02:14 +00:00
|
|
|
the GPL'ed accounting package that eventually evolved into
|
|
|
|
|
GnuCash. Robin Clark wrote the first version while at school
|
|
|
|
|
at Harvey Mudd College.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
|
2000-05-17 07:02:14 +00:00
|
|
|
<li>The original <a href=
|
2000-03-30 09:50:40 +00:00
|
|
|
"http://www.dnaco.net/~bcooper/watermark/index.html">
|
2000-05-17 07:02:14 +00:00
|
|
|
WaterMark</a> Gnome/KDE personal finance project page.
|
|
|
|
|
Watermark and GnoMoney were proposed about the same time, and
|
|
|
|
|
there was talk of joining forces with X-Accountant.</li>
|
|
|
|
|
|
2000-03-30 09:50:40 +00:00
|
|
|
<li><a href="http://www.telly.org/freemoney/">FreeMoney</a>
|
2000-06-02 06:14:23 +00:00
|
|
|
Linux small-business accounting s/w. A proposal to build a
|
|
|
|
|
business package back by SQL.</li>
|
2000-03-30 09:50:40 +00:00
|
|
|
</ul>
|
|
|
|
|
<hr>
|
2000-06-02 06:14:23 +00:00
|
|
|
Draft version 0.38 -- June 2000
|
|
|
|
|
Linas Vepstas <a href="mailto:linas@linas.org">
|
2000-03-30 09:50:40 +00:00
|
|
|
linas@linas.org</a><br>
|
2000-06-02 06:14:23 +00:00
|
|
|
updates by Christopher Browne <a href=
|
2000-05-17 07:02:14 +00:00
|
|
|
"mailto:cbbrowne@ntlug.org">cbbrowne@ntlug.org</a><br>
|
2000-03-30 09:50:40 +00:00
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|