人情随手记 - 温暖的关系备忘录

2026-01-05 App
人情随手记 - 温暖的关系备忘录
核心理念: 人情往来是中国传统文化的重要组成部分。人情随手记帮你妥善记录与亲友间的礼物往来、人情互助与珍贵承诺,让每一次温暖的互动都清晰留存,方便随时翻阅与回忆。数据完全存储在本地,隐私安全有保障。

功能模块概览

人情随手记是一款跨平台的人情礼金管理应用,支持 H5、微信小程序和 App 三个平台,提供完整的人情往来记录和管理功能。

功能模块 核心能力 应用场景
🎁 礼金记录 收礼/送礼记录、金额统计、事件分类 婚礼、生日、节日、乔迁等场合
🤝 人情互助 帮忙记录、互助往来、关系维护 搬家帮忙、介绍工作、照顾老人等
💬 承诺管理 承诺记录、提醒功能、完成状态 答应的事情、待办事项、约定事宜
👥 联系人管理 联系人信息、关系分类、快速检索 亲友信息、关系网络、联系方式
📊 数据统计 收支统计、往来分析、关系图谱 年度总结、人情分析、关系维护
🔒 数据备份 AES 加密备份、跨平台恢复 数据安全、换机迁移、多端同步

系统架构

graph TD A[uni-app 前端] --> B[礼金记录模块] A --> C[人情互助模块] A --> D[承诺管理模块] A --> E[联系人管理] A --> F[数据统计] A --> G[备份恢复] B --> H[存储管理层] C --> H D --> H E --> H F --> H G --> H H --> I[平台适配层] I --> J[H5 平台
IndexedDB] I --> K[微信小程序
文件系统] I --> L[App 平台
plus.io] J --> M[降级方案
localStorage] K --> N[降级方案
wx.storage] G --> O[AES 加密服务] O --> P[备份导出] O --> Q[备份导入] style A fill:#e1f5fe style H fill:#f3e5f5 style I fill:#fff3e0 style O fill:#ffe0b2 style J fill:#c8e6c9 style K fill:#c8e6c9 style L fill:#c8e6c9

技术架构

技术层次 技术选型 实现细节
前端框架 uni-app + Vue 3 一套代码,多端运行(H5、小程序、App)
UI 组件 uView Plus + uni-ui 丰富的 UI 组件库,提升开发效率
持久化存储 自研跨平台存储系统 H5 用 IndexedDB,小程序用文件系统,App 用 plus.io
数据加密 AES-256 加密 crypto-js 库,保护用户隐私数据
自动降级 多层降级策略 持久化存储不可用时自动降级到缓存存储
测试框架 Jest + fast-check 单元测试 + 属性测试,保证代码质量

核心功能

详细介绍各功能模块的具体能力和特点:

🎁 礼金记录

  • 收礼/送礼:记录收到或送出的礼金,包括金额、日期、事件类型
  • 事件分类:婚礼、生日、满月、乔迁、节日等多种事件类型
  • 金额统计:自动统计收支总额,一目了然
  • 关联联系人:每条记录关联具体联系人,方便查询
  • 备注说明:支持添加详细备注,记录特殊情况

🤝 人情互助

  • 帮忙记录:记录帮别人或别人帮自己的事情
  • 互助类型:搬家、介绍工作、照顾老人、借物品等
  • 往来追踪:清楚记录人情往来,避免遗忘
  • 关系维护:通过记录维护良好的人际关系

💬 承诺管理

  • 承诺记录:记录答应别人或别人答应自己的事情
  • 提醒功能:设置提醒时间,避免忘记承诺
  • 完成状态:标记承诺是否已完成
  • 优先级:设置承诺的重要程度

👥 联系人管理

  • 联系人信息:姓名、电话、关系、地址等基本信息
  • 关系分类:家人、亲戚、朋友、同事、同学等
  • 快速检索:支持按姓名、关系、拼音搜索
  • 往来历史:查看与该联系人的所有往来记录

