README.md

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        # 依赖配置

🚀 快速开始

  1. 环境准备

    • 安装最新版 [DevEco Studio]。
  2. 克隆项目

    git clone https://github.com/your-username/CoinNote.git
    
  3. 运行项目

    • 使用 DevEco Studio 打开项目目录。
    • 等待 Sync 完成。
    • 正确连接。
    • 点击运行按钮 (Run 'entry')。

📖 使用指南

  1. 记一笔

    • 打开应用,默认进入"记账"页。
    • 选择"支出"或"收入",点击分类图标。
    • 输入金额,选择日期和支付方式。
    • (可选) 开启 "是否报销" 或 "是否人均分担"。
    • 点击 "记一笔"。
  2. 处理 人均分担/报销

    • 进入 "明细" 页。
    • 找到带有 "人均分担待收" 或 "待报销" 标签的账单。
    • 点击标签,根据提示输入金额或确认。
    • 状态更新为 "已收" 或 "已报销",金额自动更新。
  3. 查看统计

    • 点击底部 "统计" 标签。
    • 切换月份查看不同时间段的数据。
    • 点击 "支出/收入" 切换图表类型。