{"id":16031863,"url":"https://github.com/dckc/finquick","last_synced_at":"2025-03-16T07:32:25.077Z","repository":{"id":42664260,"uuid":"12336529","full_name":"dckc/finquick","owner":"dckc","description":"family finance tools of a closet librarian","archived":false,"fork":false,"pushed_at":"2025-02-09T20:11:19.000Z","size":2014,"stargazers_count":12,"open_issues_count":20,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-09T01:01:52.227Z","etag":null,"topics":["finance","gnucash","javascript","ocaps","ofx","sql"],"latest_commit_sha":null,"homepage":"https://www.madmode.com/search/label/finances/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dckc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-08-24T02:03:47.000Z","updated_at":"2024-09-30T04:42:00.000Z","dependencies_parsed_at":"2024-07-22T05:41:16.397Z","dependency_job_id":null,"html_url":"https://github.com/dckc/finquick","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dckc%2Ffinquick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dckc%2Ffinquick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dckc%2Ffinquick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dckc%2Ffinquick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dckc","download_url":"https://codeload.github.com/dckc/finquick/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243806049,"owners_count":20350775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finance","gnucash","javascript","ocaps","ofx","sql"],"created_at":"2024-10-08T21:06:28.745Z","updated_at":"2025-03-16T07:32:24.668Z","avatar_url":"https://github.com/dckc.png","language":"JavaScript","readme":"# finquick -- family finance tools of a closet librarian\n\nMy ideal personal accounting system would\n\n- support double-entry accounting, with budgeting, reports, and charts\n- have an open architecture with\n  - an SQL back-end\n  - a flat-file serialization of the data suitable for use with version control\n- integrate with the Web, both\n  - allowing access from any machine with a web browser\n  - syncing with banking web sites\n\n| System      | Start   | Stop    | Double-Entry | Open    | SQL | Web UI | Bank/Card Sync |\n| ----------- | ------- | ------- | ------------ | ------- | --- | ------ | -------------- |\n| Sheetsync   | 2023-   |         | **NO**       | Web API | NO  | yes    | yes            |\n| LunchMoney  | 2021-   |         | **NO**       | Web API | NO  | yes    | yes            |\n| GnuCash     | 2010-06 |         | yes          | yes     | yes | **NO** | some           |\n| Mint        | 2011?   | 2012-02 | **NO**       | NO\\*    | NO  | yes    | yes            |\n| Quicken     | 1990    | 2010-06 | yes          | **NO**  | no  | no     | some           |\n| EXP BASIC09 | 1986-09 | 1987-03 | yes          | yes     | no  | no     | no             |\n\n### Journal: blog items, commits\n\n- 2023-08: f72e789 \\* fix(amazonSync)!: use azad since Amazon ended history reports\n- 2023-03: b3bcc51 \\* feat(GnuCash DB): balanceSheet, incomeStatement queries\n- 2023-03: 2c4757f \\* feat(sync26): edit Sheetsync txs using a sheet of rules\n- 2023-02: 79787ca \\* feat(sync26): Load Trade Accounting from CSV attachments\n- 2023-02: 3c800f4 \\* feat: push GnuCash tx ids, pull Sheetsync categories\n- 2023-02: f8dc9ab \\* feat: Google Sheets API authentication\n- 2023-02: 659f181 \\* feat(GnuCash DB): accounts as Sheetsync categories: code, Category, Group, Type\n- 2023-02: f78f1ab \\* feat: lookup Amazon orders/items for Sheetsync\n- 2023-02: 150c389 \\* style: Agoric JS style (following AirBnB)\n- 2023-02: 106517f \\* trade accounting from staketax, osmosis, coinbase via google sheets\n- 2022-11: 4aaa5b4 \\* sync lunchmoney, GnuCash using vanilla localStorage UI,\n  GET/PATCH back-end\n- 2022-11: 2c8e875 \\* write lunchmoney transactions in OFX format\n- 2022-10: 0238e9d \\* sync venmo email receipts, lunchmoney, gnucash via Google Sheets\n- 2022-10: bb3fd06 \\* move to line-delimited JSON for flat-file serialization\n  - `pipx install sqlite-diffable`\n  - https://github.com/simonw/sqlite-diffable 9a6d64d Aug 18 2022\n- 2022-08: 321a09e \\* watch downloads; fix dates on statements etc.\n- 2022-01: 461c01c \\* ingest balance sheet report\n  - [ingest 2021 Q2 balance sheet into RVote agenda · PR \\#63](https://github.com/rchain/reference/pull/63)\n- 2021-09: sync with LunchMoney: 86cda00 thru 49e7a75\n  - LunchMoney is delightful in a lot of ways, but it's not good enough to replace GnuCash yet. And while syncing between the two seems feasible in theory, I have yet to manage in practice.\n- 2021-10: 6c95342: feat: fetch anchor protocol history\n- 2021-09: 03f4c9d \\* feat: coinbase card to CSV for lunch money\n- 2021-04: 2f551fe \\* feat: fetch cosmos account history\n- 2021-03: f8e7a0b \\* feat(coinbase): fetch accounts and transactions\n- 2021-02: 3c70ba7 \\* feat(etherscan): download ERC20 transactions to DB\n- 2021-02: 80633bd \\* style(brcal): agoric js style\n- 2020-11: 120f493 \\* brcal - budget review calendar sync\n- 2021-01: fbf5194 \\* unifetch: fetch position, transaction data using uniswap graphql\n- 2020-11: a0642ca \\* brscript: sync budget review calendar using Google Apps Script\n- 2017-12: [College Expense Tracking in BASIC09](https://www.madmode.com/2017/ut-austin-expenses.html)\n- 2016-2018: Capper Web UI for GnuCash DB\n  - 2017-09 40cc1d2 \\* expose desktop presense, secret service as capper app\n  - 2016-12 08f3c7a \\* simple: offline conversion from JSON to OFX\n  - 2016-02: 5dc7ec4 \\* account balances react to database transactions\n  - 2016-01-30 62bb854 \\* bootstrap style for budget UI\n  - 2016-01-17 394abdc \\* login with username, challenge question, and password page (WebDriver / Nightmare)\n  - 2016-01: 5fcde6f \\* use node.js `require.main` idiom (a la python's `__main__`)\n  - 2016-01: 1196a44 \\* budget.js: flow type annotations\n- 2012-05: 2678623 \\* OFX to ElementTree works in 1 case\n- 2012-04: a1b1e41 \\* toward web app access to gnucash db: pyramid alchemy scaffold\n  - GnuCash 2.4.10 supports SQL\n- 2009-05: [Expense reporting with Android, GnuCash, and IRS\\.gov](https://www.madmode.com/2009/05/expense-reporting-with-android-gnucash.html)\n- 2006-03: [Getting my Personal Finance data back with hCalendar and hCard](https://www.madmode.com/2006/breadcrumbs_0096.html)\n  - trxht -- format personal finance transactions as hCalendar\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdckc%2Ffinquick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdckc%2Ffinquick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdckc%2Ffinquick/lists"}