📊 数据统计

  • 收支统计:按时间、事件类型统计收支情况
  • 往来分析:分析与各联系人的往来频率和金额
  • 图表展示:直观的图表展示数据趋势
  • 年度总结:生成年度人情往来报告

🔒 数据备份

  • AES 加密:使用 AES-256 加密算法保护数据
  • 密码保护:用户设置备份密码,确保数据安全
  • 跨平台恢复:备份文件可在不同平台间导入导出
  • 备份码:微信小程序支持备份码格式,方便分享

技术亮点

  • 跨平台存储系统:自研的跨平台持久化存储方案,根据平台特性选择最优存储方式(H5 用 IndexedDB,小程序用文件系统,App 用 plus.io)
  • 自动降级机制:当持久化存储不可用时,自动降级到缓存存储,保证应用可用性
  • 数据自动迁移:首次启动时自动检测并迁移旧的缓存数据到持久化存储
  • 内存缓存优化:使用内存缓存提升数据读取性能,减少磁盘 I/O
  • 原子写入:采用临时文件 + 重命名的方式保证数据写入的原子性,防止数据损坏
  • AES 加密备份:使用 AES-256 加密算法保护备份数据,用户密码不会被存储
  • 完整的测试覆盖:单元测试 + 属性测试(Property-Based Testing),保证代码质量
  • 本地优先:所有数据存储在本地,不依赖服务器,隐私安全有保障

存储系统设计

平台适配策略

平台 主存储方案 降级方案 特点
H5 IndexedDB localStorage 大容量、结构化存储、异步操作
微信小程序 文件系统(wx.env.USER_DATA_PATH) wx.storage 持久化、不受缓存清理影响
App plus.io 文件系统 - 原生文件系统、高性能

数据安全保障

  • 原子写入:先写入临时文件,成功后再重命名,避免写入过程中断导致数据损坏
  • 数据校验:读取数据时进行 JSON 格式校验,发现损坏自动恢复
  • 加密备份:AES-256 加密,密码不存储,只有用户知道
  • 自动迁移:首次启动自动迁移旧数据,迁移成功后清理旧数据

开发心得

这个项目最大的挑战是跨平台持久化存储的实现。不同平台的存储 API 差异很大,H5 有 IndexedDB 和 localStorage,微信小程序有文件系统和 wx.storage,App 有 plus.io。如何设计一套统一的 API,让上层业务代码无感知地在不同平台运行,是核心难点。

最终采用了适配器模式,为每个平台实现独立的存储适配器,通过统一的 StorageManager 对外提供服务。同时实现了自动降级机制,当持久化存储不可用时(比如 IndexedDB 被禁用),自动降级到缓存存储,保证应用可用性。

数据安全方面,采用了原子写入策略(临时文件 + 重命名)和AES 加密备份,确保数据不会因为写入中断而损坏,备份数据也不会被窃取。同时实现了自动数据迁移,首次启动时自动将旧的缓存数据迁移到持久化存储,用户无感知。

测试方面,除了常规的单元测试,还引入了属性测试(Property-Based Testing),使用 fast-check 库生成大量随机测试用例,发现了很多边界情况的 bug,大大提升了代码质量。

下一步计划

近期规划

  • 云端同步:可选的云端同步功能,支持多设备数据同步
  • 智能提醒:根据历史记录智能提醒即将到来的重要日期
  • 关系图谱:可视化展示人际关系网络
  • 语音输入:支持语音快速记录
  • 照片附件:支持为记录添加照片

长期愿景

  • AI 助手:基于历史数据的智能建议和分析
  • 社交功能:与好友分享特定记录(可选)
  • 数据导出:支持导出为 Excel、PDF 等格式
  • 多语言支持:支持英文、繁体中文等语言
  • 主题定制:支持自定义主题颜色和样式

标签