The Fund Utilization and Categorization Kit (F.U.C.K.) is a locally run financial tracker for personal finance management. It processes downloadable .csv formatted bank statements from online banking platforms, categorizing transactions and remembering specific addresses for future reference. The main goal is to not having to do it manually in a spreadsheet.
- Local Database: Utilizes a hashed and encrypted local database to match known addresses to their respective categories
- Transaction Categorization: Automatically categorizes transactions from CSV bank statements based on previously encountered addresses
- Interactive Review: Preview all transactions before saving with option to cancel
- Search and Edit: Fix categorization mistakes with search functionality
- Bulk Operations: Recategorize multiple addresses at once with pattern matching
- Filtering: View categories by name or amount range
- Reports and Insights: Generate spending breakdowns with percentages and ASCII charts
- Statistics: Calculate mean, median, highest, and lowest spending categories
- Interactive Help: Comprehensive help system with topics for setup, categories, CSV formats, and security
- Setup Wizard: Guided first-time setup for new users
- Strong Encryption: All sensitive data encrypted with Fernet (AES-128)
New to F.U.C.K.? Run the setup wizard:
python3 main.py initOr jump straight to processing your first CSV:
python3 main.py process your-statement.csvFor help on any topic:
python3 main.py help setupClone the repository and install dependencies:
git clone https://github.com/yourgithubusername/FUCK.git
cd FUCK
pip install -r requirements.txtEnsure you have Python 3.6+ installed on your system. Dependencies are listed in the requirements.txt file.
F.U.C.K. provides a comprehensive CLI for managing your finances:
For new users, start with the interactive setup wizard:
python3 main.py initOr get help on any topic:
python3 main.py help # Show all help topics
python3 main.py help setup # First-time setup guide
python3 main.py help categories # Category management
python3 main.py help csv-format # CSV format requirements
python3 main.py help security # Security and encryptionImport and categorize transactions from your bank's CSV export:
python3 main.py process statement.csvThe process command will:
- Ask you to select which CSV columns contain the date, address, and amount
- Show a preview of all transactions
- Ask you to categorize new addresses
- Let you review before saving
Skip the review step with --no-review:
python3 main.py process statement.csv --no-reviewView all category totals:
python3 main.py viewFilter by category name:
python3 main.py view --category "Groceries"Filter by amount range:
python3 main.py view --min-amount 100 --max-amount 500Combine filters:
python3 main.py view --category "Dining" --min-amount 50Edit a single address categorization:
python3 main.py edit --search "walmart"The edit command will:
- Search for addresses matching "walmart"
- Let you select the address to edit
- Show current category
- Let you choose a new category
Recategorize multiple addresses at once:
python3 main.py bulk-edit --pattern "amazon" --category "Shopping"Preview changes before confirming:
python3 main.py bulk-edit --pattern "store" --category "Retail"Skip confirmation prompt:
python3 main.py bulk-edit --pattern "walmart" --category "Groceries/Food" --yesGenerate a spending breakdown report:
python3 main.py reportThe report shows:
- Total spending
- Category breakdown with percentages
- ASCII bar charts for visualization
- Sorted by amount (highest first)
Disable bar charts:
python3 main.py report --no-barsShow additional statistics:
python3 main.py report --statsStatistics include:
- Average per category
- Median spending
- Highest and lowest categories
For security reasons, you can set up environment variables for the encryption key and salt for hashing:
- Linux/Unix:
export FUCK_GLOBAL_SALT=your_salt_hereandexport FUCK_ENCRYPTION_KEY=your_encryption_key_here - Windows:
set FUCK_GLOBAL_SALT=your_salt_hereandset FUCK_ENCRYPTION_KEY=your_encryption_key_here
Or save the respective strings in your Password Manager.
Feel free to reach out through GitHub.
This project is licensed under the GNU General Public License v3.0. A copy of the license can be found in the LICENSE file within the project repository.