Giter Site home page Giter Site logo

ledger-gui's Introduction

ledger-gui

Web-based frontend for ledger-cli

Ledger is a command line accounting program for tracking and reporting on income/expenses. It is extremely fast, flexible and powerful.

Ledger works by parsing the contents of an input file, performing desired calculations and generating the request report output based on arguments given on the command line. The input file consists of a series of transactions, for example:

2013/01/16 * (T) Gas
    Assets:Checking:Car                 $-38.00
    Assets:Checking:Pay Bills           $37.28
    Assets:Checking:Savings             $.72
    Liabilities:Credit Card:AMEX        $-37.28
    Expenses:Auto:Gas                   $37.28

Some notes on the input:

  • All transations require a date and a title
  • Transations can be marked cleared '*', or pending '!'
  • Transaction can have an arbitrary code, enclosed in parentheses
  • Accounts are implicitly created whenever they are used in a transaction
  • All transactions must balance to zero (double entry accounting)

Reporting output allows you to view account balances, transaction registers, reconcile records with statements, perform cash flow analysis, etc.

This web frontend provides an easy way to maintain your ledger input file and to request different reports based on your transaction data.

Outstanding questions

How to handle the ledger file?

The ledger binary expects to take a file as input as described above. A couple of ways to approach this:

  • Manage the flat file. This could potentially get complicated quickly, especially as the file grows. Not sure what tools are available for managing a flat file as a persistance layer with Rails.
  • Use traditional Rails persistance layer, and when shelling out to ledger regenerate the ledger file from the persistence layer.
  • Use traditional Rails persistance layer, and when shelling out to ledger use a socket/named pipe to mimic the ledger file on demand. Don't even know if this is feasible, somewhat depends on the behavior of ledger binary, if it just does a single pass scan of the file or if it does any sort of rewinding or random seeks.
  • Don't use the ledger binary at all, and re-implement the functionality using Rails/Ruby. May provide the cleanest opportunity for flexibilty of output and new features, not sure how much of a performance difference it would be against shelling to the ledger binary.

License

MIT

ledger-gui's People

Contributors

brkane avatar cupakromer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ledger-gui's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.