Prompt v1.0
Cent 记账应用 – 开发 Prompt v1.0
一、项目定位
-
名称:Cent(概念性记账工具)
-
核心理念:用标签系统完全替代传统资产管理,提供高度灵活的记账体验;数据由用户通过 GitHub 仓库自托管,支持多端(手机 + 电脑)使用。
-
目标用户:喜欢自定义分类、关注预算控制、注重数据隐私和长期可维护性的个人用户。
二、核心功能需求
1. 记账基础
-
记录支出与收入,字段包括:金额、类型、日期、备注、标签(可多选)、币种。
-
支持按标签自动切换偏好币种(如选中“海外银行卡C”时,记账金额币种自动变为 USD)。
-
支持转账场景:通过记录两笔带“不计收支”标签的交易实现,不干扰净收支统计。
2. 标签系统(替代资产管理)
-
平铺标签 + 标签组:
-
标签组可定义:是否单选、是否必选、默认标签、显示顺序。
-
例如:“资产”标签组(单选、必选,默认“银行卡A”)、“消费类别”标签组(多选、非必选)。
-
-
通过筛选器实现资产管理:
-
用户可创建筛选器(如“银行卡A”),条件为
tags 包含 银行卡A,即可统计该资产的收支与结余。 -
筛选器支持设置币种、排除标签(如“不计收支”)。
-
-
多币种支持:每笔交易记录原始币种和金额;统计时可选择按历史汇率换算或直接显示原币种。
3. 预算模块
-
总预算 + 子预算(按分类标签):
-
可设置预算周期(月/年/自定义)、总金额、子预算(如餐饮1500、娱乐800)。
-
支持排除标签(“逃生舱”),如“意外支出”不参与预算计算。
-
-
首页进度条:
-
灰色背景;黄色 = 今日支出占比;绿色/红色 = 截止今日累计支出占比(超支变红);黑色竖线 = 理论时间进度对应的支出位置。
-
理论进度 = (已过天数 / 周期总天数) × 总预算。
-
-
历史达成视图:
- 每个预算周期显示两个圆点:总预算状态(绿=未超,红=超)、子预算状态(绿=所有子项未超,红=任一子项超)。
4. 页面结构(五个核心页面)
| 页面 | 功能描述 |
|---|---|
| 首页(账单流) | 顶部今日支出快捷板块;预算卡片(进度条+预警);按时间倒序的账单列表。 |
| 记账页 | 大号加号按钮进入;记录支出/收入;标签分组选择器;金额、日期、备注、币种。 |
| 搜索页 | 多条件筛选:标签、时间范围、金额区间、类型;支持保存为自定义筛选器。 |
| 统计页 | 年趋势图(月柱状)、月详情图(日折线+预算线)、标签占比饼图;预算历史圆点列表。 |
| 设置页 | GitHub 配置、标签/标签组管理、预算管理、筛选器管理、导入/导出、多币种偏好、主题等。 |
5. 跨设备与数据同步
-
后端统一处理 Git 操作(JGit),前端通过 REST API 调用。
-
数据存储在 GitHub 仓库,结构如下:
/data/transactions/2026-01.json # 按月分片
/metadata/
tags.json # 标签定义
tagGroups.json # 标签组
budgets.json # 预算定义
filters.json # 保存的筛选器
/config/
user-preferences.json
-
每次数据变更(增/删/改)自动 commit + push,冲突时采用 pull + 按
updatedAt合并策略。 -
手机可通过局域网访问电脑上运行的后端,或部署至公网(需加认证)。
三、技术选型
-
后端:Java + Spring Boot + JGit + Jackson (JSON)
-
数据存储:本地 Git 仓库缓存 + GitHub 远程
-
前端:响应式 Web UI(Vue 3 + Vant 或纯 HTML/CSS/JS),适配手机与电脑
-
统计图表:ECharts 或 Chart.js
-
部署:电脑本地运行(推荐初期)或免费云服务(Railway/Vercel + 后端独立)
四、关键业务逻辑要点
1. 标签组规则校验(后端)
- 记账时校验:若标签组
required=true,则交易中必须包含该组的至少一个标签;若singleSelect=true,则交易中不能包含该组的两个及以上标签。
2. 预算进度计算
-
实际支出 = 周期内所有支出交易金额之和(排除
excludedTags中的标签)。 -
理论支出 = 总预算 × (已过天数 / 总天数)。
-
今日支出单独提取,用于进度条黄色部分。
3. 统计优化
- 对年度/月度聚合结果可生成摘要文件(如
summary/year-2026.json),记账时增量更新,避免每次全量扫描。
4. 标签名称变更的迁移
- 用户修改标签名时,需遍历所有交易文件,将旧名替换为新名,并提交一次变更。
五、开发优先级建议(迭代顺序)
-
基础记账 + Git 同步:增删改查交易,按月 JSON 存储,支持标签(无标签组)。
-
标签组与标签管理:实现标签组规则,记账时按分组选择。
-
统计图表与搜索:年/月/日统计,多条件搜索。
-
预算模块:总预算 + 子预算,首页进度条,历史圆点。
-
设置页 & 高级功能:GitHub 配置、导入导出、多币种、筛选器保存。
-
多设备测试 & 体验优化:缓存、冲突处理、PWA 支持。
六、注意事项
-
安全性:GitHub Token 不能硬编码,使用环境变量。
-
移动端适配:所有页面需支持触摸操作,输入框调出合适的虚拟键盘。
-
记账效率:提供快捷选项(如长按“+”复制上一笔,常用标签置顶)。
-
预算“逃生舱”:需确保排除标签功能在统计和预算中一致生效。
-
离线支持:后端本地缓存仓库后,即使无网络也可查看近期数据,记账操作暂存队列,待网络恢复后 push。