图片预览:
【桌面小组件】
【打卡日志记录】
【智能识别时间】

参看软件:https://dida365.com/features
习惯与待办提醒 APK 需求文档
1. 项目概述
1.1 项目名称
习惯与待办提醒 App
1.2 项目类型
Android APK,支持 Android 手机端使用,并支持 Android 桌面小组件。
1.3 项目目的
帮助用户记录、管理和追踪日常习惯及待办事项,通过提醒、打卡、日历、统计和桌面小组件等功能,帮助用户按计划完成任务,形成良好的生活和工作习惯。
1.4 目标用户
- 普通个人用户;
- 学生;
- 上班族;
- 需要管理生活、健康、学习或工作的用户。
1.5 第一版建设范围
第一版至少包含以下功能:
- 用户注册和登录;
- 习惯管理;
- 待办管理;
- 系统日历读取;
- 提醒功能;
- 日历查看;
- 统计图表;
- 连续打卡;
- 历史记录修改;
- 不限次数、不限时间范围的补签;
- 喝水记录;
- 排便情况记录;
- 习惯完成及未完成日志;
- Android 桌面小组件;
- 账号注销;
- 数据导出;
- 数据删除。
1.6 重要限制
本软件所有页面均不支持图片上传或图片附件功能,包括但不限于:
- 习惯打卡图片;
- 待办图片附件;
- 排便记录图片;
- 补签图片;
- 用户头像图片;
- 数据导出中的图片;
- 打卡成功页面图片。
所有备注均采用文字形式保存。
2. 用户角色
2.1 普通用户
普通用户可以:
- 注册和登录;
- 创建、编辑、删除习惯;
- 创建、编辑、删除待办;
- 设置和管理提醒;
- 进行习惯打卡;
- 记录喝水情况;
- 记录排便情况;
- 修改历史记录;
- 补签任意历史日期;
- 查看日历、统计和连续打卡;
- 读取并查看系统日历记录;
- 使用桌面小组件;
- 导出个人数据;
- 删除个人数据;
- 注销账号。
2.2 超级管理员
超级管理员用于系统管理和用户数据处理,可以:
- 查看用户账号基本信息;
- 协助处理账号注销;
- 协助用户进行数据导出;
- 删除用户数据;
- 停用异常账号;
- 查看系统运行状态;
- 管理系统基础配置;
- 查看管理员操作日志。
超级管理员默认不应查看用户的隐私记录,包括但不限于:
- 习惯记录;
- 喝水记录;
- 排便记录;
- 健康相关备注。
如因业务需要查看用户数据,应遵循最小权限原则,并记录管理员的操作日志。
3. 账号与登录
3.1 登录功能
软件需要支持用户登录。
登录方式可根据实际开发方案确定,建议支持以下任一种或多种方式:
- 手机号+验证码;
- 手机号+密码;
- 邮箱+密码;
- 第三方账号登录。
第一版建议支持手机号或邮箱登录。
3.2 注册功能
用户可以注册新账号,注册时至少需要填写:
- 手机号或邮箱;
- 登录密码,若采用密码登录;
- 验证码;
- 用户协议确认;
- 隐私政策确认。
3.3 登录状态
系统应支持:
- 记住登录状态;
- 用户主动退出登录;
- 登录过期后重新登录;
- 多设备登录;
- 更换手机后恢复数据;
- 修改密码;
- 找回密码。
3.4 账号注销
用户可以提交账号注销申请。
注销前应明确提示:
- 账号注销后是否可以恢复;
- 习惯数据是否删除;
- 待办数据是否删除;
- 历史记录是否删除;
- 系统日历数据是否删除。
系统日历数据属于外部数据,应用本身不删除系统日历内容; - 云端同步数据是否删除;
- 本地数据是否删除。
账号注销后,应按照隐私政策删除或匿名化处理用户相关数据。
4. 数据存储与同步
4.1 本地存储
应用应支持将以下数据保存到手机本地:
- 账号登录状态;
- 习惯信息;
- 待办信息;
- 提醒信息;
- 习惯打卡记录;
- 习惯未完成记录;
- 喝水记录;
- 排便记录;
- 统计数据;
- 小组件配置;
- 系统日历读取配置。
在无网络情况下,用户仍可以使用核心功能。
4.2 云端同步
应用建议支持登录账号后的云端同步,用于:
- 更换手机后恢复数据;
- 多设备之间同步;
- 防止本地数据丢失;
- 保存用户历史记录。
建议同步以下数据:
- 习惯配置;
- 待办事项;
- 习惯完成记录;
- 习惯未完成记录;
- 喝水记录;
- 排便记录;
- 提醒配置;
- 小组件配置;
- 统计数据;
- 文字备注。
系统日历数据默认属于手机系统数据,应用只读取和展示,不建议上传至应用服务器。
如果第一版云端同步实现复杂,可以暂不实现完整同步,但应:
- 保留账号体系;
- 保留本地数据导出功能;
- 设计可扩展的数据结构;
- 为后续同步接口预留方案;
- 在设置页面明确显示当前同步状态。
4.3 数据冲突处理
如果同一个账号在多个设备上修改数据,系统应考虑数据冲突处理。
建议规则:
- 普通配置以最后一次修改时间为准;
- 历史记录应避免重复创建;
- 重要操作保留操作时间;
- 同步失败时保留本地数据;
- 同步失败时提示用户;
- 不得因同步失败覆盖本地有效数据。
5. 首页
首页用于展示用户当天的整体安排,统一展示习惯、待办和系统日历记录。
5.1 习惯和待办的模块关系
习惯与待办采用两个独立功能模块。
习惯模块
用于管理需要长期、周期性重复执行的事项,例如:
- 每天喝水;
- 每天阅读;
- 每周运动;
- 记录排便;
- 早起;
- 吃药。
习惯具有以下特点:
- 有执行周期;
- 有目标;
- 有连续打卡;
- 有完成率;
- 有历史记录;
- 可以进行补签。
待办模块
用于管理一次性或周期性需要完成的任务,例如:
- 明天缴费;
- 周五提交报告;
- 购买生活用品;
- 下周预约体检。
待办具有以下特点:
- 有截止日期;
- 有截止时间;
- 有优先级;
- 有完成状态;
- 可以设置提醒;
- 可以设置重复规则。
系统日历模块
系统日历记录来自 Android 系统日历,应用只负责读取和展示。
系统日历记录与应用内部习惯、待办相互独立,不应直接转换为应用内部待办。
5.2 首页展示内容
首页至少包含:
- 当前日期;
- 今日习惯;
- 今日待办;
- 今日系统日历;
- 已完成数量;
- 未完成数量;
- 逾期待办;
- 今日喝水进度;
- 连续打卡信息;
- 快速新增入口;
- 快速打卡入口;
- 日历入口;
- 统计入口;
- 设置入口。
5.3 首页快速操作
用户可以在首页进行:
- 快速新增习惯;
- 快速新增待办;
- 快速完成待办;
- 快速取消完成;
- 快速进行习惯打卡;
- 快速增加喝水次数;
- 快速记录排便;
- 延后提醒;
- 撤销最近一次操作。
6. 习惯管理
6.1 习惯分类
系统支持对习惯进行分类,建议包含:
- 生活;
- 健康;
- 学习;
- 工作;
- 运动;
- 睡眠;
- 饮食;
- 其他。
用户可以自定义分类。
6.2 新增习惯
用户可以创建习惯,至少支持填写:
- 习惯名称;
- 习惯类型;
- 习惯描述;
- 分类;
- 图标;
- 颜色;
- 执行周期;
- 目标次数或目标数量;
- 数量单位;
- 提醒时间;
- 是否开启提醒;
- 是否允许补签;
- 文字备注。
不支持上传图片或设置图片附件。
6.3 执行周期
习惯支持以下执行周期。
每天
每天执行一次或多次。
例如:
- 每天阅读;
- 每天喝水;
- 每天记录排便。
每周
指定每周的某几天执行。
例如:
- 每周一、三、五跑步;
- 每周日整理房间。
自定义周期
支持自定义执行规则,例如:
- 每隔 N 天执行一次;
- 每月指定日期执行;
- 每周指定次数;
- 指定星期组合;
- 指定开始日期;
- 指定结束日期。
6.4 习惯类型
习惯至少支持以下三种类型:
- 普通打卡型;
- 次数记录型;
- 情况记录型。
7. 普通打卡型习惯
普通打卡型习惯适用于只需要记录完成或未完成的事项。
例如:
- 早起;
- 阅读;
- 运动;
- 洗澡;
- 整理房间;
- 每天学习。
7.1 功能要求
用户可以:
- 点击一次完成当天打卡;
- 再次点击取消当天打卡;
- 查看当天完成状态;
- 修改历史完成状态;
- 对任意历史日期进行补签;
- 标记某天未完成;
- 添加文字备注;
- 查看连续打卡天数;
- 查看完成率;
- 查看完成日志和未完成日志。
7.2 状态
普通打卡型习惯支持以下状态:
- 未开始;
- 已完成;
- 未完成;
- 补签完成;
- 非执行日。
8. 次数记录型习惯
次数记录型习惯适用于需要记录一天内完成次数或数量的习惯。
例如:
- 喝水;
- 吃药;
- 俯卧撑;
- 拉伸;
- 阅读时长。
8.1 喝水记录
系统需要支持记录喝水习惯。
用户可以:
- 创建喝水习惯;
- 设置每日目标杯数;
- 设置每次默认增加的杯数;
- 点击按钮增加一次喝水记录;
- 一天内多次点击;
- 查看当天已喝杯数;
- 查看目标完成进度;
- 撤销最近一次记录;
- 修改某次记录;
- 删除某次记录;
- 查看每次喝水时间;
- 查看每日、每周和每月喝水统计。
8.2 喝水记录示例
用户设置每日目标为 8 杯。
| 操作时间 | 增加数量 | 当日进度 |
|---|---|---|
| 09:00 | 1 杯 | 1/8 |
| 10:30 | 1 杯 | 2/8 |
| 12:00 | 2 杯 | 4/8 |
| 15:00 | 1 杯 | 5/8 |
达到 8 杯后,系统显示:
今日目标已完成
8.3 次数型习惯状态
次数型习惯支持:
- 未开始;
- 部分完成;
- 已完成;
- 未完成;
- 超额完成;
- 补签完成。
例如:
- 目标 8 杯,当前 0 杯:未开始;
- 目标 8 杯,当前 5 杯:部分完成;
- 目标 8 杯,当前 8 杯:已完成;
- 目标 8 杯,当前 10 杯:超额完成。
8.4 次数记录字段
每次记录至少包含:
- 习惯 ID;
- 执行日期;
- 记录时间;
- 增加数量;
- 数量单位;
- 记录来源;
- 是否补签;
- 文字备注;
- 创建时间;
- 修改时间。
9. 情况记录型习惯
情况记录型习惯用于记录一天内可能出现多次,且每次情况可能不同的事项。
例如:
- 排便;
- 情绪;
- 睡眠质量;
- 身体症状;
- 饮食情况。
9.1 排便记录
系统需要支持记录排便情况。
每次记录时,用户可以选择类型:
- 正常;
- 拉稀;
- 其他。
后续可扩展:
- 偏硬;
- 便秘;
- 颜色异常;
- 带血;
- 其他自定义状态。
9.2 多次记录
一天内允许创建多条排便记录。
同一天内允许出现不同情况,例如:
| 日期 | 时间 | 类型 |
|---|---|---|
| 10 月 9 日 | 08:30 | 正常 |
| 10 月 9 日 | 14:20 | 拉稀 |
| 10 月 9 日 | 20:10 | 正常 |
系统不能只使用“完成/未完成”表示排便情况,而应保存每一条记录的类型和时间。
9.3 排便统计
系统支持:
- 查看每日排便总次数;
- 查看正常次数;
- 查看拉稀次数;
- 查看其他类型次数;
- 按周统计;
- 按月统计;
- 查看时间趋势;
- 修改单条记录;
- 删除单条记录;
- 添加文字备注。
9.4 敏感数据保护
排便等健康信息属于敏感数据,系统应:
- 仅展示给当前用户;
- 不在公共页面展示;
- 不默认在桌面小组件中展示详细内容;
- 数据导出时明确包含相关记录;
- 用户删除数据时支持一并删除;
- 管理员访问需要权限控制;
- 管理员访问需要记录操作日志。
10. 习惯完成与未完成日志
系统需要完整记录习惯的执行情况,包括完成、未完成、部分完成和补签记录。
10.1 完成日志
完成日志至少包含:
- 习惯名称;
- 习惯 ID;
- 计划执行日期;
- 实际完成时间;
- 完成类型;
- 完成次数或数量;
- 是否补签;
- 是否提前完成;
- 文字备注;
- 创建时间;
- 修改时间。
不包含图片字段。
10.2 次数型完成日志
对于喝水等次数型习惯,需要保存每次完成行为。
例如:
- 09:00,喝水 1 杯;
- 10:30,喝水 1 杯;
- 12:00,喝水 2 杯。
系统应计算:
- 当日累计数量;
- 当日目标数量;
- 完成比例;
- 是否达到目标。
10.3 未完成日志
系统支持记录习惯未完成情况,至少包含:
- 习惯名称;
- 计划执行日期;
- 未完成状态;
- 未完成原因;
- 用户文字备注;
- 是否由用户主动标记;
- 是否由系统自动判定;
- 创建时间;
- 修改时间。
未完成原因可以包括:
- 忘记;
- 时间不足;
- 身体原因;
- 临时有事;
- 不想执行;
- 其他。
10.4 自动生成未完成记录
对于有明确执行日期的习惯,如果当天结束时用户未完成,系统可以根据用户设置自动生成未完成记录。
该功能应允许用户在设置中开启或关闭。
10.5 历史记录修改
用户可以:
- 修改历史完成记录;
- 修改历史未完成记录;
- 修改完成时间;
- 修改完成数量;
- 修改记录类型;
- 删除错误记录;
- 添加或修改文字备注。
11. 补签功能
11.1 补签规则
习惯补签不做任何次数和时间范围限制。
用户可以对符合条件的任意历史日期进行补签,不限制:
- 补签时间范围;
- 每月补签次数;
- 总补签次数;
- 连续补签次数;
- 补签日期间隔。
11.2 补签操作
用户可以:
- 选择任意历史日期;
- 对普通打卡型习惯进行补签;
- 对次数型习惯补充完成数量;
- 对情况记录型习惯补充具体记录;
- 修改补签时间;
- 添加文字备注;
- 修改已有补签记录;
- 删除补签记录;
- 将补签记录改回未完成状态。
11.3 补签标识
所有通过补签产生的记录必须标识为“补签”。
建议同时记录:
- 原计划日期;
- 补签操作时间;
- 补签前状态;
- 补签后状态;
- 操作类型;
- 修改时间。
11.4 补签与统计
补签记录可以参与以下统计:
- 完成次数;
- 完成率;
- 日历完成状态;
- 周统计;
- 月统计;
- 习惯完成趋势。
建议规则:
- 补签计入完成率;
- 补签计入历史完成次数;
- 补签记录应保留补签标识;
- 补签对连续打卡天数的影响需要统一计算规则;
- 补签后应重新计算相关统计数据。
11.5 补签页面
补签页面支持:
- 选择历史日期;
- 查看该日期的计划;
- 查看当日已有记录;
- 新增完成记录;
- 设置完成数量;
- 设置记录类型;
- 填写文字备注;
- 提交补签;
- 修改补签记录;
- 删除补签记录。
补签页面不支持图片上传。
12. 打卡成功页面
完成习惯打卡后,可以展示打卡成功页面。
12.1 页面内容
页面可以包含:
- 打卡成功提示;
- 习惯名称;
- 打卡日期;
- 当前连续打卡天数;
- 本周完成次数;
- 当日完成数量;
- 文字备注输入框;
- 完成按钮;
- 关闭按钮。
12.2 快速打卡
用户只进行快速打卡时,应支持:
- 点击一次直接完成;
- 不强制填写备注;
- 不需要上传图片;
- 可以直接返回首页;
- 后续可以修改文字备注。
13. 待办管理
13.1 新增待办
用户可以创建待办事项,至少包含:
- 待办标题;
- 待办描述;
- 分类;
- 标签;
- 截止日期;
- 截止时间;
- 优先级;
- 是否重复;
- 提醒时间;
- 文字备注。
不支持图片附件。
13.2 待办优先级
待办至少支持:
- 低;
- 普通;
- 高;
- 紧急。
不同优先级可以使用不同颜色或图标展示。
13.3 待办状态
待办支持以下状态:
- 未开始;
- 进行中;
- 已完成;
- 已逾期;
- 已取消;
- 已归档。
第一版可以简化为:
- 未完成;
- 已完成;
- 已逾期。
13.4 待办操作
用户可以:
- 新增待办;
- 编辑待办;
- 删除待办;
- 标记完成;
- 取消完成;
- 设置截止时间;
- 修改优先级;
- 设置提醒;
- 延后待办;
- 设置重复规则;
- 查看待办历史记录。
13.5 重复待办
待办支持:
- 每天重复;
- 每周重复;
- 每月重复;
- 按指定星期重复;
- 自定义重复规则;
- 设置结束日期;
- 设置重复次数。
14. 系统日历读取
14.1 功能说明
应用支持读取 Android 系统日历中的日程记录,并在应用内展示,便于用户统一查看:
- 系统日历;
- 应用习惯;
- 应用待办。
应用默认只读取和展示系统日历内容,不修改、不删除系统日历中的记录。
14.2 日历权限
首次使用系统日历功能时,应用需要申请系统日历读取权限。
申请权限时应明确提示:
- 应用需要读取系统日历中的日程;
- 读取目的为在应用内统一展示日程;
- 应用不会未经用户允许修改或删除系统日历记录;
- 用户可以拒绝授权;
- 用户可以在系统设置中随时关闭权限。
如果用户拒绝授权,应用仍可以正常使用:
- 习惯;
- 待办;
- 提醒;
- 统计;
- 打卡;
- 小组件。
14.3 读取内容
应用可以读取系统日历中的:
- 日程标题;
- 开始日期;
- 开始时间;
- 结束日期;
- 结束时间;
- 全天事件;
- 日程所属日历;
- 重复规则;
- 日程备注,具体以系统权限和兼容性为准。
14.4 应用内展示
系统日历记录可以展示在:
- 首页;
- 日历页面;
- 日视图;
- 周视图;
- 时间安排页面;
- 桌面小组件,可选。
建议使用不同颜色或图标区分:
| 类型 | 展示方式 |
|---|---|
| 系统日历 | 日历图标或独立颜色 |
| 习惯 | 习惯图标 |
| 待办 | 待办图标 |
| 逾期事项 | 红色标记 |
| 已完成事项 | 勾选或弱化显示 |
14.5 系统日历筛选
用户可以:
- 开启或关闭系统日历读取;
- 选择需要读取的系统日历;
- 选择展示全部日历;
- 选择展示指定日历;
- 设置是否在首页展示;
- 设置是否在应用日历中展示;
- 设置是否在桌面小组件中展示。
14.6 数据刷新
系统日历数据支持:
- 进入页面时刷新;
- 手动刷新;
- 从后台返回时刷新;
- 系统日历发生变化后刷新;
- 用户重新授权后刷新。
读取失败时,应提示用户检查系统日历权限。
14.7 系统日历与提醒
第一版默认只读取和展示系统日历记录,不为系统日历记录重复创建应用提醒。
系统日历原有提醒由系统日历应用负责。
15. 提醒功能
提醒是本软件的核心功能之一。
15.1 提醒类型
系统支持:
- 习惯提醒;
- 待办提醒;
- 待办截止时间提醒;
- 喝水提醒;
- 连续未完成提醒;
- 逾期提醒;
- 自定义提醒。
15.2 提醒规则
支持:
- 单次提醒;
- 每天重复;
- 每周重复;
- 每月重复;
- 自定义重复;
- 提前提醒;
- 多次提醒;
- 完成后自动取消提醒。
15.3 延后提醒
用户收到提醒后可以选择:
- 延后 5 分钟;
- 延后 10 分钟;
- 延后 30 分钟;
- 延后 1 小时;
- 延后到今晚;
- 自定义延后时间;
- 直接完成;
- 忽略提醒。
延后后的提醒应生成新的提醒时间,避免无限重复生成提醒。
15.4 铃声设置
提醒支持:
- 使用系统默认通知音;
- 使用应用内置铃声;
- 静音;
- 仅振动;
- 跟随系统音量;
- 单独设置习惯提醒铃声;
- 单独设置待办提醒铃声。
15.5 通知权限
首次使用提醒功能时,应引导用户开启:
- 通知权限;
- 闹钟或定时提醒权限;
- 后台运行权限;
- 电池优化白名单权限,可选;
- 自启动权限,可选。
如果用户未开启相关权限,系统应提示提醒可能无法正常触发。
16. 后台、息屏与手机重启适配
系统需要适配以下场景:
- 应用进入后台;
- 手机息屏;
- 手机锁屏;
- 应用被系统清理;
- 手机重启;
- 系统省电模式;
- 用户关闭应用;
- 网络断开;
- 通知权限关闭。
16.1 手机重启恢复
手机重启后,应用应:
- 恢复待办提醒;
- 恢复习惯提醒;
- 恢复重复提醒;
- 恢复桌面小组件;
- 避免重复触发已处理的提醒;
- 根据当前时间重新计算提醒状态。
16.2 省电限制
应用应尽量适配不同 Android 厂商的后台管理策略。
当系统限制后台运行时,应在应用内提示用户:
- 允许后台运行;
- 关闭电池优化;
- 开启自启动;
- 允许通知;
- 允许精确闹钟。
17. 日历功能
日历页面用于统一查看:
- 系统日历;
- 应用习惯;
- 应用待办;
- 完成日志;
- 未完成日志;
- 喝水记录;
- 排便记录。
17.1 日历视图
支持:
- 日视图;
- 周视图;
- 月视图;
- 查看指定日期;
- 查看当天习惯;
- 查看当天待办;
- 查看系统日历;
- 查看完成、未完成和逾期状态;
- 查看喝水记录;
- 查看排便记录;
- 进行历史修改;
- 进行补签。
17.2 日历状态标识
日期可以显示:
- 当天全部完成;
- 部分完成;
- 存在未完成;
- 存在逾期;
- 存在补签;
- 存在系统日历事件;
- 存在健康记录;
- 非执行日。
17.3 数据区分
日历页面应明显区分以下内容:
- 系统日历事件;
- 应用待办;
- 应用习惯;
- 健康记录。
系统日历事件不得直接显示为应用待办。
18. 统计与图表
系统需要提供统计页面。
18.1 习惯统计
支持统计:
- 完成次数;
- 完成率;
- 未完成次数;
- 补签次数;
- 连续打卡天数;
- 历史最长连续打卡天数;
- 每日趋势;
- 每周趋势;
- 每月趋势;
- 分类统计。
18.2 待办统计
支持统计:
- 待办总数;
- 已完成数量;
- 未完成数量;
- 逾期数量;
- 各优先级数量;
- 每日完成趋势;
- 每周完成趋势;
- 每月完成趋势。
18.3 喝水统计
支持统计:
- 每日喝水量;
- 每日目标完成率;
- 每周平均喝水量;
- 每月平均喝水量;
- 达标天数;
- 未达标天数;
- 喝水时间分布。
18.4 排便统计
支持统计:
- 每日排便次数;
- 正常次数;
- 拉稀次数;
- 其他类型次数;
- 每周趋势;
- 每月趋势;
- 类型占比。
排便统计仅用于个人记录和趋势查看,不应在应用中直接替代医疗诊断。
19. 连续打卡
系统需要支持连续打卡功能。
19.1 连续打卡规则
默认规则:
- 按习惯的实际执行周期计算;
- 每个执行日完成后,连续天数增加;
- 非执行日不打断连续记录;
- 未完成执行日会中断连续记录;
- 对次数型习惯,以达到目标数量作为完成依据;
- 补签记录应保留补签标识;
- 补签后重新计算相关统计结果。
19.2 展示内容
支持展示:
- 当前连续打卡天数;
- 历史最长连续打卡天数;
- 本周完成次数;
- 本月完成次数;
- 距离下一个连续打卡目标的天数。
20. 桌面小组件
应用需要支持 Android 桌面小组件。
第一版至少支持以下两类小组件:
- 周待办及习惯小组件;
- 习惯周进度小组件。
20.1 周待办及习惯小组件
用于展示一周内的待办事项和习惯安排。
展示内容
- 当前周;
- 周一至周日;
- 每天需要执行的习惯;
- 每天的待办事项;
- 已完成状态;
- 未完成状态;
- 逾期状态;
- 今日重点事项;
- 系统日历事件,可选;
- 今日喝水进度,可选。
快速操作
支持:
- 点击习惯快速打卡;
- 点击待办快速标记完成;
- 点击待办进入详情页;
- 点击日期进入当天列表;
- 快速添加待办;
- 点击小组件进入 App 首页。
快速添加待办
至少支持输入:
- 待办名称。
建议同时支持:
- 日期;
- 截止时间;
- 优先级;
- 提醒时间;
- 分类。
如果 Android 系统或桌面环境限制小组件内直接输入,点击“添加待办”后跳转至 App 内新增待办页面。
20.2 习惯周进度小组件
用于展示一个或多个习惯在一周内的执行情况。
展示内容
- 习惯名称;
- 习惯图标;
- 周一至周日;
- 每日完成状态;
- 每日未完成状态;
- 部分完成状态;
- 补签状态;
- 本周完成次数;
- 本周目标次数;
- 连续打卡天数。
快速操作
支持:
- 点击某一天进行打卡;
- 点击次数型习惯增加一次记录;
- 点击进入习惯详情;
- 撤销最近一次记录,可选;
- 选择需要展示的习惯;
- 添加多个习惯小组件。
20.3 次数型习惯展示
对于喝水等次数型习惯,小组件应显示:
- 当日已完成数量;
- 当日目标数量;
- 完成进度,例如
5/8 杯; - 当前状态;
- 点击后快速增加一次记录。
20.4 小组件同步
小组件与应用内数据应保持同步:
- App 内打卡后,小组件更新;
- 小组件打卡后,App 内更新;
- App 内修改习惯后,小组件更新;
- 删除、暂停或归档习惯后,小组件更新;
- 修改待办后,小组件更新;
- 手机重启后小组件恢复;
- 数据变化后尽快刷新;
- 无网络时显示本地最新数据。
20.5 隐私设置
用户可以设置是否在小组件中显示:
- 习惯名称;
- 待办标题;
- 系统日历标题;
- 喝水记录;
- 排便记录;
- 其他敏感信息。
排便等敏感健康记录默认不在桌面小组件中展示详细内容。
21. 设置功能
设置页面至少包含:
- 账号信息;
- 修改密码;
- 通知设置;
- 铃声设置;
- 振动设置;
- 默认提醒设置;
- 默认延后时间;
- 系统日历设置;
- 深色模式;
- 数据同步;
- 数据导出;
- 数据删除;
- 账号注销;
- 隐私政策;
- 用户协议;
- 关于应用;
- 当前版本号。
21.1 通知设置
支持:
- 开启或关闭习惯提醒;
- 开启或关闭待办提醒;
- 开启或关闭逾期提醒;
- 开启或关闭喝水提醒;
- 开启或关闭连续打卡提醒;
- 开启或关闭振动;
- 选择默认铃声;
- 设置免打扰时间。
21.2 系统日历设置
支持:
- 开启或关闭读取系统日历;
- 申请或重新申请系统日历权限;
- 选择需要显示的系统日历;
- 设置是否显示在首页;
- 设置是否显示在应用日历;
- 设置是否显示在桌面小组件;
- 手动刷新系统日历数据。
22. 数据导出与删除
22.1 数据导出
用户或超级管理员可以导出用户数据。
建议支持以下格式:
- JSON;
- CSV;
- Excel;
- PDF,可选。
导出内容包括:
- 用户基本信息;
- 习惯列表;
- 待办列表;
- 习惯完成日志;
- 习惯未完成日志;
- 补签记录;
- 喝水记录;
- 排便记录;
- 提醒配置;
- 统计数据;
- 文字备注。
导出内容不包含任何图片。
系统日历记录默认不作为应用数据导出,除非用户明确选择导出读取到的系统日历信息。
22.2 数据删除
用户可以删除:
- 单个习惯;
- 单个待办;
- 单条打卡记录;
- 单条喝水记录;
- 单条排便记录;
- 全部本地数据;
- 云端个人数据;
- 整个账号。
删除前需要二次确认。
对于习惯和待办,建议同时提供“归档”功能,避免用户误删历史统计数据。
22.3 系统日历数据删除规则
应用不应未经用户允许删除或修改 Android 系统日历中的事件。
关闭系统日历读取时:
- 停止读取新的系统日历数据;
- 可以清除应用缓存的系统日历数据;
- 不影响手机系统日历本身的数据;
- 不影响系统日历应用的提醒。
23. 页面清单
| 页面 | 主要功能 |
|---|---|
| 启动页 | Logo、加载状态 |
| 登录页 | 登录、注册、找回密码 |
| 首页 | 今日习惯、待办、系统日历 |
| 习惯列表页 | 查看、搜索、筛选习惯 |
| 新增习惯页 | 创建习惯和设置周期 |
| 习惯详情页 | 打卡、统计、历史记录 |
| 喝水记录页 | 喝水次数和进度 |
| 排便记录页 | 类型、次数和文字备注 |
| 待办列表页 | 全部、未完成、已完成、逾期 |
| 新增待办页 | 标题、时间、优先级、提醒 |
| 待办详情页 | 查看和编辑待办 |
| 日历页 | 系统日历、习惯、待办 |
| 补签页面 | 任意历史日期补签 |
| 统计页 | 习惯、待办、喝水、排便统计 |
| 打卡成功页 | 成功提示、文字备注 |
| 通知设置页 | 提醒、铃声、振动 |
| 系统日历设置页 | 权限、日历筛选和同步 |
| 数据管理页 | 同步、导出、删除 |
| 设置页 | 账号、主题、隐私和系统设置 |
| 关于页 | 版本、协议、联系方式 |
所有页面不包含图片上传入口。
24. 核心数据结构
24.1 用户表
| 字段 | 说明 |
|---|---|
| user_id | 用户唯一 ID |
| account | 手机号或邮箱 |
| nickname | 用户昵称 |
| status | 账号状态 |
| created_at | 创建时间 |
| updated_at | 修改时间 |
| last_login_at | 最后登录时间 |
24.2 习惯表
| 字段 | 说明 |
|---|---|
| habit_id | 习惯 ID |
| user_id | 所属用户 |
| name | 习惯名称 |
| description | 习惯描述 |
| category | 分类 |
| habit_type | 普通、次数、情况记录 |
| icon | 图标 |
| color | 颜色 |
| cycle_type | 每天、每周、自定义 |
| cycle_rule | 执行规则 |
| target_value | 目标数量 |
| unit | 单位 |
| reminder_enabled | 是否提醒 |
| status | 进行中、暂停、归档 |
| allow_makeup | 是否允许补签 |
| created_at | 创建时间 |
| updated_at | 更新时间 |
allow_makeup 如果保留,默认应为允许补签,且不设置次数和时间范围限制。
24.3 习惯执行记录表
| 字段 | 说明 |
|---|---|
| record_id | 记录 ID |
| habit_id | 习惯 ID |
| user_id | 用户 ID |
| plan_date | 计划日期 |
| record_time | 实际记录时间 |
| status | 未开始、部分完成、已完成、未完成 |
| value | 完成数量 |
| unit | 数量单位 |
| record_type | 正常、补签、提前完成等 |
| note | 文字备注 |
| is_makeup | 是否补签 |
| created_at | 创建时间 |
| updated_at | 更新时间 |
不包含图片字段。
24.4 习惯明细记录表
用于保存喝水、排便等一天内的多条记录。
| 字段 | 说明 |
|---|---|
| detail_id | 明细 ID |
| habit_id | 习惯 ID |
| user_id | 用户 ID |
| record_date | 记录日期 |
| record_time | 记录时间 |
| detail_type | 正常、拉稀等 |
| value | 数量 |
| unit | 单位 |
| note | 文字备注 |
| is_makeup | 是否补签 |
| created_at | 创建时间 |
| updated_at | 更新时间 |
24.5 待办表
| 字段 | 说明 |
|---|---|
| todo_id | 待办 ID |
| user_id | 用户 ID |
| title | 待办标题 |
| description | 待办描述 |
| category | 分类 |
| tags | 标签 |
| priority | 优先级 |
| due_date | 截止日期 |
| due_time | 截止时间 |
| repeat_rule | 重复规则 |
| reminder_enabled | 是否提醒 |
| status | 未完成、已完成、已逾期 |
| note | 文字备注 |
| created_at | 创建时间 |
| completed_at | 完成时间 |
| updated_at | 更新时间 |
不包含图片附件字段。
24.6 提醒表
| 字段 | 说明 |
|---|---|
| reminder_id | 提醒 ID |
| user_id | 用户 ID |
| target_type | 习惯或待办 |
| target_id | 目标 ID |
| reminder_time | 提醒时间 |
| repeat_rule | 重复规则 |
| sound_type | 铃声类型 |
| vibration_enabled | 是否振动 |
| snooze_minutes | 延后时间 |
| enabled | 是否启用 |
| created_at | 创建时间 |
| updated_at | 更新时间 |
24.7 系统日历记录表
如果需要缓存读取到的系统日历数据,可建立系统日历记录表。
| 字段 | 说明 |
|---|---|
| calendar_event_id | 系统日历事件 ID |
| calendar_id | 系统日历 ID |
| calendar_name | 系统日历名称 |
| title | 日程标题 |
| description | 日程描述 |
| start_time | 开始时间 |
| end_time | 结束时间 |
| all_day | 是否全天事件 |
| repeat_rule | 重复规则 |
| last_sync_time | 最后同步时间 |
系统日历记录应标识为外部数据,不得与应用内部待办混淆。
24.8 操作日志表
| 字段 | 说明 |
|---|---|
| log_id | 日志 ID |
| user_id | 用户 ID |
| operator_id | 操作人 ID |
| operation_type | 操作类型 |
| target_type | 操作对象类型 |
| target_id | 操作对象 ID |
| operation_content | 操作内容 |
| created_at | 操作时间 |
25. 非功能需求
25.1 平台要求
- 支持 Android 手机;
- 明确最低 Android 版本;
- 适配不同屏幕尺寸;
- 支持主流 Android 厂商;
- 支持桌面小组件;
- 适配横竖屏规则;
- 适配系统通知权限;
- 适配系统日历权限。
25.2 性能要求
- 首页打开速度应较快;
- 常用操作应及时响应;
- 小组件刷新不应明显卡顿;
- 本地数据查询应支持较大数量的历史记录;
- 统计页面加载时应显示加载状态;
- 网络异常时不能导致应用崩溃;
- 系统日历读取不能明显影响应用启动速度。
25.3 稳定性要求
- 提醒功能不能因应用进入后台而失效;
- 手机重启后能够恢复提醒;
- 应用被系统清理后应尽可能恢复提醒;
- 数据保存失败时提示用户;
- 同步失败时不能覆盖本地有效数据;
- 应用异常退出后数据不能丢失;
- 系统日历权限变化后应用不能崩溃。
25.4 隐私与安全
- 用户数据需要进行权限隔离;
- 密码不能明文保存;
- 通信过程应使用加密连接;
- 健康记录属于敏感数据,应加强保护;
- 管理员操作需要记录日志;
- 用户可以删除自己的数据;
- 用户可以注销账号;
- 隐私政策中需说明数据收集和使用范围;
- 应用不得未经授权修改或删除系统日历记录;
- 应用不得在未授权的情况下上传系统日历数据。
25.5 离线能力
在无网络环境下,至少支持:
- 查看已有数据;
- 新增习惯;
- 新增待办;
- 习惯打卡;
- 喝水记录;
- 排便记录;
- 查看日历;
- 查看已读取的系统日历缓存;
- 接收本地提醒;
- 使用桌面小组件。
网络恢复后再进行数据同步。
26. 第一版功能优先级
26.1 P0:必须实现
- 用户注册和登录;
- 首页;
- 习惯新增、编辑、删除;
- 每天、每周、自定义周期;
- 普通习惯打卡;
- 喝水次数记录;
- 排便类型及次数记录;
- 待办新增、编辑、删除;
- 待办截止时间;
- 待办优先级;
- 单次和重复提醒;
- 延后提醒;
- 系统铃声或应用内铃声;
- 应用日历;
- 读取系统日历记录;
- 系统日历权限管理;
- 基础统计;
- 连续打卡;
- 历史记录修改;
- 不限次数、不限时间范围的补签;
- 完成和未完成日志;
- 周待办及习惯小组件;
- 习惯周进度小组件;
- 手机重启、息屏和后台提醒适配;
- 账号注销;
- 数据导出;
- 数据删除;
- 所有页面不上传图片。
26.2 P1:建议实现
- 云端同步;
- 多设备同步;
- 自定义分类;
- 自定义提醒铃声;
- 多个提醒时间;
- 桌面小组件自定义;
- 数据导入;
- 深色模式;
- 免打扰时间;
- 待办子任务;
- 系统日历小组件展示;
- 系统日历选择性筛选。
26.3 P2:后续扩展
- 语音新增待办;
- 智能生成习惯;
- AI 统计分析;
- 成就和奖励;
- 社交分享;
- 多人协作;
- Wear OS 或其他设备同步;
- iOS 版本;
- 医疗或健康平台数据对接。
27. 关键业务规则
- 习惯和待办是两个独立模块。
- 系统日历属于外部数据,与习惯和待办独立。
- 首页、日历和统计页面可以统一展示习惯、待办和系统日历。
- 普通习惯以完成或未完成为主要状态。
- 次数型习惯支持一天内多次记录。
- 喝水习惯支持设置每日目标,并通过点击增加完成次数。
- 排便习惯支持一天内多次记录,且每次可以选择不同类型。
- 同一天可以同时记录正常、拉稀等不同排便情况。
- 习惯完成和未完成都需要记录日志。
- 补签不限制次数。
- 补签不限制历史时间范围。
- 补签记录必须标识为补签。
- 历史记录允许修改,并保存修改时间。
- 待办支持截止日期、截止时间和优先级。
- 提醒支持重复提醒和延后提醒。
- 完成习惯或待办后,相关提醒应自动取消。
- 手机重启后应恢复有效提醒。
- 小组件与 App 内数据需要保持同步。
- 系统日历只读取和展示,不未经授权修改或删除。
- 排便等敏感信息默认不在桌面小组件中展示详细内容。
- 删除数据前需要二次确认。
- 账号注销后,应按照隐私政策处理本地和云端数据。
- 所有页面不支持图片上传。
- 所有备注均使用文字形式保存。
- 第一版优先保证核心功能稳定,云端同步可根据开发复杂度分阶段实现。
28. 验收标准
28.1 登录验收
- 用户可以注册账号;
- 用户可以登录和退出;
- 登录状态可以保持;
- 错误账号或密码时有明确提示;
- 用户可以找回密码;
- 用户可以注销账号。
28.2 习惯验收
- 可以创建每天、每周和自定义周期习惯;
- 可以完成普通习惯打卡;
- 可以记录喝水数量;
- 可以同一天记录多次喝水;
- 可以记录排便类型和次数;
- 同一天可以存在正常和拉稀等不同记录;
- 可以修改、删除历史记录;
- 可以补签任意历史日期;
- 补签不限制次数;
- 补签记录有明确标识;
- 完成和未完成状态均有日志;
- 所有记录不支持图片上传。
28.3 待办验收
- 可以新增待办;
- 可以编辑和删除待办;
- 可以设置截止日期;
- 可以设置截止时间;
- 可以设置优先级;
- 可以标记完成;
- 可以取消完成;
- 可以查看逾期待办;
- 支持重复待办;
- 支持文字备注;
- 不支持图片附件。
28.4 系统日历验收
- 用户可以授权应用读取系统日历;
- 用户拒绝权限后,应用核心功能仍可正常使用;
- 应用可以读取系统日历事件;
- 应用可以展示系统日历中的标题、日期和时间;
- 全天事件可以正常展示;
- 系统日历记录与应用内部待办能够区分;
- 用户可以开启或关闭系统日历展示;
- 用户可以选择需要展示的系统日历;
- 系统日历权限关闭后,应用能够提示用户;
- 应用不会未经用户允许修改或删除系统日历内容。
28.5 提醒验收
- 单次提醒能够正常触发;
- 重复提醒能够按规则触发;
- 用户可以延后提醒;
- 用户可以设置铃声或跟随系统音;
- 手机息屏时能够提醒;
- 应用后台运行时能够提醒;
- 手机重启后能够恢复提醒;
- 完成事项后对应提醒能够取消;
- 权限关闭时能够向用户提示。
28.6 日历和统计验收
- 可以按日、周、月查看记录;
- 可以查看系统日历事件;
- 可以查看习惯和待办;
- 可以查看完成和未完成状态;
- 可以查看补签记录;
- 可以查看习惯完成率;
- 可以查看连续打卡天数;
- 可以查看喝水统计;
- 可以查看排便统计;
- 排便数据可以按类型统计。
28.7 小组件验收
- 可以添加周待办及习惯小组件;
- 可以查看本周待办和习惯;
- 可以快速添加待办;
- 可以快速完成待办;
- 可以快速打卡习惯;
- 可以添加习惯周进度小组件;
- 可以查看周一至周日的习惯进度;
- 喝水习惯可以显示类似
5/8 杯的进度; - 小组件操作后 App 内数据同步更新;
- App 内操作后小组件同步更新;
- 手机重启后小组件可以恢复;
- 敏感健康数据默认不显示详细内容。
28.8 数据验收
- 数据可以保存到本地;
- 无网络时核心功能可用;
- 支持数据导出;
- 支持数据删除;
- 数据删除前有确认提示;
- 更换手机时,若启用云同步,能够恢复数据;
- 同步失败时不会导致本地数据丢失;
- 导出数据不包含图片;
- 数据库不保存图片地址或图片文件。