# 个人财务管理系统 **Repository Path**: dm_team/Personal-Finance-Management-System ## Basic Information - **Project Name**: 个人财务管理系统 - **Description**: 个人财务管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-09 - **Last Updated**: 2026-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 个人财务管理系统 个人财务管理系统面向个人记账、预算控制、账户管理、储蓄目标推进和月度复盘场景,提供可运行、可演示、可扩展的前后端分离项目。 本项目按业务系统常见理解处理为“系统内可维护的业务分类/类别字典”,不是代码里的 `class` 关键字。 系统已新增分类字典能力: - 新增 `category_items` 分类字典表。 - 预置 21 个分类分组、193 个分类项。 - 管理员可在前端“分类管理”页面新增、编辑、停用、删除分类。 - 收入分类、支出分类、储蓄分类、账户类型、账户状态、预算状态、目标状态、目标优先级、流水状态、来源渠道、复盘标签等都已接入分类字典。 - 后端保留默认值兜底,避免分类数据异常时影响原功能运行。 ## 功能模块 - 财务驾驶舱:展示本月收入、支出、结余、目标完成率、现金流趋势和支出分布。 - 现金流工作台:新增收入、支出、储蓄转入流水,支持确认记账和撤销。 - 预算控制:按月份和支出分类管理预算,展示执行率、预警和超支状态。 - 储蓄目标:维护旅行、换新、应急金等目标,支持转入储蓄并更新目标进度。 - 账户总览:查看银行卡、支付宝、微信、现金、信用账户等账户余额和风险状态。 - 月度复盘:按月份汇总收入、支出、预算和目标推进情况。 - 分类管理:维护系统业务分类,启用后进入对应业务下拉框。 - 用户总览:管理员维护演示账号、角色和启停状态。 ## 技术栈 - 前端:React 18、Vite 6、Ant Design 5、Recharts、Axios - 后端:Node.js 18+、Express 4、better-sqlite3 - 数据库:SQLite 3,随 `better-sqlite3` 以本地文件形式使用,不需要单独安装数据库服务 ## 默认端口 - 后端接口:`http://localhost:9017` - 前端页面:`http://localhost:5179` 运行到这里后,浏览器会打开登录页。可直接使用下面账号登录: - 管理员: `finance_admin` / `Pass@123` - 普通用户: `finance_user` / `Pass@123` 建议第一次演示或检查时先使用管理员账号,因为管理员可以看到类别管理、用户管理和完整业务功能。 ## 演示账号 - 管理员:`finance_admin` / `Pass@123` - 普通用户:`finance_user` / `Pass@123` ## 新手运行步骤 ### 1. 安装 Node.js 推荐安装 Node.js 18 或更高版本。安装后打开命令行检查: ```bash node --version npm --version ``` 如果能看到版本号,说明安装成功。 ### 2. 启动后端 进入后端目录: ```bash cd D:\Ten-Projects\07-personal-finance-management-system\backend npm install npm run start ``` 看到后端监听 `9017` 端口后,表示后端启动成功。首次启动会生成数据库文件: ```text backend\data\personal-finance-management-system.db ``` 开发时也可以使用自动重启模式: ```bash npm run dev ``` ### 3. 启动前端 重新打开一个命令行窗口: ```bash cd D:\Ten-Projects\07-personal-finance-management-system\frontend npm install npm run dev ``` 浏览器访问: ```text http://localhost:5179 ``` ### 4. 恢复初始演示数据 关闭后端服务,删除数据库文件: ```text backend\data\personal-finance-management-system.db ``` 重新启动后端,系统会重新执行 `database/init.sql` 和 `database/sample_data.sql`,并重新写入 193 个分类项。 ## 上传 Gitee 建议 建议上传: - `backend/src/` - `backend/package.json` - `backend/package-lock.json` - `backend/project-config.json` - `frontend/src/` - `frontend/index.html` - `frontend/package.json` - `frontend/package-lock.json` - `frontend/vite.config.mjs` - `database/` - `docs/` - `README.md` 不建议上传: - `backend/node_modules/` - `frontend/node_modules/` - `frontend/dist/` - `backend/data/*.db` 这些内容可以通过安装依赖、构建或首次启动自动生成。 ## 验证命令 后端: ```bash cd backend node --test test/categoryService.test.js node --check src/server.js node --check src/categoryService.js node --check src/categorySeed.js ``` 前端: ```bash cd frontend npm run build ``` ## 文档目录 - `docs/01_项目简介.md` - `docs/02_需求分析.md` - `docs/03_系统设计.md` - `docs/04_数据库设计.md` - `docs/05_接口文档.md` - `docs/06_部署说明.md` - `docs/07_使用手册.md` - `docs/08_测试说明.md` - `docs/09_论文写作参考.md` - `docs/10_答辩演示说明.md`