{"id":25861495,"url":"https://github.com/sahilmate/personal-finance-tracker","last_synced_at":"2026-05-12T10:35:13.264Z","repository":{"id":251536160,"uuid":"837698826","full_name":"sahilmate/personal-finance-tracker","owner":"sahilmate","description":"A Python application for tracking personal finances. It allows you to log income and expenses, view summaries within date ranges, and visualize financial trends with graphs. Ideal for managing and analyzing your financial data easily.","archived":false,"fork":false,"pushed_at":"2025-09-17T18:28:09.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-17T20:55:33.378Z","etag":null,"topics":["data-visualization","matplotlib-pyplot","pandas","python3"],"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/sahilmate.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-03T18:44:13.000Z","updated_at":"2025-09-17T18:28:12.000Z","dependencies_parsed_at":"2025-09-17T20:21:17.771Z","dependency_job_id":"6dc83fcc-8137-4e9c-9c69-5a2b32295e18","html_url":"https://github.com/sahilmate/personal-finance-tracker","commit_stats":null,"previous_names":["sahilmate/personal-finance-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sahilmate/personal-finance-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilmate%2Fpersonal-finance-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilmate%2Fpersonal-finance-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilmate%2Fpersonal-finance-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilmate%2Fpersonal-finance-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sahilmate","download_url":"https://codeload.github.com/sahilmate/personal-finance-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilmate%2Fpersonal-finance-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32934762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["data-visualization","matplotlib-pyplot","pandas","python3"],"created_at":"2025-03-01T23:36:41.970Z","updated_at":"2026-05-12T10:35:13.259Z","avatar_url":"https://github.com/sahilmate.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Personal Finance Tracker\n\n## Overview\n\nThe Personal Finance Tracker is a simple Python application designed to help users manage their finances. It allows users to add financial transactions, view transaction summaries, and visualize income and expenses over time. The application stores data in a CSV file and provides a command-line interface for interaction.\n\n## Features\n\n- **Add Transactions:** Users can input transaction details including date, amount, category (Income or Expense), and description.\n- **View Transactions:** Users can view transactions and get a summary of total income, expenses, and net savings within a specified date range.\n- **Visualize Data:** The application can generate a plot showing income and expenses over time.\n\n## Getting Started\n\n### Prerequisites\n\nEnsure you have Python 3.6 or higher installed on your system. You will also need the following Python packages:\n- `pandas`\n- `matplotlib`\n\nYou can install the required packages using pip:\n\n```bash\npip install pandas matplotlib\n```\n\n### Setting Up\n\n1. **Clone the Repository:**\n\n    ```bash\n    git clone https://github.com/sahilmate/personal-finance-tracker.git\n    cd personal-finance-tracker\n    ```\n\n2. **Create a CSV File:**\n\n    The application uses `finance_data.csv` to store transactions. The file will be automatically created if it does not exist.\n\n3. **Run the Application:**\n\n    ```bash\n    python main.py\n    ```\n\n## Usage\n\n1. **Add a New Transaction:**\n    - Select option 1 from the menu.\n    - Enter the date (or press Enter to use today’s date).\n    - Provide the amount.\n    - Choose the category by entering 'I' for Income or 'E' for Expense.\n    - Optionally, provide a description.\n\n2. **View Transactions and Summary:**\n    - Select option 2 from the menu.\n    - Enter the start and end dates for the transaction range.\n    - The application will display transactions in the specified range and provide a summary of total income, expenses, and net savings.\n    - You will also have the option to generate a plot of income and expenses over time.\n\n3. **Exit:**\n    - Select option 3 to exit the application.\n\n## Code Structure\n\n- `main.py`: The main script that runs the application, handles user input, and performs operations based on user choices.\n- `data_entry.py`: Contains functions to get user input for date, amount, category, and description. Also handles CSV file operations through the `CSV` class.\n- `finance_data.csv`: CSV file where transactions are stored.\n\n## CSV File Format\n\nThe `finance_data.csv` file should have the following format:\n\n```\ndate,amount,category,description\n01-07-2024,1000,Income,Salary\n...\n```\n\nEnsure that there are no formatting errors, such as missing commas or mismatched fields.\n\n## Troubleshooting\n\n- **Error Tokenizing Data:** This error often occurs if the CSV file contains malformed data. Ensure that the file does not have any incorrect formatting or extra commas.\n- **Invalid Date Format:** Ensure that dates are entered in the format `dd-mm-yyyy`.\n\n## Output Example\n\n### Adding a Transaction\n\n```\nEnter the date of the transaction (dd-mm-yyyy) or enter for today's date: 29-06-2024\nEnter the amount: 2500\nEnter the category ('I' for Income or 'E' for Expense): I\nEnter a description (optional): Birthday\nEntry added successfully\n```\n\n### Viewing Transactions\n\n```\nTransactions from 14-12-2023 to 30-06-2024\n        date  amount  category   description\n14-12-2023    124.0  Expense    Groceries\n29-06-2024   2500.0  Income     Birthday\n\nSummary:\nTotal Income: $2500.00\nTotal Expense: $124.00\nNet Savings: $2376.00\n```\n\n### Plot Example\n\n![Income and Expenses Over Time](result.png)\nThe graph helps visualize the distribution of income and expenses, providing insights into your financial trends.\n\n## Contribution\n\nContributions are welcome! Please submit a pull request or open an issue if you have suggestions or improvements.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahilmate%2Fpersonal-finance-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsahilmate%2Fpersonal-finance-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahilmate%2Fpersonal-finance-tracker/lists"}