Git Product home page Git Product logo

Build status License: GPL v3

monescript

monescript is a double-entry plain text accounting system that works in you browser. monescript is a server-less application, all the calculations are performed locally in your browser window without any data leaving your computer.

monescript works with text files formatted as a transaction journal. No modification is made to the original journal, monescript only performs journal analysis and presents financial summary graphs and statistics.

Motivation

For years I've been using Excel to handle my personal accounting. After stumbiling upon Ledger docs and introduction to double-entry accounting from Beancount I decided to try out plain text accounting.

Around that time I also wanted to learn JavaScript, so naturally monescript works in the browser and in nodejs (for the tests). As a side benefit there is nothing to install to get monescript working, all you need is a browser and a text editor. You can just add your transactions to the text file and open it in monescript to get all the details in couple of clicks.

By default demo shows randomly generated data on the Transactions tab.

You can explore the generated journal format on the Source tab.

If you have a file with monescript journal syntax you can feed it to monescript from the Open tab.

monescript journal syntax

monescript syntax is inspired by Ledger journal syntax. Here is the list of features that are currently supported by monescript parser:

  • Transaction format
    • YYYY/MM/DD date format
    • $ currency
    • simple arithmetic value expressions (+, -, *, /)
    • notes prefixed with ';'
  • line comments prefixed with ';' or '#'
  • bucket command
  • tag names
  • include and year commands (ignored)

There is no restriction on the name of the accounts.

Journal is expected to be balanced, which means that for every transaction has to have source and destination account(s). if journal is not balanced. monescript will not be able to analyze the journal and show an error.

Sample monescript journal file

bucket Assets:Bank:Checking 

2017/1/9 * The Doughnut
  Expenses:Food:Takeout                  $10.10
  Assets:Bank:Checking 

2017/1/7 * Pharmacy One
  Expenses:Pharmacy                      $22.34
# don't have to specify the source account, when defined with bucket command above  

2017/2/1 * PartyShack
  ; monescript can compute simple expressions, like this tax calculation 
  Expenses:Entertainment                 ($5.89 * 1.05) 
  Expenses:Clothing                      $16.72
  Assets:Bank:Checking 

; You can insert arbitrary comments between transactions
2017/1/13 * Groceries and More
  Expenses:Food:Grocery                  $29.32 ; Or for each posting
  Assets:Bank:Checking 

2017/2/3 * Laser Play
  Expenses:Entertainment                 $45.96

2017/2/4 * Eastern Gas
  Expenses:Bills:Gas                     $47.64
  Assets:Bank:Checking                   $-47.64 

Contributions and bugs

If you find a bug please submit a ticket in the Issues. Contributions are welcome via pull request to the master branch.

Copyright

Copyright (C) 2018 ABTechBit <[email protected]>

monescript's Projects

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.