{"id":23896780,"url":"https://github.com/rishic3/expendo","last_synced_at":"2026-06-14T18:38:02.510Z","repository":{"id":270921934,"uuid":"911748435","full_name":"rishic3/expendo","owner":"rishic3","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-04T07:36:31.000Z","size":346,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-04T16:55:04.122Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rishic3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-01-03T18:49:55.000Z","updated_at":"2025-01-04T16:19:37.000Z","dependencies_parsed_at":"2025-01-04T16:55:05.325Z","dependency_job_id":null,"html_url":"https://github.com/rishic3/expendo","commit_stats":null,"previous_names":["rishic3/fingal","rishic3/expendo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishic3%2Fexpendo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishic3%2Fexpendo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishic3%2Fexpendo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishic3%2Fexpendo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rishic3","download_url":"https://codeload.github.com/rishic3/expendo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240285382,"owners_count":19777282,"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":[],"created_at":"2025-01-04T16:55:07.301Z","updated_at":"2026-06-14T18:38:02.504Z","avatar_url":"https://github.com/rishic3.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# expendo 💸\n\nPersonal automation tool to track my expenses.  \n\nParses credit card transaction history file, infers expenditure categories based on the transaction metadata (text embedding similarity based on description), and uses the Google API Client to update an expenses spreadsheet. \n\n## Usage\n\n1. Setup environment:\n  ```shell\n  cd python\n  conda create -n expendo python=3.11 -y\n  conda activate expendo\n  pip install -r requirements.txt\n  ```\n\n2. For first time usage, create `credentials.json`. Navigate to: [Google Cloud console](https://console.cloud.google.com/apis/) \u003e Credentials \u003e Create credentials \u003e OAuth client ID. Upload to `python/auth/credentials.json`. Expendo will cache the auth token on first sign-in.  \n\n3. Upload transaction history as CSV.  \n\n4. Run `main.py`, or to run interactively, `main.ipynb`.\n\n## Todo:\n\n- More generalizable approach (lightweight web search?) to infer categories.\n- Auto-pull monthly transaction history somehow - Fidelity doesn't have a public API :(.\n- Annual summary - totals, spending trends, highest months, etc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishic3%2Fexpendo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frishic3%2Fexpendo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishic3%2Fexpendo/lists"}