first commit

This commit is contained in:
2026-03-22 23:30:38 -04:00
commit 78a6d73c11
19 changed files with 2732 additions and 0 deletions

221
INDEX.md Normal file
View File

@@ -0,0 +1,221 @@
# FargoImport - File Index & Navigation
## 📖 Start Here
1. **New to the project?** → Read `QUICKSTART.md` (5 min read)
2. **Want full details?** → Read `README.md` (comprehensive)
3. **Need module reference?** → Check `PROJECT_SUMMARY.md`
---
## 🐍 Python Modules (7 files)
### Core Extraction
- **`wf_debit_extractor.py`** - Extract Wells Fargo payloads from HAR JSON
- `WellsFargoPayloadExtractor` class
- Methods: `extract_from_file()`, `extract_from_data()`, `get_objects()`
- Usage: Extract proprietary JSON wrapped in `/*WellFargoProprietary%...%WellFargoProprietary*/`
### Data Processing
- **`transaction_processor.py`** - Transform raw transactions into structured format
- `TransactionProcessor` class
- Methods: `extract_transactions()`
- Converts amounts to cents, timestamps to datetime, normalizes data
### External Integration
- **`ynab_client.py`** - Connect to YNAB API and fetch transactions
- `YNABClient` class
- Methods: `get_transactions_for_days()`, `get_account_balance()`
- Configuration via `ynab.yml`
### Reconciliation
- **`reconcile.py`** - Compare Wells Fargo and YNAB transactions
- `reconcile_transactions()` function
- `main()` CLI entry point
- Generates `reconciliation_report.json`
### Credit Module
- **`wf_credit_extractor.py`** - Credit extractor module (renamed from `extractor.py`)
### CLI & Examples
- **`main.py`** - Command-line interface for Wells Fargo extraction
- Args: `--input`, `--output`, `--show-errors`
- Usage: `python main.py --input posted.dat`
- **`example_usage.py`** - Wells Fargo transaction processing example
- Demonstrates extraction → processing → JSON output
- Output: `processed_transactions.json`
- **`ynab_example.py`** - YNAB transaction fetching example
- Demonstrates YNAB API integration
- Output: `ynab_transactions.json`
---
## ⚙️ Configuration (1 file)
- **`ynab.yml`** - YNAB API credentials and account mapping
```yaml
ynab:
- token: "your_ynab_api_token"
plan_id: "your_budget_id"
accounts:
- name: "Credit Card"
id: "account_uuid"
```
---
## 📚 Documentation (4 files)
| File | Purpose | Read Time |
|------|---------|-----------|
| `QUICKSTART.md` | Quick start guide with examples | 5 min |
| `README.md` | Full project documentation | 15 min |
| `PROJECT_SUMMARY.md` | Module reference & architecture | 10 min |
| `YNAB_MODULE.md` | YNAB client detailed docs | 5 min |
---
## 📊 Data Files (4 output files)
These are generated by running the example scripts:
- **`extracted.json`** - Raw Wells Fargo payload objects (from `main.py`)
- **`processed_transactions.json`** - Processed WF transactions (from `example_usage.py`)
- 179 sample transactions
- Fields: id, amount_cents, dates (timestamp & datetime), description
- **`ynab_transactions.json`** - YNAB transactions (from `ynab_example.py`)
- Fetched from YNAB API
- Fields: id, date, payee, category, amount, account, memo
- **`reconciliation_report.json`** - Comparison report (from `reconcile.py`)
- Summary of both data sources
- Totals and transaction counts
- Full transaction lists
---
## 🎯 Common Tasks
### Extract Wells Fargo Data
```bash
# Display in console
python main.py
# Save to file
python main.py --output extracted.json
# Process transactions
python example_usage.py
```
### Fetch YNAB Data
```bash
python ynab_example.py
```
### Reconcile Both Sources
```bash
python reconcile.py
```
### Programmatic Usage
```python
from wf_debit_extractor import WellsFargoPayloadExtractor
from transaction_processor import TransactionProcessor
from ynab_client import YNABClient
# Wells Fargo
wf = WellsFargoPayloadExtractor()
payloads = wf.extract_from_file("posted.dat")
processor = TransactionProcessor()
wf_txns = processor.extract_transactions(payloads)
# YNAB
ynab = YNABClient()
ynab_txns = ynab.get_transactions_for_days(days=30)
# Access
for txn in wf_txns[:5]:
print(txn["transaction_description"])
```
---
## 🔍 Module Dependencies
```
posted.dat (input)
wf_debit_extractor.py
transaction_processor.py
example_usage.py → processed_transactions.json
ynab.yml (config)
ynab_client.py
ynab_example.py → ynab_transactions.json
Both ↓
reconcile.py → reconciliation_report.json
```
---
## ✅ File Status
| Type | Count | Status |
|------|-------|--------|
| Core Modules | 4 | ✅ Tested & Working |
| CLI/Examples | 3 | ✅ Tested & Working |
| Configuration | 1 | ✅ Ready |
| Documentation | 4 | ✅ Complete |
| Data Files | 4 | ✅ Generated |
| **Total** | **16** | **✅ Complete** |
---
## 🚀 Getting Started
1. **Read** `QUICKSTART.md` (2 min)
2. **Update** `ynab.yml` with your API token
3. **Run** `python example_usage.py` (verify WF extraction)
4. **Run** `python ynab_example.py` (verify YNAB connection)
5. **Run** `python reconcile.py` (generate comparison)
---
## 📞 Documentation Map
- Need quick answer? → `QUICKSTART.md`
- How do I use X? → `README.md`
- What does Y do? → `PROJECT_SUMMARY.md`
- YNAB details? → `YNAB_MODULE.md`
- Code docstrings? → Open the `.py` file
---
## 🔗 Key Entry Points
**CLI Interface:**
- `main.py` - Extract Wells Fargo data from command line
**Programmatic API:**
- `wf_debit_extractor.py` - Wells Fargo extraction
- `transaction_processor.py` - Transaction processing
- `ynab_client.py` - YNAB integration
- `reconcile.py` - Reconciliation
**Examples:**
- `example_usage.py` - Wells Fargo example
- `ynab_example.py` - YNAB example
---
Generated: March 20, 2026