267b624395
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
71 lines
2.1 KiB
Markdown
71 lines
2.1 KiB
Markdown
# SpendingAnalysis
|
|
|
|
Desktop app to intake data from various sources and analyze spending habits. Built with Python, PySide6 (Qt), and SQLite.
|
|
|
|
## Features
|
|
|
|
- **CSV Import** — drag-and-drop import wizard with configurable column mappings and duplicate detection
|
|
- **Transaction Management** — browse, filter, and categorize transactions inline
|
|
- **Spending Analysis** — trends, breakdowns, and forecasting charts
|
|
- **Recurring Detection** — identify recurring charges across accounts
|
|
- **Cross-Account Transfers** — automatic detection of transfers between accounts
|
|
- **Rule-Based Categorization** — auto-categorize transactions using custom rules
|
|
- **Household Tracking** — manage household members and shared expenses
|
|
- **Dark / Light Themes** — toggle between themes from the sidebar
|
|
|
|
## Requirements
|
|
|
|
- Python 3.12+
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
# Clone the repo
|
|
git clone https://gitea.conlon.fun/andy/SpendingAnalysis.git
|
|
cd SpendingAnalysis
|
|
|
|
# Create a virtual environment and install
|
|
python -m venv .venv
|
|
.venv\Scripts\activate # Windows
|
|
# source .venv/bin/activate # macOS / Linux
|
|
|
|
pip install -e .
|
|
```
|
|
|
|
## Running
|
|
|
|
With the virtual environment activated:
|
|
|
|
```bash
|
|
python -m src.main
|
|
```
|
|
|
|
The app stores its SQLite database at `~/.spending_analysis/spending.db`. Default categories are seeded on first launch.
|
|
|
|
## Running Tests
|
|
|
|
```bash
|
|
pip install -e ".[dev]"
|
|
pytest
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
├── main.py # Application entry point
|
|
├── db.py # SQLAlchemy engine / session setup
|
|
├── seed.py # Default category seeding
|
|
├── models/ # SQLAlchemy models (account, category, transaction, rule, etc.)
|
|
├── services/ # Business logic (import, categorization, analysis, forecasting)
|
|
└── ui/ # PySide6 views and themes
|
|
├── main_window.py
|
|
├── sidebar.py
|
|
├── import_view.py
|
|
├── transactions_view.py
|
|
├── analysis_view.py
|
|
├── recurring_view.py
|
|
├── settings_view.py
|
|
└── themes/
|
|
tests/ # pytest test suite
|
|
``` |