通过 Plaid 同步银行与券商数据,并用 Playwright + Chrome 抓取器补充 Plaid 覆盖不到的股权计划与药房处方信息
finance-dashboard-template — Flask 后台模板
作者 barnabys-drew
基于 Flask 的自托管个人财务仪表盘模板,通过 Plaid 与自建抓取器汇总银行、券商和股权计划数据,所有个人数据保存在本地。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
目前有 1 张原始预览,可打开完整图片查看设计细节。
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
所有个人数据、令牌与配置存放在 ~/.finance-viz/ 目录,仓库代码不含余额、交易或密钥
提供 --demo 模式,无需任何凭据即可生成示例数据并启动完整仪表盘
包含支出下钻、分类环形图、净资产与资产类别敞口、集中度提醒、股权归属计划、订阅识别与异常扫描等分析视图
分类规则、商户关键词、账户标签、雇主代码与预算均通过 config.json 配置,与代码分离
模板详细介绍
这是一个用 Flask 构建的自托管个人财务仪表盘模板,目标是把分散在银行、券商和股权计划中的财务数据集中到一个本地网页界面中查看。数据来源包括 Plaid API、基于 Playwright 与 Chrome 的股权计划抓取器、药房处方抓取器,以及手动录入的条目;refresh.py 负责编排这些来源,app.py 以只读方式提供页面与 API。
仪表盘包含 Spending、Net Worth、Cash Flow & Trends 等标签页,提供月度支出下钻、分类环形图、头部商户、每日图表、关键词洞察卡片与可选预算,账户余额与资产类别敞口、集中度提醒、已归属与未归属雇主股权及分批归属计划,以及收入与支出对比、环比变化、订阅识别和异常发现。另有周期性扣费扫描与持仓相关的 Yahoo Finance 新闻。
模板强调数据隔离:所有个人数据、令牌和配置存放在 ~/.finance-viz/ 目录,被 gitignore 并设为 chmod-600,代码仓库本身不含余额、交易或密钥;分类规则、商户关键词、账户标签、雇主代码和预算均来自 config.json。仓库提供 --demo 模式,无需 Plaid 账号或任何凭据即可生成示例数据并在本地启动完整仪表盘,适合先查看界面与功能再决定是否接入真实账户。
限制方面,接入真实账户需要按照 SETUP.md 完成 Plaid 开户与账户关联,并为 Plaid 覆盖不到的机构自行配置抓取器;抓取器依赖 Chrome 远程调试流程,运行细节记录在 RUN.md。该模板为 MIT 许可的代码版本,第三方素材与外部服务需另行核对许可与费用。
适合你的项目吗?
适用场景
- 在本地集中查看多个银行与券商账户的余额、支出和现金流趋势
- 跟踪雇主股权计划的已归属与未归属份额及分批归属时间表
- 识别周期性扣费、订阅价格变化和异常交易
- 在接入真实账户前用 --demo 模式预览仪表盘界面与功能
- 为 Plaid 无法覆盖的机构编写或接入自定义抓取器
适合人群
- 希望财务数据完全留在本机、不接受上传到第三方云服务的个人用户
- 具备 Python 环境与基本命令行操作能力,愿意按 SETUP.md 配置 Plaid 和抓取器的开发者
- 需要把支出、净资产、现金流和股权归属放在同一个界面中查看的用户
- 希望基于现有 Flask 代码二次开发或扩展数据来源的开发者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
克隆仓库后创建 Python 虚拟环境并安装 requirements.txt,运行 ./start.sh --demo 可在无凭据情况下生成示例数据并打开 http://localhost:5000
- 2
接入真实账户需参考 SETUP.md 完成 Plaid 开户与账户关联,并按 config.example.json 编写 config.json
- 3
个人数据、令牌与配置存放在 ~/.finance-viz/,该目录被 gitignore 且权限为 chmod-600
- 4
密钥来自本地文件或 1Password CLI,在运行时读取,不硬编码也不写入日志
- 5
抓取器依赖 Chrome 远程调试流程,Tailwind 构建与 WSL 相关细节记录在 RUN.md
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 接入真实银行与券商数据依赖第三方 Plaid 服务,需自行注册 Plaid 账号并完成账户关联,可能产生外部服务费用。
- 密钥读取依赖本地文件或 1Password CLI,使用 1Password 方式需要相应的 1Password 账号与订阅。
- 持仓新闻功能依赖 Yahoo Finance 外部服务,其可用性与条款由第三方决定。
- 股权计划抓取器依赖 Playwright 与 Chrome 远程调试流程,需本地安装并配置 Chrome 环境。
- Plaid 覆盖不到的机构需要用户自行编写或配置抓取器,模板不提供现成支持。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
live bank/brokerage data via **Plaid**
README 原文
Secrets come from a local file or the 1Password CLI at runtime
README 原文
Position news** — Yahoo Finance headlines for your current holdings
README 原文
Equity plan scraper ────┤ ~/.finance-viz/*.json Flask (Playwright + Chrome)
README 原文
https://github.com/barnabys-drew/finance-dashboard-template/blob/main/LICENSEhttps://github.com/barnabys-drew/finance-dashboard-template/blob/main/README.mdadding scrapers for institutions Plaid doesn't reach
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料一般 · 68 / 100
- 技术栈
- Flask
- 网站类型
- 后台
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-13
- 截图检查日期
- 2026-10-13
目前没有记录演示链接。请依据仓库说明在本地评估;仅凭截图无法确认交互行为。
目录记录的主要技术栈是 Flask。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-13
查看当时使用的来源资料
SHA-256: fc703f090b85035669d56d3bdfd245f613cd01cade7934074c369545e3cec7f8
2026-10-13T01:04:57.451Z
来源文件 / 仓库# Finance Dashboard A self-hosted personal finance dashboard: live bank/brokerage data via **Plaid**, equity-plan scraping for what Plaid can't reach, and a local **Flask** dashboard. All financial data stays on your machine — the repo never contains balances, transactions, or secrets. [](https://github.com/barnabys-drew/finance-dashboard-template/actions/workflows/ci.yml)   | Spending | Net Worth | |----------|-----------| |  |  | _All figures shown are generated sample data._ ## Try it in 60 seconds No Plaid account, credentials, or configuration needed: ```bash git clone https://github.com/barnabys-drew/finance-dashboard-template.git cd finance-dashboard-template python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt ./start.sh --demo ``` That generates realistic sample data and opens the full dashboard at `http://localhost:5000`. ## Features - **Spending** — monthly drill-down, category donut, top merchants, daily chart, and keyword-driven insight tiles (Household, Baby, Pet, AI, Utilities, …) with optional per-tile budgets - **Net Worth** — account balances, asset-class exposure, concentration alerts, vested vs. unvested employer equity with a per-tranche vesting schedule - **Cash Flow & Trends** — income vs. spend, month-over-month deltas, subscription detection (price changes, lapsed, emerging), anomaly findings - **Recurring-charge scan** — flags stable monthly/annual merchants, splits true subscriptions from bills - **Position news** — Yahoo Finance headlines for your current holdings ## How it works ``` Plaid API ──────────────┐ Equity plan scraper ────┤ ~/.finance-viz/*.json Flask (Playwright + Chrome) ├─ refresh.py ─────────────────────► app.py ───► localhost:5000 Pharmacy Rx scraper ────┤ (orchestrator) (read-only) Manual entries ─────────┘ ``` - **Everything personal lives in `~/.finance-viz/`** (data, tokens, config) — gitignored, chmod-600, never in the repo. - **Code contains no personal data.** Category rules, merchant keywords, account labels, employer tickers, and budgets all come from `config.json` (see [`config.example.json`](config.example.json)). - Secrets come from a local file or the 1Password CLI at runtime — never hardcoded, never logged. ## Setup with your real accounts Follow **[SETUP.md](SETUP.md)** — it covers Plaid onboarding, linking accounts, the full `config.json` reference, and adding scrapers for institutions Plaid doesn't reach. It's written step-by-step, so you can also hand it to an AI coding assistant and have it walk you through the process. ## Running it | Command | What it does | |---------|--------------| | `./start.sh` | Refresh all sources, then open the dashboard | | `./start.sh --fast` | Skip refresh — cached data, instant | | `./start.sh --demo` | Generated sample data — no credentials at all | | `./start.sh --no-shareworks` | Refresh Plaid only; don't touch Chrome | `RUN.md` documents the runtime details (Chrome remote-debugging flow for scrapers, Tailwind build, WSL specifics). ## Key files | File | Purpose | |------|---------| | `app.py` | Flask app + API routes | | `finance_config.py` | Paths, category rules, config loading, bucket classifier | | `refresh.py` | Orchestrates all data sources | | `plaid_setup.py` / `plaid_refresh.py` | One-time account linking / incremental sync | | `providers/` | Pluggable balance providers (Shareworks scraper, manual entries) | | `portfolio_analytics.py` | Asset-class exposure + concentration alerts | | `detect_subscriptions.py` / `detect_anomalies.py` | Recurring-charge + anomaly scans | | `scripts/gen_sample_data.py` | Demo data generator (powers `--demo` and CI) | | `static/app.js`, `templates/` | Dashboard front-end (Chart.js + Tailwind) | ## Tests ```bash pip install -r requirements-dev.txt python3 -m pytest -q ``` ## License MIT
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

PyFly
Flask + Layui Fly Template实现的一个社区项目,使用flask-admin实现了简单的后台管理功能,数据库使用Mongodb,前台实现功能:用户注册、登录、邮件激活、发帖、回帖、点赞、回复、采纳…
Flask · 后台

Dashboard
Using Flask and a bootstrap template to summarise data from a SQL db in a pivot table.
Flask · 后台

raspi-dash
Raspberry Pi Monitoring Dashboard: Real-time single-pane monitoring dashboard for Raspberry Pi 5 -- system, CP…
Flask · 后台

BootstrapFlask
I have modified a bootstrap sb admin template and combine into flask
Flask · 后台

AdminLTE
AdminLTE - Free admin dashboard template based on Bootstrap 5
Astro · 后台
ant-design-pro
Ant Design Pro 是 Ant Design 官方推出的企业级中后台前端脚手架,基于 React 19、Umi Max 4 和 antd 6 构建,内置 TypeScript 支持。
React · 后台
