Metadata-Version: 2.4
Name: daftarche
Version: 0.2.0
Summary: Daftarche: personal bookkeeping for bank transactions imported from QFX and Excel statements
Author-email: Vahid Anari <vahid.anari8@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/vahid-anari/daftarche
Project-URL: Source, https://github.com/vahid-anari/daftarche
Project-URL: Issues, https://github.com/vahid-anari/daftarche/issues
Project-URL: Changelog, https://github.com/vahid-anari/daftarche/blob/main/CHANGELOG.md
Keywords: personal finance,bookkeeping,budget,QFX,OFX,CIBC,PySide6
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: MacOS X
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business :: Financial :: Accounting
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PySide6>=6.6
Requires-Dist: pandas>=2.0
Requires-Dist: openpyxl>=3.1
Requires-Dist: sciwidgets~=0.11.0
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: icon
Requires-Dist: Pillow; extra == "icon"
Requires-Dist: numpy; extra == "icon"
Dynamic: license-file

# Daftarche

*Daftarche* (دفترچه, "little account book") is a personal bookkeeping desktop app —
PySide6 + SQLite. It imports CIBC QFX/OFX statements (and historical Excel files),
tracks income, expenses and transfers across accounts, with dashboards, charts,
categories, tags and transfer matching.

## Install

```zsh
pip install -e .
daftarche               # run
daftarche install-app   # add to Applications / Dock
daftarche update        # update from PyPI (asks first)
```

## Data

Nothing personal lives in this repository. The app keeps its files in

```
~/Library/Application Support/Daftarche/
    daftarche.db                     the database
    config.json                      theme and view settings
    backups/daftarche-last.db        written at every start
    backups/daftarche-YYYY-MM.db     first start of each month; the last 12 are kept
```

Set `DAFTARCHE_HOME=/some/folder` to use another location (e.g. a test copy).
Backup / Restore in the app's top bar save and load a copy of the database.

## Layout

```
src/daftarche/
    main.py         command-line entry point
    window.py       main window, Settings dialog
    paths.py        data locations
    backup.py       automatic backups
    db.py           SQLite layer (all queries live here)
    style.py        stylesheet + settings
    widgets.py      shared widgets
    chart_utils.py  QChart helpers
    tabs/           dashboard, transactions, charts, accounts, import, manage
tools/make_icon.py  draws data/icons/app_icon.png and splash.png
tests/              pytest suite (synthetic data only)
```

## Development

```zsh
pip install -e ".[dev]"
pytest
```

## Release

1. Bump `version` in `pyproject.toml` and add a `## X.Y.Z — date` section to `CHANGELOG.md`.
2. Commit, then `git tag vX.Y.Z && git push --tags` — the release workflow publishes
   the GitHub Release with that changelog section.
3. `python -m build && twine upload dist/*` — PyPI.

## License

MIT
