docs: update README with setup, usage, and project structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-10 15:16:43 -05:00
parent cadb24fed7
commit db6ba2cedc
+71 -1
View File
@@ -1,3 +1,73 @@
# SpendingAnalysis
vibe coded app to intake data from various sources to help analyze my spending habits
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
```bash
# Via the installed entry point
spending-analysis
# Or run the module directly
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
```