# 个人财务分析系统 
``` 项目名称: ProjectMoneyM ```
``` 项目版本: v1.0 ```
``` 项目编制日期: 2026-02-26 ```

## 数据来源

1. 数据来源
| 数据来源 | 最长周期 | 文件格式 | 说明 | 数据维度 |
| --- | --- | --- | --- | --- |
| 支付宝账单 | 1年 | csv | 第一来源 | 最全 |
| 微信账单 | 3个月 | csv | 第二来源 | 第二全 |
| 招商银行 | 1年 | pdf | 第三来源 | 第三全 |
| 京东商城 | 1年 | pdf | 第四来源 | 第四全 |

2. 数据解析工具
   1. 能够读取不同格式的账单来源
   2. 能够通过OCR的方式解析特定的收入数据


## 数据清洗及标准化

1. 时间维度清洗
   1. 需要统一时间维度,统一为东八区时间,格式为yyyy-MM-dd HH:mm:ss
   2. 数据展示环节 需要能够通过时间段进行筛选查询收支数据
2. 支付项目清洗
   1. 需要过滤重复的支付项
   2. 需要明确支付途径和支付卡
   3. 例如,一笔支出,银行账单会记录支出,支付宝或者微信会记录支出,需要将这些重复的支付项合并
   4. 支付途径为: 支付宝,微信,云闪付,京东,美团,拼多多
   5. 实际支付卡为: 信用卡,借记卡,余额宝,微信钱包,支付宝钱包
   6. 支出项目的账本归类
      1. 一笔支出可以归于一个或者多个账本
      2. 一笔支出需要在日常开支中进行分析,也需要在过年支出这种特殊的账本中进行分析
3. 支付金额清洗
   1. 需要统一为标准的数据格式
4. 支出去向清洗
   1. 需要将支出进行分类
   2. 请参考支付宝的支出分类


## 收支情况 展示内容
```此部分重要使用前端图表工具进行绘图展示```

### 收支分析(请给出能够展示的图形类型)
   1. 需要直观的看出结余情况, 收入大于支出,支出大于收入的对比
   2. 时间维度为,月度,季度,年度,重点展示月度收支情况
   3. 收支的最小维度为月度


### 收入分析(请给出能够展示的图形类型)

#### 收入趋势
   1. 能够根据不同的时间维度进行收入的对比
   2. 能够直观的展示收入的趋势
#### 收入总览
   1. 收入来源占比分析
   2. 时间维度,重点展示年度收入,季度收入
   3. 收入的最小维度为月度

#### 收入

### 支出分析(请给出能够展示的图形类型)
#### 支出趋势
   1. 能够根据不同的时间维度进行支出的对比
   2. 能够直观的展示支出的趋势
#### 支出总览
   1. 支出去向占比分析
   2. 时间维度,重点展示年度支出,季度支出
   3. 支出的最小维度为月度


### 展示内容导出
1. 支持将展示内容导出为图片
2. 支持将展示内容导出为PDF文件

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

