Skip to content

markort147/websankey

Repository files navigation

WebSankey

WebSankey is a web app to visualize charts, diagrams, and reports from double-entry bookkeeping CSV files (GnuCash exports).

Stack

  • Backend: Python 3.12 + Flask
  • Rendering: Plotly (server-side HTML for interactive charts)
  • UI: HTML, CSS, HTMx, minimal JavaScript

Features (current)

  • Upload accounts tree CSV and bookkeeping CSV
  • Sankey diagram rendering (Net/Detailed modes, interactive)
  • Date range filtering
  • Local history of last 10 renders (JSON)
  • Light/Dark/System theme toggle

Prerequisites

  • Python 3.12

Setup

/opt/homebrew/bin/python3.12 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt

Run the service

. .venv/bin/activate
python server.py

The server runs on http://127.0.0.1:5000 by default.

Open the web UI

  • Open your browser at http://127.0.0.1:5000.
  • Upload both CSV files and click Render.

Tests

. .venv/bin/activate
python -m unittest discover -s tests

Notes

  • CSV files are provided via upload forms, no fixed file paths are required.
  • History is stored in data/history.json.

Powered by Codex (GPT-5) under human supervision.