# ppfina **Repository Path**: Sherlock_L/ppfina ## Basic Information - **Project Name**: ppfina - **Description**: 个人资产管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-17 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PFMS - 个人财务管理软件 一个基于Web的个人财务管理软件,使用Go语言(Gin框架)开发,提供直观的Web界面来管理个人财务。 ## 功能特性 ### 财务管理 - **资产管理**: 添加和管理资产项目(存款、投资等) - **负债管理**: 添加和管理负债项目(贷款、信用卡等) - **项目状态**: 支持启用/禁用财务项目 ### 交易记录 - **收入记录**: 记录各类收入 - **支出记录**: 记录各类支出 - **转账功能**: 账户间资金转账 - **交易查询**: 按条件筛选和搜索交易记录 ### 余额管理 - **实时余额**: 查看各项目的当前余额 - **资产汇总**: 统计总资产 - **负债汇总**: 统计总负债 - **净资产**: 计算净资产(资产-负债) - **余额调整**: 支持手动调整项目余额 ### 快照功能 - **手动快照**: 创建当前财务状况的手动快照 - **时点快照**: 创建指定时点的财务快照 - **快照查询**: 查看历史快照记录 ### 自动化规则 - **周期规则**: 支持按周、月、年周期执行 - **规则管理**: 创建、编辑、启用/禁用自动化规则 - **执行日志**: 记录规则执行情况 ## 技术栈 - **后端**: Go语言 + Gin框架 - **数据库**: SQLite - **前端**: HTML5 + CSS3 + JavaScript - **前端框架**: 原生JavaScript(无框架依赖) ## 快速开始 ### 环境要求 - Go 1.16及以上版本 - 现代Web浏览器(Chrome、Firefox、Edge等) ### 安装运行 1. 克隆项目到本地: ```bash git clone https://gitee.com/Sherlock_L/ppfina.git cd pfms ``` 2. 运行程序: ```bash go run main.go ``` 3. 打开浏览器访问: `http://localhost:8080` ### 构建执行文件 ```bash # Windows go build -o pfms.exe main.go # Linux/macOS go build -o pfms main.go ``` ## 项目结构 ``` pfms/ ├── main.go # 程序入口 ├── handlers/ # HTTP处理器 │ └── handlers.go # 路由和请求处理 ├── models/ # 数据模型 │ └── models.go # 数据库操作和业务逻辑 ├── static/ # 静态资源 │ ├── css/ │ │ └── styles.css # 样式文件 │ └── js/ │ └── main.js # 前端逻辑 ├── index.html # 主页面 ├── go.mod # Go模块配置 ├── go.sum # Go依赖校验 └── pfms.db # SQLite数据库文件(运行后生成) ``` ## 使用说明 ### 初始化 首次访问时,点击"初始化数据库"按钮创建必要的数据库表。 ### 财务管理 1. 在"项目"标签页添加财务项目 2. 设置项目名称、类型(资产/负债)、类别和初始金额 3. 可随时启用/禁用项目 ### 记录交易 1. 切换到"交易"标签页 2. 选择交易类型(收入/支出/转账) 3. 填写交易详情并提交 4. 可按日期、类型等条件搜索交易 ### 查看余额 1. 切换到"余额"标签页 2. 查看资产、负债和净资产汇总 3. 点击项目可查看详细信息 ### 创建快照 1. 在"快照"标签页 2. 点击"手动快照"创建当前状态快照 3. 选择日期创建时点快照 ### 自动化规则 1. 在"自动化"标签页 2. 创建新的自动化规则 3. 设置触发条件和执行周期 ## 许可证 本项目仅供学习研究使用。