CoinNote 🪙
CoinNote 是一款基于 ArkTS 开发的轻量级、功能丰富的个人记账应用。它不仅支持基础的收支记录,还针对现代生活场景提供了 人均分担制结算 和 报销管理 等高级功能,帮助用户更精准地掌控个人财务状况。
✨ 主要功能
1. 📝 全能记账 (Bookkeeping)
- 双向记录:支持 支出 (Expense) 和 收入 (Income) 两种账单类型切换。
- 丰富分类:内置餐饮、交通、购物、娱乐、工资、奖金等多种常用分类,满足日常需求。
- 多维标签:支持多选标签(如:早餐、地铁、超市),辅助记录消费场景。
- 完整信息:可记录金额、日期(支持补录)、支付方式(微信/支付宝/银行卡/现金)、备注等。
- 灵活编辑:支持对已生成的账单进行 修改 和 删除 操作。
2. 🧠 特色财务逻辑 (Smart Logic)
针对复杂的现代社交和工作场景,提供智能的金额处理逻辑:
- 人均分担制管理 (Go Dutch):
- 标记:记账时开启 "是否人均分担"。
- 结算:收到朋友转账后,点击 "人均分担待收" -> 输入收到金额。
- 自动扣减:系统会自动从原账单中扣除已收金额,仅保留个人实际承担的份额。
- 撤销:支持撤销收款,金额自动回滚。
- 报销管理 (Reimbursement):
- 标记:记账时开启 "是否报销"。
- 核销:公司报销到账后,点击 "待报销" -> 确认。
- 自动归零:系统会将该笔支出金额置为 0,不计入个人月度总支出。
- 撤销:支持撤销报销状态,恢复原始支出金额。
3. 📊 数据可视化与统计 (Charts & Stats)
- 月度仪表盘:首页实时显示当月 总收入、总支出 及 结余。
- 收支构成:通过动态 饼图 (Pie Chart) 直观展示各分类(如餐饮、房租)的占比,支持点击查看分类详情。
- 每日趋势:通过动态 柱状图 (Bar Chart) 展示每日收支波动情况,快速定位高消费日期。
- 智能预算:
- 支持设置月度总预算。
- 可视化进度条:直观展示预算使用比例。
- 超支预警:当支出超过预算时,进度条变色提醒。
4. 📅 高效视图与交互 (Views & Interactions)
- 明细列表:按日期分组展示账单,时间流清晰明了。
- 日历模式:
- 月度概览:提供直观的月视图日历,一眼掌握当月哪天有记账行为。
- 每日查账:点击日历上的具体日期,下方列表即刻刷新,精准显示当天的所有消费与收入记录,方便核对单日账目。
- 全局搜索:支持同时搜索 分类名称、备注内容、金额数字 或 标签,快速找回历史账单。
- 便捷操作:
- 侧滑删除:列表项向左滑动,即可快速删除账单。
- 点击操作:点击账单项唤起操作菜单,进行编辑或删除。
5. 🔒 隐私与安全 (Privacy & Security)
- 隐私保护:内置 应用密码锁 功能,启动应用时需验证密码,保护财务隐私。
- 本地存储:使用本地数据库存储。
- 数据安全:所有数据仅保存在本机,无云端上传,无数据泄露风险。
- 数据管理:支持一键清空所有数据(提供二次确认防止误删)。
🛠️ 技术栈
- 操作系统: OpenHarmony
- 开发语言: ArkTS (基于 TypeScript)
- UI 框架: ArkUI (声明式 UI 开发框架)
- 数据存储: RelationalStore (RDB / SQLite)
- 开发工具: DevEco Studio
📂 项目结构
CoinNote/
├── AppScope/ # 全局应用配置
├── entry/
│ └── src/
│ └── main/
│ ├── ets/
│ │ ├── db/ # 数据库操作层 (BillRdb.ets)
│ │ ├── model/ # 数据模型定义 (BillItem.ets)
│ │ ├── pages/ # 用户界面
│ │ │ ├── Index.ets # 首页 (包含记账、明细、统计、个人中心)
│ │ │ └── login/ # 登录/设置页
│ │ └── entryability/ # 应用入口能力
│ └── resources/ # 静态资源
└── oh-package.json5 # 依赖配置
🚀 快速开始
-
环境准备:
- 安装最新版 [DevEco Studio]。
-
克隆项目:
git clone https://github.com/your-username/CoinNote.git -
运行项目:
- 使用 DevEco Studio 打开项目目录。
- 等待 Sync 完成。
- 正确连接。
- 点击运行按钮 (Run 'entry')。
📖 使用指南
-
记一笔:
- 打开应用,默认进入"记账"页。
- 选择"支出"或"收入",点击分类图标。
- 输入金额,选择日期和支付方式。
- (可选) 开启 "是否报销" 或 "是否人均分担"。
- 点击 "记一笔"。
-
处理 人均分担/报销:
- 进入 "明细" 页。
- 找到带有 "人均分担待收" 或 "待报销" 标签的账单。
- 点击标签,根据提示输入金额或确认。
- 状态更新为 "已收" 或 "已报销",金额自动更新。
-
查看统计:
- 点击底部 "统计" 标签。
- 切换月份查看不同时间段的数据。
- 点击 "支出/收入" 切换图表类型。