Files
ProjectAGiPrompt/16-ProjectMoneyM-转FireFlyIII/1-原始需求/2-优化产品需求文档PRD.md
2026-03-18 16:16:47 +08:00

5.9 KiB
Raw Blame History

产品需求文档 (PRD): ProjectMoneyX 个人全景财务分析系统

文档属性 详情
项目名称 ProjectMoneyX
版本号 v1.1 (优化版)
编制日期 2026-02-26

1. 项目背景与目标

1.1 项目背景

随着移动支付的普及个人财务数据分散在支付宝、微信、各家银行APP及电商平台中。用户难以通过单一平台获取全景财务状况面临“账单碎片化”、“流水重复记录”、“统计维度单一”等痛点。

1.2 项目目标

构建一套自动化、高精度的个人财务分析系统。通过ETL抽取、转换、加载技术整合多源数据利用算法解决跨账户流水重复问题提供多维度的收支分析、资产趋势及预算管理功能帮助用户实现“上帝视角”的财务管控。


2. 数据源与采集规范 (Data Ingestion)

系统需支持多格式、多来源的账单导入,并建立可扩展的解析适配器模式。

数据来源 原始格式 数据周期 解析策略 数据权重 备注
支付宝 CSV 1年 Pandas直接读取 L1 (最高) 包含商品明细,作为消费类主数据
微信支付 CSV 3个月 Pandas预处理 (表头清洗) L2 包含转账与社交红包,需特殊标记
招商银行 PDF 1年 文本流解析 (pdfplumber) L3 作为资金来源核对依据 (Reconciliation)
京东金融 PDF/XLS 1年 文本流解析 / OCR辅助 L3 重点关注“白条”类信贷数据
云闪付 PDF/CSV 1年 适配器解析 L3 银联通道补充数据

功能要求:

  • 适配器模式Adapter Pattern 针对不同来源开发独立的解析类Parser Class当银行账单格式变更时仅需更新对应解析器。
  • OCR 增强解析: 针对图片格式的账单或非标准的扫描版PDF集成 OCR 引擎(如 PaddleOCR进行关键字段日期、金额、商户提取。

3. 数据清洗与核心逻辑 (Data Cleaning & Logic)

这是本系统的核心壁垒,重点解决多渠道数据冲突与标准化问题。

3.1 时间维度标准化

  • 存储标准: 所有交易时间戳统一转换为 ISO 8601 格式存储。
  • 时区处理: 统一归一化为 UTC+8。若涉及跨国交易(如外币信用卡),需保留原始交易币种和时间,并记录当期汇率。
  • 查询支持: 数据库层需支持基于时间窗口Time Window的聚合查询BETWEEN '2026-02-01' AND '2026-02-28')。

3.2 交易去重与链路合并 (De-duplication & Linkage)

初始需求中提到的“重复项”实际上是“同一笔交易在不同账户的映射”。系统不应简单删除,而应建立交易链路Transaction Linkage

核心算法逻辑: 设支付宝账单记录为 $T_{ali}$,银行账单记录为 $T_{bank}$。 当满足以下条件时,判定为同一笔交易:

| Time(T_{ali}) - Time(T_{bank}) | \le \Delta t \quad (\text{建议 } \Delta t = 120s) Amount(T_{ali}) = Amount(T_{bank})

处理策略:

  1. 合并展示: 将两条记录关联。
  • 主记录(保留): 支付宝/微信记录(因其包含具体的商户名、商品名、消费分类)。
  • 辅记录(隐藏/标记): 银行卡记录标记为“资金划转Transfer”或“支付源扣款”。
  1. 账户归属明确:
  • 支付渠道Payment Channel 支付宝、微信、云闪付、美团。
  • 资金账户Funding Source 招商银行信用卡、工商银行储蓄卡、京东白条、余额宝。
  • 示例: 用户在淘宝买衣服,用支付宝绑定的招行卡支付。系统记录为:支出 200元 (分类:服饰),支付渠道:支付宝,资金来源:招行信用卡

3.3 智能分类 (Smart Categorization)

  • 多级分类体系:

  • 一级分类:餐饮、交通、购物、居住、娱乐、医疗、金融。

  • 二级分类:早餐/正餐、地铁/打车、数码/服饰、房租/水电。

  • 关键词映射: 建立 Merchant_Keyword_Map 表。

  • 例:包含“星巴克”、“瑞幸” -> 自动归类为 [餐饮-咖啡]。

  • 例:包含“中国石油” -> 自动归类为 [交通-加油]。

  • 人工修正与学习: 用户手动修改某一笔交易分类后,系统询问“是否将该商户后续交易默认应用此分类”。


4. 功能模块详述

4.1 仪表盘 (Dashboard)

  • 全景资产卡片: 显示总资产、总负债(信用卡+白条+花呗)、净资产。

  • 本月收支概览: * 当月支出 vs 上月同期环比 (MoM)。

  • 预算执行进度条(如:本月预算剩余 30%)。

  • 收支趋势图: 折线图展示近12个月的收支波动。

4.2 账单查询与分析

  • 高级筛选器: 支持组合条件筛选:

  • 时间范围(自定义/本周/本月/本年)。

  • 金额区间(如:> 1000元的大额支出

  • 支付渠道 & 资金账户。

  • 交易分类。

  • 关键词搜索(如:“京东”)。

  • 多维图表:

  • [饼图] 消费结构分析(哪类钱花得最多)。

  • [堆叠柱状图] 支付渠道依赖度分析。

  • [桑基图 (Sankey Diagram)] 资金流向可视化(从收入 -> 账户 -> 支出类别)。

4.3 预算与预警

  • 预算设置: 支持总预算及分分类预算(如:“餐饮”每月限额 3000元
  • 超支预警: 当某一类别支出达到预算的 80% 时,界面高亮提示。

5. 非功能需求 (NFR)

5.1 数据隐私与安全

  • 本地优先Local-First 鉴于财务数据极度敏感,建议所有数据解析、清洗、存储默认在用户本地电脑中完成。

技术栈

  1. Golang
  2. Vue
  3. TypeScript
  4. SQLite
  5. ECharts(寻找适合的图表工具,不限于ECharts)