Giter Club home page Giter Club logo

money-man's Introduction

money-man

A CLI personal financing tool for cash flow simulation, forecasting, budgeting and debt payoff planning

screen shot 2017-09-26 at 11 51 01 pm

Install

  • npm install -g money-man or
  • npx money-man
  • Create your own data.json file following the sample below
  • Execute with money-man -i /path-to-your-own/data.json to run a month long simulation
  • Execute with money-man -i /path-to-your-own/data.json -m 12 to run a year long simulation

Features

CLI Options

  Usage: money-man [options]

  Options:

    -V, --version              output the version number
    -i, --input <path>         Specify relative or absolute input data file path
    -m, --months <noOfMonths>  Specify number of months to simulate
    -h, --help                 output usage information

Sample Input Data

{
  "accounts": [
    {
      "name": "Checking",
      "balance": 555.55,
      "minBalance": 50
    },
    {
      "name": "Savings",
      "balance": 995.95,
      "minBalance": 300
    },
    {
      "name": "PiggyBank",
      "balance": 500.01,
      "minBalance": 0
    },
    {
      "name": "Credit",
      "balance": 0,
      "minBalance": 0
    }
  ],
  "recurringEvents": [
    {
      "name": "Acme Co",
      "recurrence": "FREQ=MONTHLY;BYMONTHDAY=1,15",
      "amount": 2000,
      "target": "Checking",
      "type": "Income"
    },
    {
      "name": "Acme Bank",
      "type": "Expenditure",
      "category": "Mortgage",
      "source": "Savings",
      "recurrence": "FREQ=MONTHLY;COUNT=360;BYMONTHDAY=11",
      "startDate": "2017-01-01T05:00:00Z",
      "amount": 1534.13
    },
    {
      "name": "Acme Bank",
      "type": "Transfer",
      "source": "Checking",
      "target": "Savings",
      "recurrence": "FREQ=MONTHLY;COUNT=360;BYMONTHDAY=11",
      "startDate": "2017-01-01T05:00:00Z",
      "amount": 1534.13
    },
    {
      "name": "Water",
      "type": "Expenditure",
      "category": "Utility",
      "source": "Checking",
      "recurrence": "FREQ=MONTHLY;INTERVAL=3;BYMONTHDAY=15",
      "startDate": "2017-08-15T05:00:00Z",
      "amount": 200
    },
    {
      "name": "Gas Nov-Apr",
      "type": "Expenditure",
      "category": "Utility",
      "source": "Checking",
      "recurrence": "FREQ=YEARLY;BYMONTH=11,12,1,2,3,4;BYMONTHDAY=1",
      "startDate": "2017-04-03T05:00:00Z",
      "amount": 100
    },
    {
      "name": "Gas May-Oct",
      "type": "Expenditure",
      "category": "Utility",
      "source": "Checking",
      "recurrence": "FREQ=YEARLY;BYMONTH=5,6,7,8,9,10;BYMONTHDAY=1",
      "startDate": "2017-09-01T05:00:00Z",
      "amount": 50
    },
    {
      "name": "Some subscription",
      "type": "Expenditure",
      "category": "Subscriptions",
      "source": "Credit",
      "recurrence": "FREQ=MONTHLY;BYMONTHDAY=21",
      "startDate": "2017-08-15T05:00:00Z",
      "amount": 9.99
    }
  ]
}

TODO

  • Recurring transfers between accounts
  • Credit card balance, interest rate and minimum payment tracking
  • CSV import/export & Excel templates that graph the exported data
  • Persistant database-based operations and snapshot updates based on user input
  • A UI(unlikely)
  • Live connection to bank account to pull latest balances (very unlikely, unless this becomes a commerical product)

money-man's People

Contributors

duluca avatar

Watchers

James Drew avatar

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.