Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.0.0 #66

Merged
merged 165 commits into from
Aug 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
5cb1212
Huge cleanup – remove all the crap from web config framework
kevinschaich Jan 31, 2020
71e91ed
TypeScript proposal for v2.0.0 config
kevinschaich Jan 31, 2020
615d6dd
TypeScript proposal for v2.0.0 config
kevinschaich Jan 31, 2020
13d2b91
Cleanup
kevinschaich Feb 14, 2020
239ff3b
Types, configuration, validation, and logging
kevinschaich Mar 3, 2020
b33f454
Configuration Framework for Google and Plaid
kevinschaich Mar 4, 2020
72d8c1d
Cleanup old files
kevinschaich Mar 4, 2020
44f73ee
Configuration Framework for Google and Plaid
kevinschaich Mar 4, 2020
f800cf7
Add compile & lint tests to Travis
kevinschaich Mar 4, 2020
4532836
Accidentally committed build files
kevinschaich Mar 4, 2020
0892c3e
Fix TypeScript build directory
kevinschaich Mar 4, 2020
62ddd6c
Plaid add account finally working
kevinschaich Mar 21, 2020
7bae46d
Save Plaid access token to config file
kevinschaich Mar 21, 2020
c4adb00
Clarify return types
kevinschaich Mar 21, 2020
a807d99
Preliminary transaction fetching for Plaid
kevinschaich Mar 21, 2020
755a512
Dynamic integration setup
kevinschaich Mar 22, 2020
785ebf0
Integration contribution stub points
kevinschaich Mar 22, 2020
a54d558
Setup for transactions working
kevinschaich Apr 11, 2020
7d14ffc
Transaction + Account schema
kevinschaich Apr 11, 2020
0bd3438
Transactions working 100%
kevinschaich Apr 11, 2020
61c508e
Clean up add account flow for Plaid
kevinschaich Apr 11, 2020
a35417f
Half of googleIntegration rewritten
kevinschaich Apr 12, 2020
186730e
Plaid -> Google Sheets Working
kevinschaich Apr 12, 2020
2881f9a
Google Sheets Transaction Sheets Working
kevinschaich Apr 13, 2020
27ad56c
Friendly Error Message Reporting
kevinschaich Apr 18, 2020
d5c5d3c
2.0.0 readme
kevinschaich Jun 21, 2020
dcc0b57
2.0.0 readme
kevinschaich Jun 21, 2020
ae0e30d
2.0.0 readme
kevinschaich Jun 21, 2020
ee38bc6
2.0.0 readme
kevinschaich Jun 21, 2020
afd5cd2
2.0.0 readme
kevinschaich Jun 21, 2020
d7335d1
2.0.0 readme
kevinschaich Jun 21, 2020
45f308d
2.0.0 readme
kevinschaich Jun 21, 2020
1adc55d
More streamlined add/update flow for Plaid
kevinschaich Jun 21, 2020
4789687
Migrate to CLI in favor of package.json scripts
kevinschaich Jun 22, 2020
e6e53e1
release
kevinschaich Jun 22, 2020
da89ee4
release
kevinschaich Jun 22, 2020
c393e47
Sweet ASCII art
kevinschaich Jun 22, 2020
2e44db0
2.0.0 release docs
kevinschaich Jun 22, 2020
6d699b5
2.0.0 release docs
kevinschaich Jun 22, 2020
a7868c6
2.0.0 release docs
kevinschaich Jun 22, 2020
64b8bf5
Delete integrations.md
kevinschaich Jun 22, 2020
82b14dc
2.0.0 release docs
kevinschaich Jun 22, 2020
91fbd9a
2.0.0 release docs
kevinschaich Jun 22, 2020
b2cf40f
2.0.0 release docs
kevinschaich Jun 22, 2020
81829c3
2.0.0 release docs
kevinschaich Jun 22, 2020
99f041f
2.0.0 release docs
kevinschaich Jun 22, 2020
1efad5f
2.0.0 release docs
kevinschaich Jun 22, 2020
760a582
Fix paths for CLI script
kevinschaich Jun 22, 2020
d8e4d9e
Patches for 2.0 (#59)
keanulee Jun 22, 2020
66a4dcc
Restructure project for /lib CLI
kevinschaich Jun 24, 2020
4c0154d
Update README.md
kevinschaich Jun 24, 2020
215fb59
Fix paths for config validation
kevinschaich Jun 24, 2020
e2faf36
Merge branch 'release/2.0.0' of github.com:kevinschaich/mintable into…
kevinschaich Jun 24, 2020
0e6f380
Asynchronous execution of setup commands
kevinschaich Jun 24, 2020
ad1e2e3
Fix linter formatting
kevinschaich Jun 24, 2020
a48f6c4
Prerelease Beta Version
kevinschaich Jun 24, 2020
4d26a4c
Prerelease Beta Version
kevinschaich Jun 24, 2020
ca376e5
Pre-Release
kevinschaich Jun 24, 2020
2c92dd7
Pre-Release
kevinschaich Jun 24, 2020
dadc8a2
Pre-Release
kevinschaich Jun 24, 2020
3d7c453
Pre-Release
kevinschaich Jun 24, 2020
bdcc004
Pre-Release
kevinschaich Jun 24, 2020
5814ac0
Pre-Release
kevinschaich Jun 24, 2020
e5e20e4
Pre-Release
kevinschaich Jun 24, 2020
16fc2fc
Pre-Release
kevinschaich Jun 24, 2020
850200b
Pre-Release
kevinschaich Jun 24, 2020
5ed8884
Pre-Release
kevinschaich Jun 24, 2020
2463529
Pre-Release
kevinschaich Jun 24, 2020
1550379
Pre-Release
kevinschaich Jun 24, 2020
ebfa158
Pre-Release
kevinschaich Jun 24, 2020
5f2b324
Pre-Release
kevinschaich Jun 24, 2020
937fdfa
Pre-Release
kevinschaich Jun 24, 2020
707b1ea
Pre-Release
kevinschaich Jun 24, 2020
3e2f46f
Pre-Release
kevinschaich Jun 24, 2020
897e6ef
Pre-Release
kevinschaich Jun 24, 2020
4bd53fe
Pre-Release
kevinschaich Jun 24, 2020
8310488
Pre-Release
kevinschaich Jun 24, 2020
a74310a
Pre-Release
kevinschaich Jun 24, 2020
965af86
Pre-Release
kevinschaich Jun 24, 2020
087c358
Pre-Release
kevinschaich Jun 24, 2020
bbd9af4
Pre-Release
kevinschaich Jun 24, 2020
b073a0b
Pre-Release
kevinschaich Jun 24, 2020
c19e6ab
Pre-Release
kevinschaich Jun 24, 2020
74fb9d0
Pre-Release
kevinschaich Jun 24, 2020
c4328dc
Fix sorting sheets
kevinschaich Jun 24, 2020
175ff51
Fix sorting sheets
kevinschaich Jun 24, 2020
0180b4f
Fix sorting sheets
kevinschaich Jun 24, 2020
ef92523
Update default columns to match v1.x.x
kevinschaich Jun 24, 2020
57cbac9
Add files via upload
kevinschaich Jun 24, 2020
2b66dac
Update README.md
kevinschaich Jun 24, 2020
b7d952a
Fix #67 - Confirm config overwrite during setup process (#74)
kevinschaich Jun 25, 2020
30e61fc
Fix account page not refreshing after Plaid completion/exit (#76)
kevinschaich Jun 25, 2020
189586c
Merge branch 'master' into release/2.0.0
kevinschaich Jun 25, 2020
5e641ba
Release 2.0.0-beta.32
kevinschaich Jun 25, 2020
f26e2c9
Fix error when could not find template sheet title (#77)
kevinschaich Jun 25, 2020
a878db7
CSV Importer (#80)
kevinschaich Jun 27, 2020
da7cd04
v2.0.0-beta.34
kevinschaich Jun 27, 2020
d4f8e73
Apple Card / BitBar Integration
kevinschaich Jun 27, 2020
7928a16
Apple Card / BitBar Integration
kevinschaich Jun 27, 2020
24e6ed8
Apple Card / BitBar Integration
kevinschaich Jun 27, 2020
15c633e
Apple Card / BitBar Integration
kevinschaich Jun 27, 2020
4c1bfc5
Update README.md
kevinschaich Jun 27, 2020
d87440a
Add files via upload
kevinschaich Jun 27, 2020
cd1acfe
Fix – template sheet issues + `promise.all` not executing asynchronou…
kevinschaich Jul 1, 2020
8e74d0b
2.0.0-beta.35
kevinschaich Jul 1, 2020
e8cee41
Lots of polish on the account setup page (#84)
kevinschaich Jul 1, 2020
6dcf4de
2.0.0-beta.36
kevinschaich Jul 1, 2020
e26929d
Add docs folder to NPM package
kevinschaich Jul 1, 2020
2a35180
Added Discover Card CSV Import Template (#86)
Zeustopher Jul 1, 2020
5ef6d5b
CSV Importer: Clean up amounts + allow concatenating multiple columns
kevinschaich Jul 1, 2020
58b89af
Merge branch 'release/2.0.0' of github.com:kevinschaich/mintable into…
kevinschaich Jul 1, 2020
c8f42b7
Update README.md
kevinschaich Jul 1, 2020
8e81295
Create Chase CSV Template
kevinschaich Jul 1, 2020
1f20beb
Update README.md
kevinschaich Jul 1, 2020
6477d11
Chase CSV Template
kevinschaich Jul 1, 2020
556dd05
American Express CSV Template
kevinschaich Jul 1, 2020
8b51c18
Docs for CSV Import
kevinschaich Jul 1, 2020
ac3fb91
Fix for sheets not sorting correctly
kevinschaich Jul 1, 2020
b6e9137
Update and rename test-commit.yml to test.yml
kevinschaich Jul 1, 2020
a8b6c2a
Create fetch.yml
kevinschaich Jul 1, 2020
392ec17
Update fetch.yml
kevinschaich Jul 1, 2020
48a419a
Update fetch.yml
kevinschaich Jul 1, 2020
5962e1f
Update fetch.yml
kevinschaich Jul 1, 2020
0ebac03
Update fetch.yml
kevinschaich Jul 1, 2020
28db802
Update fetch.yml
kevinschaich Jul 1, 2020
7cd52f1
Update fetch.yml
kevinschaich Jul 1, 2020
7b32ed3
Update fetch.yml
kevinschaich Jul 1, 2020
8eea1e3
Fix for CI
kevinschaich Jul 1, 2020
4f48364
Update fetch.yml
kevinschaich Jul 1, 2020
6564b5c
Fix for CI
kevinschaich Jul 1, 2020
3e5617a
Fix for CI
kevinschaich Jul 1, 2020
2c705a4
Fix for CI
kevinschaich Jul 1, 2020
c79eca1
Fix for CI
kevinschaich Jul 1, 2020
77bc651
Fix for CI
kevinschaich Jul 1, 2020
bae95f5
Fix for CI
kevinschaich Jul 1, 2020
498e71b
Fix for CI
kevinschaich Jul 1, 2020
4ffc6c7
GitHub Actions Schedule
kevinschaich Jul 1, 2020
03dc384
GitHub Actions + Cron Guides
kevinschaich Jul 1, 2020
17809b8
Docs fix
kevinschaich Jul 1, 2020
0fc0444
Better BitBar instructions
kevinschaich Jul 1, 2020
ad986b4
Add files via upload
kevinschaich Jul 1, 2020
7fa3ffd
Delete bitbar.png
kevinschaich Jul 1, 2020
336ee78
Add files via upload
kevinschaich Jul 1, 2020
3aba767
Bitbar image
kevinschaich Jul 1, 2020
c54f937
Bitbar image
kevinschaich Jul 1, 2020
2d92271
Update README.md
kevinschaich Jul 1, 2020
5575164
Readme polish
kevinschaich Jul 1, 2020
67b4217
Readme polish
kevinschaich Jul 1, 2020
7816056
Readme polish
kevinschaich Jul 1, 2020
74fb776
Readme polish
kevinschaich Jul 1, 2020
eaf222c
Readme polish
kevinschaich Jul 1, 2020
fa797fd
Readme polish
kevinschaich Jul 1, 2020
84ee055
2.0.0-beta.40
kevinschaich Jul 1, 2020
22b410f
Add Rogers Bank Credit Card transaction template (#87)
yawhide Jul 1, 2020
7551b68
Feature/csv export (#89)
kevinschaich Jul 2, 2020
42246ec
2.0.0-beta.41
kevinschaich Jul 2, 2020
3021a1e
Update README.md
kevinschaich Jul 2, 2020
facfe2f
2.0.0-beta.42
kevinschaich Jul 3, 2020
b7b8506
Log Redaction for CI Builds (#94)
kevinschaich Jul 7, 2020
c3fbc55
Transaction filters & overrides (#96)
kevinschaich Jul 7, 2020
15cd1ce
2.0.0-beta.45 - stringify using jsonc instead of JSON
kevinschaich Jul 8, 2020
9e6e0b0
CSV Import small fixes
kevinschaich Jul 27, 2020
27508c4
Upgrade to Plaid Link Tokens (#102)
kevinschaich Aug 15, 2020
bf82323
Fix for account removals
kevinschaich Aug 15, 2020
4358228
2.0.0-beta.47
kevinschaich Aug 17, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 0 additions & 29 deletions .circleci/config.yml

This file was deleted.

33 changes: 33 additions & 0 deletions .github/workflows/fetch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Fetch

on:
push:
branches: [ master, release/2.0.0 ]

pull_request:
branches: [ master, release/2.0.0 ]

# schedule:
# - cron: '0 * * * *'

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [12.x, 14.x]

env:
MINTABLE_CONFIG: ${{ secrets.MINTABLE_CONFIG }}

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm run build
- run: node ./lib/scripts/cli.js fetch --ci
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Test Commit
name: Test

on:
push:
Expand All @@ -16,7 +13,7 @@ jobs:

strategy:
matrix:
node-version: [10.x, 12.x, 14.x]
node-version: [12.x, 14.x]

steps:
- uses: actions/checkout@v2
Expand Down
12 changes: 9 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
.DS_Store
.env
.next
*/.next

build/
lib/

mintable.config.json
mintable.sandbox.json
node_modules
mintable.jsonc

node_modules/
package-lock.json
yarn-error.log
yarn.lock
.next
*/.next
2 changes: 1 addition & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"tabWidth": 2,
"tabWidth": 4,
"semi": false,
"singleQuote": true,
"jsxSingleQuote": true,
Expand Down
5 changes: 0 additions & 5 deletions .travis.yml

This file was deleted.

14 changes: 0 additions & 14 deletions .vscode/launch.json

This file was deleted.

92 changes: 47 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,76 @@
<h4 align="center"><img width="200" src="./src/static/logo.png" alt="Mintable"><h4 align="center">Roll your own ad-free Mint clone for managing personal finances using publicly available APIs.</h4><br></h4>
<h4 align="center"><img width="100" src="./docs/img/icon.png" alt="Mintable"></h4>
<h1 align="center" style="font-weight: 500; font-size: 60px !important; border-bottom: 0 !important;">Mintable</h1>

[![](https://img.shields.io/travis/com/kevinschaich/mintable/master.svg)](https://travis-ci.com/kevinschaich/mintable)
[![](https://img.shields.io/github/release/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/releases)
[![](https://img.shields.io/github/license/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/blob/master/LICENSE)
[![](https://img.shields.io/github/contributors/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/graphs/contributors)
[![](https://img.shields.io/github/issues/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/issues)
[![](https://img.shields.io/github/issues-pr/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/pulls)
[![](https://img.shields.io/reddit/subreddit-subscribers/Mintable?style=social)](https://reddit.com/r/Mintable)
<h4 align="center">Automate your personal finances – for free, with no ads, and no data collection.</h4>

## Quickstart
<br>

**Prerequisites:** `node` (tested `v11.6.0`), `yarn` (tested `v1.10.0`)
Mintable helps you:

1. If you plan on using Plaid to fetch account data, [sign up](https://dashboard.plaid.com/signup) for an account and [apply for the development plan](https://plaid.com/pricing/). It usually takes them 1-2 business days to approve this request.
2. Link your accounts and a spreadsheet to Mintable. Run these commands to walk through the setup:
- Keep track of your account balances
- Aggregate transactions from all your banking institutions, including checking accounts, savings accounts, and credit cards
- Analyze and budget your spending using a spreadsheet and formulas

```bash
git clone https://github.com/kevinschaich/mintable.git
cd mintable
yarn
yarn setup
```
![](./docs/img/mintable.png)

3. After completing the setup, run the following at any time to populate updated data into your spreadsheet:
<br>

```
yarn mintable
```
[![](https://img.shields.io/travis/com/kevinschaich/mintable/master.svg)](https://travis-ci.com/kevinschaich/mintable)
[![](https://img.shields.io/github/release/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/releases)
[![](https://img.shields.io/github/license/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/blob/master/LICENSE)
[![](https://img.shields.io/github/issues/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/issues)
[![](https://img.shields.io/github/issues-pr/kevinschaich/mintable.svg)](https://github.com/kevinschaich/mintable/pulls)
[![](https://img.shields.io/reddit/subreddit-subscribers/Mintable?style=social)](https://reddit.com/r/Mintable)

> **Note**: If you started using Mintable before `v1.0.0`, you can run `yarn migrate` to migrate to the new web-based configuration framework.
---

## Overview
## Quickstart

![Mintable](./src/static/mintable.png)
1. Sign up for [Plaid's Free Plan](https://plaid.com/pricing/).
2. Install Mintable:

Mintable simplifies managing your finances, for free, without ads, and without tracking your information. Here's how it works:
```bash
npm install -g mintable
mintable setup
```

1. You connect your accounts and a spreadsheet to Mintable.
1. Mintable integrates with financial institutions to automatically populate transactions in your spreadsheet.
1. You can add whatever formulas, charts, or calculations you want (just like a normal spreadsheet). We also have templates to get you started.
3. Update your account balances/transactions:

## Features
```
mintable fetch
```

- Locally hosted, open-source, 100% free, ad-free, no personal data tracking, no data stored by Mintable on central servers
- Integrates with your financial institutions for fully-automated spreadsheet updates
- Web based setup wizard and configuration framework:
> **Note:** If you're already a version `1.x.x` user, you can [migrate your existing configuration to version `2.x.x`](./docs/README.md#migrating-from-v1xx).

![Setup Wizard](./src/static/setup.png)
## Documentation

You can see a full list of options in the **[Config Docs](./docs/CONFIG.md)**.
Check out the full documentation [in the `./docs` folder](./docs/README.md).

## FAQs

**It's not working / I'm having trouble / I need help**
**WTF is 'Mintable'?!**

- [File an issue](https://github.com/kevinschaich/mintable/issues) or reach out on our [Reddit community](https://www.reddit.com/r/Mintable/).
> **min·ta·ble**: _noun._
> 1. An open-source tool to automate your personal finances – for free, with no ads, and no data collection. Derived from *mint* (the [wildly popular personal finance app from Intuit](https://www.mint.com/)) + *table* (a spreadsheet).

**How is this different from [build-your-own-mint](https://github.com/yyx990803/build-your-own-mint)?**
**Do I have to use Plaid?**

- **[build-your-own-mint](https://github.com/yyx990803/build-your-own-mint)** is a set of scripts which solely facilitates the integration between Plaid and Google Sheets. It makes no assumptions about what you want your spreadsheet to look like, and you have to define your own logic to map transactions to spreadsheet updates.
- **[Mintable](#)** is and end-to-end system that works out of the box. It comes with a setup wizard, a web-based configuration server, [pluggable providers](./docs/PROVIDERS.md) (you're not limited to just Plaid & Google Sheets), and a spreadsheet template.
Nope. You can [import transactions from a CSV bank statement](./docs/README.md#manually--on-your-local-machine--via-csv-bank-statements) exclusively on your local machine. We also have [templates](./docs/templates) to get you started.

**Do I have to give my data to Plaid and Google? Are there any completely self-hosted alternatives I can use?**
**Do I have to use Google Sheets?**

- It's [pluggable](./docs/PROVIDERS.md)! Plaid & Google Sheets are working right now – contributions are welcome for [other providers](./docs/PROVIDERS.md)!
Nope. You can [export your account balances & transactions to a CSV file](./docs/README.md#on-your-local-machine--via-csv-files) exclusively on your local machine.

**Do I have to manually run this every time I want new transactions in my spreadsheet?**

- You can **[Automate Updates with a CI Provider](./docs/CONFIG.md#automate-updates-with-a-ci-provider)** to get free, automated updates!
Nope. You can automate it for free using [BitBar](./docs/README.md#automatically-in-your-macs-menu-bar--via-bitbar), [`cron`](./docs/README.md#automatically-in-your-local-machines-terminal--via-cron), or [GitHub Actions](./docs/README#automatically-in-the-cloud--via-github-actions).

**It's not working!**

- [File an issue](https://github.com/kevinschaich/mintable/issues) or [![](https://img.shields.io/reddit/subreddit-subscribers/Mintable?style=social)](https://reddit.com/r/Mintable).

## Credits
## Alternatives

Mintable initially started as a fork of [Evan You](https://github.com/yyx990803)'s [build-your-own-mint](https://github.com/yyx990803/build-your-own-mint).
- [**Money in Excel**](https://www.microsoft.com/en-us/microsoft-365/blog/2020/06/15/introducing-money-excel-easier-manage-finances/): Recently announced partnership between Microsoft/Plaid. Requires a Microsoft 365 subscription ($70+/year).
- [**Mint**](https://www.mint.com/): Owned by Intuit (TurboTax). Apps for iOS/Android/Web.
- [**build-your-own-mint**](https://github.com/yyx990803/build-your-own-mint): Some assembly required. More flexible.
Loading