All Projects → howeyc → Ledger

howeyc / Ledger

Licence: isc
Command line double-entry accounting program

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Ledger

Awesome Ledger
⭐️ Useful resources for the Ledger command-line accounting system
Stars: ✭ 99 (-63.6%)
Mutual labels:  accounting, ledger, plaintext
ledger2beancount
Ledger to Beancount text-based converter
Stars: ✭ 63 (-76.84%)
Mutual labels:  accounting, ledger, plaintext
Hledger
A reliable, user-friendly Plain Text Accounting tool with command line, terminal and web interfaces.
Stars: ✭ 1,887 (+593.75%)
Mutual labels:  accounting, ledger, plaintext
Ledger
Double-entry accounting system with a command-line reporting interface
Stars: ✭ 4,062 (+1393.38%)
Mutual labels:  accounting, ledger
Transity
Keep track of your 💵, 🕘, 🐖, 🐄, 🍻 on your command line
Stars: ✭ 528 (+94.12%)
Mutual labels:  accounting, ledger
Hledger Mode
An Emacs major mode for Hledger
Stars: ✭ 142 (-47.79%)
Mutual labels:  accounting, ledger
Abandon
😌 Simple and Robust Accounting
Stars: ✭ 155 (-43.01%)
Mutual labels:  accounting, ledger
ledg
Batch modifiable ledger-like written in nodejs
Stars: ✭ 32 (-88.24%)
Mutual labels:  accounting, ledger
Plaintextaccounting.github.io
The plaintextaccounting.org website, a portal to Ledger, hledger, beancount and co.
Stars: ✭ 230 (-15.44%)
Mutual labels:  accounting, ledger
Ledger Autosync
Synchronize your ledger-cli files with your bank.
Stars: ✭ 189 (-30.51%)
Mutual labels:  accounting, ledger
nledger
.Net Ledger: Double-Entry Accounting System
Stars: ✭ 141 (-48.16%)
Mutual labels:  accounting, ledger
knut
knut is an efficient plain text accounting tool with support for multiple currencies and valuation.
Stars: ✭ 40 (-85.29%)
Mutual labels:  accounting, ledger
beancount-mobile
Your personal finance manager. iOS and Android App for Beancount.io
Stars: ✭ 75 (-72.43%)
Mutual labels:  ledger
xrpl-py
A Python library to interact with the XRP Ledger (XRPL) blockchain
Stars: ✭ 70 (-74.26%)
Mutual labels:  ledger
uzerp
uzERP - Open Source Business Management
Stars: ✭ 41 (-84.93%)
Mutual labels:  accounting
gone
Where has my time gone?
Stars: ✭ 46 (-83.09%)
Mutual labels:  accounting
five-bells-ledger
Open-source reference ledger optimized for use with the Interledger protocol
Stars: ✭ 28 (-89.71%)
Mutual labels:  ledger
mite-cli
command line interface for time tracking service mite.yo.lk
Stars: ✭ 17 (-93.75%)
Mutual labels:  accounting
Seedshift
Plausibly deniable steganographic encryption of BIP-39 mnemonic seed words with a date shift cipher
Stars: ✭ 21 (-92.28%)
Mutual labels:  ledger
v-currency
A plugin for formatting currency for different countries in Vue
Stars: ✭ 24 (-91.18%)
Mutual labels:  accounting

Ledger in Go

This is a project to parse and import transactions in a ledger file similar to the Ledger command line tool written in C++.

Simple Ledger file support

The ledger file this will parse is much simpler than the C++ tool.

Transaction Format:

<YYYY/MM/dd> <Payee description>
    <Account Name 1>    <Amount 1>
    .
    .
    .
    <Account Name N>    <Amount N>

The transaction must balance (the positive amounts must equal negative amounts). One of the account lines is allowed to have no amount. The amount necessary to balance the transaction will be added to that account for the transaction. Amounts must be decimal numbers with a negative(-) sign in front if necessary.

Example transaction:

2013/01/02 McDonald's #24233 HOUSTON TX
    Expenses:Dining Out:Fast Food        5.60
    Wallet:Cash

A ledger file is a list of transactions separated by a blank line.

A ledger file may include other ledger files using include <filepath>. The filepath is relative to the including file.

ledger

This will parse a ledger file into an array of Transaction structs. There is also a function get balances for all accounts in the ledger file.

GoDoc

cmd/ledger

A very simplistic version of Ledger. Supports "balance", "register", "print" and "stats" commands.

Example usage:

    ledger -f ledger.dat bal
    ledger -f ledger.dat bal Cash
    ledger -f ledger.dat reg
    ledger -f ledger.dat reg Food
    ledger -f ledger.dat print
    ledger -f ledger.dat stats

cmd/limport

Using an existing ledger as input to a bayesian classifier, it will attempt to classify an imported csv of transactions based on payee names and print them in a ledger file format.

Attempts to get payee, date, and amount based on headers in the csv file.

Example usage:

    limport -f ledger.dat discover discover-recent-transactions.csv

In the above example "discover" is the account search string to use to find the account that all transactions in the csv file should be applied too. The second account to use for each transaction will be picked based on the bayesian classification of the payee.

cmd/lweb

A website view of the ledger file. This program will show the account list, and ledger for a given account.

Reports available through the web interface are taken from a toml configuration file of the report configuration. See reports-sample.toml for examples.

Example usage:

    lweb -f ledger.dat -r reports.toml --port 8080

Screenshots

The screenshots below are taken on an Android device. To give a rough idea of what the web interface looks like.

Installing components

    go get -u github.com/howeyc/ledger/...

Incompatibilities

  • C++ Ledger permits having amounts prefixed with $; Ledger in Go does not

  • C++ Ledger permits an empty Payee Description; Ledger in Go does not

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].