hrj / abandon

:relieved: Simple and Robust Accounting
Apache License 2.0
184 stars 26 forks source link
accounting cli cross-platform gui ledger less-is-more scala

abandon noun: freedom from inhibitions, restraint, concern, or worry.

Abandon is a text based, double-entry accounting system. Transactions are entered in plain text files. You can use your favorite text editor to edit these files, and can use your favorite VCS for versioning and collaboration.

From these input text files, Abandon can present textual reports or graphical reports. The graphical reports are useful when you need to interactively explore the data.

In addition, PDF reports can be generated using abandon-reports. PDFs are useful when you need to print the report or share it with someone by email, etc.

Abandon is inspired by Ledger but is simpler to use, has a more regular syntax, has a GUI and is cross-platform. Abandon tries to maintain syntax compatibility with Ledger whenever possible.

Sample Text report

Abandon Text output Screenshot

Sample Graphical report

Abandon Screenshot

(Screenshot Gallery)

Quick start

If we enter this into a text file:

2013/1/1
    Expense:Food                -200
    Assets:Cash

... and run it through abandon, the program will subtract 200 from the account Expense:Food and (automatically) balance the transaction by adding 200 to the account Assets:Cash.

Expense:Food will become an account nested under the account Expense. If we add another transaction like this:

2013/1/2
    Expense:Entertainment                -400
    Assets:Cash

then Entertainment will be another child account under the parent Expense account.

Hence, the balance report will look like this:

   600.00   Assets:Cash        
  -600.00   Expense            
  -400.00    ├╴Entertainment   
  -200.00    └╴Food            
─────────────────────────────────────────────
     0.00                         0.00 = Zero

The Expense account shows a value of -600 which is the total of its own amount and its childrens'.

The last line shows the total of the top level accounts, which in this case is 0.00.

Note: The second 0.00 is for accounts that get printed on right. In this simple example there is nothing to show on the right side of the report.

Features at a glance

Differences from Ledger

(or why yet another fork)

Installation

Running

The command line options are:

   -c <config-file-path>        Specifies the path to a config file
   -i <input-file-path>         Specifies the path to an input file

The config file can specify which reports to generate and how. Some of these options are available as command line parameters too.

As of now, the preferred way of running the program is by specifying a config file. Look at examples/simple/accounts.conf for an example config file, and doc/abandon.md for further instructions and information about Abandon.

Roadmap

Abandon works fine for single-currency accounting. In the future, we plan to add support for:

The issue list provides a glimpse into the immediate road map.

Maven artifacts

If you need to use abandon as a library, you can use the following maven dependency information:

<dependency>
  <groupId>in.co.uproot</groupId>
  <artifactId>abandon-base_2.11</artifactId>
  <version>0.3.2</version>
</dependency>

The library jars can be downloaded from Sonatype.

License

Apache 2.0 License

Contact

Join us in the chat room here: Gitter chat room.

Or raise an issue in GitHub.

Build & Coverage status

Build Status Coverage Status