{"id":21804682,"url":"https://github.com/cortadocodes/finances-automation","last_synced_at":"2025-07-20T06:30:59.466Z","repository":{"id":37599383,"uuid":"148986458","full_name":"cortadocodes/finances-automation","owner":"cortadocodes","description":"Automate the categorisation and analysis of my finances.","archived":true,"fork":false,"pushed_at":"2022-06-21T21:43:07.000Z","size":275,"stargazers_count":1,"open_issues_count":8,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-21T07:41:19.683Z","etag":null,"topics":["categorisation","expenditures","finance","finances-automation"],"latest_commit_sha":null,"homepage":"","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/cortadocodes.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}},"created_at":"2018-09-16T10:50:48.000Z","updated_at":"2024-01-13T15:00:42.000Z","dependencies_parsed_at":"2022-08-25T22:11:44.028Z","dependency_job_id":null,"html_url":"https://github.com/cortadocodes/finances-automation","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/cortadocodes/finances-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortadocodes%2Ffinances-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortadocodes%2Ffinances-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortadocodes%2Ffinances-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortadocodes%2Ffinances-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cortadocodes","download_url":"https://codeload.github.com/cortadocodes/finances-automation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortadocodes%2Ffinances-automation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266076350,"owners_count":23872741,"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":["categorisation","expenditures","finance","finances-automation"],"created_at":"2024-11-27T11:56:11.645Z","updated_at":"2025-07-20T06:30:59.225Z","avatar_url":"https://github.com/cortadocodes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Finances automation\n\n[![CircleCI](https://circleci.com/gh/cortadocodes/finances-automation/tree/master.svg?style=svg)](https://circleci.com/gh/cortadocodes/finances-automation/tree/master)\n\n## Installation\n### Pull and start the database container\nTo pull and start the persistent `postgres` database container, run\n```bash\nPOSTGRES_DB=postgres POSTGRES_USER=postgres POSTGRES_PASSWORD=\u003cpassword\u003e \\\ndocker run -d -p 5433:5432 \\\n-v \u003cabsolute_path_to_desired_data_location_on_host\u003e:/var/lib/postgresql/data \\ \n--name postgres-finances-automation postgres:11\n```\nwhere `\u003cpassword\u003e` is your choice of password for the database, and `\u003cabsolute_path_to_desired_data_location_on_host\u003e`\nis the location in which to store the database cluster on your machine. The database password can be stored locally by \nsetting it as an environment variable, or declared with each command run.\n\nAfter the database has been pulled and started for the first time, it can be stopped by\n```bash\ndocker stop postgres-finances-automation\n```\nand started again by\n```bash\ndocker start postgres-finances-automation\n```\nThe database container must be running for any of the below commands to work properly.\n\n### Install the package\n```bash\npip3 install -e .[development]\n```\nor\n```bash\npip3 install setup.py\n```\n\n## Configuration/initialisation\nThe configuration for the database, tables, categories and more is included in `finances_automation/configuration.py`.\nTo initialise the database with the tables from the configuration file, run\n```bash\npython3 finances_automation/initialise_database.py\n```\nfrom the repository root.\n\n## Usage\nFrom the repository root and with the `POSTGRES_PASSWORD` set, run\n```bash\nfinances-automation --help\n```\n\nThe output will look like this:\n```\nusage: finances-automation [-h] {parse,categorise,analyse,view_latest} ...\n\nAutomate your finances analysis.\n\noptional arguments:\n  -h, --help            show this help message and exit\n\nSubcommands:\n  {parse,categorise,analyse,view_latest}\n    parse               Parse a UTF-8 .csv financial statement.\n    categorise          Categorise transactions from a transactions table.\n    analyse             Analyse transactions from a transactions table.\n    view_latest         View the latest entries to a table.\n```\n\n## Running tests\nFrom the repository root, run:\n```bash\npytest\n```\n\n## Aims\nThe aim of this project is to automate the manual review of my finances I carry out each month in Excel. The \nproject will involve:\n* Automating the ingestion of financial statements in `.csv` or `.xlsx` format\n* Creating a database for financial data\n* Automating the categorisation of each transaction into e.g. `travel`, `food` etc. This will require some machine \nlearning, although will initially be carried out manually by asking the user to label each transaction. This manual \nmethod will still be quicker and easier than the current method, and has the secondary use of creating a labelled \ndataset for a model to be trained on\n* Calculating the expenditure in each category and producing summary statistics related to a pre-defined budget. This\n will include e.g. average expenditures (monthly, yearly etc.) and a forecast based on previous months/years.\n* Creating a dashboard displaying these statistics in an elegant and insightful fashion (I'll probably use `seaborn` \nhere). The interface will allow the user to see statistics for different date ranges and bank accounts.\n* Providing a command line interface to the above\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcortadocodes%2Ffinances-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcortadocodes%2Ffinances-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcortadocodes%2Ffinances-automation/lists"}