https://github.com/darshxm/expense_classifier
An app to classify your transactions in the Netherlands into categories to help keep track of spends of recurring items.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.9%) to scientific vocabulary
Repository
An app to classify your transactions in the Netherlands into categories to help keep track of spends of recurring items.
Basic Info
- Host: GitHub
- Owner: darshxm
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Size: 50.8 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Expense Classifier
Overview
Expense Classifier is a Python-based application designed to help users categorize and analyze their financial transactions efficiently. The application supports importing transaction data from Excel files, dynamically classifying expenses using predefined or user-defined rules, and providing visual analytics to help track spending trends. This app has been built to parse transaction data for the Netherlands, developed based on my ABN AMRO account statements, but I think it should work for any provider that lets you download your transactions into an Excel file with the headers "amount", "transactiondate", and "description". The analytics functionality is quite raw and I am working on it, but it is already useful for me while tracking expenses, especially when you pay somewhere and get 10 tikkies that end up showing your actual expense.
This project is licensed under the GNU General Public License v3.0.
Features
- Expense Import: Import transaction data from Excel files with support for handling duplicate entries.
- Dynamic Classification: Automatically classify transactions based on rules stored in a JSON configuration file. Users can also manually categorize expenses.
- Category Management: Add, edit, and manage categories for transaction classification.
- Visual Analytics: Generate weekly visual reports of expenses by category using matplotlib.
- Intuitive GUI: Easy-to-use interface built with Tkinter, featuring dynamic filtering and selection tools.
Installation
Prerequisites
Ensure you have the following installed:
- Python 3.8+
- pip (Python package manager)
Dependencies
Install the required Python libraries using:
bash
pip install -r requirements.txt
Clone the Repository
Clone this repository to your local machine:
bash
git clone https://github.com/darshxm/expense-classifier.git
cd expense-classifier
Usage
- Run the Application: Launch the main script to start the application:
bash
python main.py
Import Data:
- Click on the "Import Data" button to load an Excel file containing your transaction data.
- Ensure the Excel file has the following columns:
transactiondate: The date of the transaction.amount: The transaction amount.description: The transaction description.
Classify Expenses:
- Select unclassified transactions and assign them to categories using the dropdown menu.
- Use the "Classify All" option to apply rules to all similar transactions automatically.
Add New Categories:
- Use the "Add Category" button to define new categories and manage classification rules.
View Analytics:
- Click on the "Show Analytics" button to view weekly spending trends by category.
File Structure
plaintext
.
├── main.py # Entry point for the application
├── gui_app.py # GUI implementation for the application
├── parser_classifier.py # Functions for expense classification and merchant extraction
├── data_reader.py # Handles reading and processing Excel files
├── database_manager.py # Manages SQLite database operations
├── classification_rules.json # Stores classification rules (auto-generated)
├── expenses.db # SQLite database file (auto-generated)
└── requirements.txt # Python dependencies
Configuration
- Classification Rules:
- Classification rules are stored in the
classification_rules.jsonfile. - You can manually edit this file to add or modify rules.
- Classification rules are stored in the
Analytics
- Visual analytics are generated using
matplotliband displayed in a separate window. - Weekly trends are plotted for all classified categories, with each category represented as a separate line in the graph.
Contributing
Contributions are welcome! Please fork the repository and submit a pull request with your improvements or bug fixes.
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with a detailed description of your changes.
License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.
Acknowledgments
- Python community for their amazing libraries and tools.
- matplotlib for data visualization.
- Tkinter for the GUI framework.
Contact
If you have any questions or feedback, please feel free to contact me!
Owner
- Login: darshxm
- Kind: user
- Repositories: 1
- Profile: https://github.com/darshxm
GitHub Events
Total
- Delete event: 2
- Push event: 11
- Create event: 4
Last Year
- Delete event: 2
- Push event: 11
- Create event: 4