All Projects β†’ hrj β†’ Abandon

hrj / Abandon

Licence: apache-2.0
😌 Simple and Robust Accounting

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Abandon

Transity
Keep track of your πŸ’΅, πŸ•˜, πŸ–, πŸ„, 🍻 on your command line
Stars: ✭ 528 (+240.65%)
Mutual labels:  accounting, ledger, cli
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (+78.71%)
Mutual labels:  cli, cross-platform, gui
Awesome Ledger
⭐️ Useful resources for the Ledger command-line accounting system
Stars: ✭ 99 (-36.13%)
Mutual labels:  accounting, ledger
Shoes4
Shoes 4 : the next version of Shoes
Stars: ✭ 1,509 (+873.55%)
Mutual labels:  cross-platform, gui
Clrcli
CLRCLI is an event-driven library for building line-art user interfaces in C#/.Net command-line applications.
Stars: ✭ 124 (-20%)
Mutual labels:  cli, gui
Catsay
A program that generates pictures of a cat holding a sign with a message.
Stars: ✭ 85 (-45.16%)
Mutual labels:  cli, cross-platform
Diceparser
Powerful dice Roller is used as discord bot, irc bot, cli tool and inside Rolisteam : 1d20+4, 1L[head,arm,leg,belly,chest], 1d6+1d8, 8+5*3
Stars: ✭ 90 (-41.94%)
Mutual labels:  cli, gui
Phoenix
wxPython's Project Phoenix. A new implementation of wxPython, better, stronger, faster than he was before.
Stars: ✭ 1,698 (+995.48%)
Mutual labels:  cross-platform, gui
Batchimageprocessor
A Mass Image Processing tool for Windows
Stars: ✭ 55 (-64.52%)
Mutual labels:  cli, gui
Bottom
Yet another cross-platform graphical process/system monitor.
Stars: ✭ 3,182 (+1952.9%)
Mutual labels:  cli, cross-platform
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-12.9%)
Mutual labels:  cross-platform, gui
Hledger
A reliable, user-friendly Plain Text Accounting tool with command line, terminal and web interfaces.
Stars: ✭ 1,887 (+1117.42%)
Mutual labels:  accounting, ledger
Dfc
Report file system space usage information with style (mirror repository)
Stars: ✭ 84 (-45.81%)
Mutual labels:  cli, cross-platform
Cross Platform Node Guide
πŸ“— How to write cross-platform Node.js code
Stars: ✭ 1,161 (+649.03%)
Mutual labels:  cli, cross-platform
Nodegui Starter
A starter repo for NodeGui projects
Stars: ✭ 93 (-40%)
Mutual labels:  cross-platform, gui
Nitroshare Desktop
Network file transfer application for Windows, OS X, & Linux
Stars: ✭ 1,150 (+641.94%)
Mutual labels:  cross-platform, gui
Hello imgui
Hello, Dear ImGui: cross-platform Gui apps for Windows / Mac / Linux / iOS / Android / Emscripten with the simplicity of a "Hello World" app
Stars: ✭ 120 (-22.58%)
Mutual labels:  cross-platform, gui
Hledger Mode
An Emacs major mode for Hledger
Stars: ✭ 142 (-8.39%)
Mutual labels:  accounting, ledger
Nativescript Cli
Command-line interface for building NativeScript apps
Stars: ✭ 977 (+530.32%)
Mutual labels:  cli, cross-platform
Simplifyify
A simplified Browserify and Watchify CLI
Stars: ✭ 37 (-76.13%)
Mutual labels:  cli, cross-platform

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

  • Double entry accounting
  • Infinite precision arithmetic
  • Input is through plain-text files. The syntax is well defined and yet human friendly, just like ledger's.
  • Portable across many operating systems; based on the Java platform.
  • Reporting: supports both textual and interactive, graphical reports. The GUI watches for changes in input files and automatically refreshes when it detects a change.

Differences from Ledger

(or why yet another fork)

  • Cross-platform. This was a major consideration to be able to collaborate with external auditors, accountants, etc. While, in theory, the existing implementations of Ledger are cross-platform, they need to be compiled and packaged separately for each platform.
  • Simpler and more regular syntax. Some of the simplicity is because of missing features. But, in general, I want to cut the flab and keep things simple and regular. For example, identifiers can have numbers in them. Although this might sound trivial, the language has to be carefully designed for this. In ledger, this doesn't work because it messes up with the syntax for currencies.
  • An interactive GUI for viewing reports.

Installation

  • If you only need the CLI version, install Java 8 from any provider. OpenJDK works fine. The GUI version requires JavaFX, which is bundled by the Oracle 8 JRE and available as a separate package in other JREs.
  • Download and extract the Abandon binaries from here
  • Use the *.sh files to run on *nix and Mac or the *.bat files to run on Windows.

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:

  • Multiple currencies (or units or commodities).
  • Reporting options (sorting, grouping, time limits, etc).

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].