11 KiB
11 KiB
生日提醒小程序产品需求文档 (PRD)
1. 项目概述
1.1 项目名称
生日提醒小程序
1.2 项目背景
随着社交圈不断扩大,人们需要记住的生日和纪念日越来越多。人工记忆容易遗漏重要日期,需要一款智能提醒工具帮助用户管理所有重要的纪念日。
1.3 项目定位
一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。
1.4 核心价值
- 不遗漏任何重要日期:智能提醒系统确保用户不会错过亲朋好友的生日
- 支持农历生日:满足中国传统习惯
- 灵活定制:支持多种纪念日类型,自定义提醒时间
- 简单高效:极简界面,快速添加和查看
2. 用户画像
2.1 目标用户
- 年龄: 20-45岁
- 特征: 重视人际关系,有较多社交圈子
- 痛点:
- 不记得朋友的生日日期
- 农历生日难以记忆和转换
- 错过重要的生日祝福
- 无法提前准备礼物
2.2 使用场景
- 添加新朋友后,立即录入其生日信息
- 提前收到生日提醒,有时间准备礼物或祝福
- 查看近期即将到来的纪念日
- 回顾和添加各种纪念日(结婚、恋爱、重要事件等)
3. 功能需求
3.1 核心功能(MVP)
3.1.1 人员信息管理
功能描述: 用户可以添加、编辑、删除人员信息
详细信息:
-
人员信息字段:
- 姓名(必填)
- 昵称(可选)
- 备注(可选)
- 头像(可选,可使用默认头像)
-
操作功能:
- 新增人员
- 编辑人员信息
- 删除人员(需二次确认)
- 搜索人员(按姓名搜索)
页面设计:
- 人员列表页:卡片式布局,显示头像、姓名、最新生日信息
- 人员详情页:显示完整信息及所有关联的纪念日
3.1.2 纪念日管理
功能描述: 为人员添加生日或其他纪念日
纪念日信息字段:
-
纪念日类型(必填):
- 公历生日
- 农历生日
- 结婚纪念日
- 订婚纪念日
- 其他纪念日(自定义名称)
-
具体日期(必填)
- 公历:年-月-日
- 农历:年-月-日(自动转换为公历计算下次提醒日期)
-
重要程度(可选):
- 非常重要(红色标记)
- 重要(橙色标记)
- 一般(灰色标记)
-
是否提醒(必填):
- 开启提醒/关闭提醒
-
提前提醒天数(必填,需开启提醒时):
- 提前3天
- 提前7天
- 提前14天
- 提前30天
- 自定义天数(1-365天)
操作功能:
- 添加纪念日(关联到指定人员)
- 编辑纪念日信息
- 删除纪念日(需二次确认)
- 标记已完成(当天查看后自动标记)
3.1.3 提醒功能
功能描述: 智能提醒系统主动通知即将到来的纪念日
提醒机制:
- 推送提醒: 在纪念日到达设定提前天数时推送通知
- 每日提醒: 每天早上8:00推送当天即将到来的纪念日
- 提醒内容:
- 人员姓名和头像
- 纪念日类型
- 距离具体日期的天数
- 上次备注信息
提醒设置:
- 全局提醒开关
- 单个纪念日提醒开关
- 提醒时间设置(默认早上8:00)
- 提醒频率设置(仅提前提醒/每日提醒)
3.1.4 日历视图
功能描述: 以日历形式展示所有纪念日
视图模式:
- 月视图: 显示当月所有纪念日,按日期排序
- 列表视图: 按时间顺序显示即将到来的纪念日(最近1-3个月)
- 筛选功能: 按纪念日类型、重要程度筛选
交互功能:
- 点击日期查看当天所有纪念日
- 左右滑动切换月份
- 回到今天按钮
3.2 高级功能(后续迭代)
3.2.1 统计功能
- 年度统计:查看全年纪念日概览
- 人员维度:查看某人所有纪念日
- 类型统计:各类纪念日占比
3.2.2 提醒历史
- 查看历史提醒记录
- 查看已完成的纪念日记录
- 祝福记录(记录了哪些祝福内容)
3.2.3 导入导出
- 支持批量导入人员信息(Excel/CSV)
- 导出数据备份
- 导入数据恢复
3.2.4 社交功能
- 生日祝福模板
- 礼物建议
- 分享功能(分享生日提醒给家人朋友)
4. 技术需求
4.1 平台选择
建议: 微信小程序(初始版本)
- 优势:
- 用户基数大,无需下载App
- 开发成本低
- 支持推送通知
- 跨平台兼容
- 备选: 也可以考虑开发移动App(React Native/Flutter)
4.2 技术架构
4.2.1 前端技术栈
- 框架: 微信小程序原生框架 / Taro / uni-app
- UI组件: ColorUI / Vant Weapp
- 状态管理: MobX / Redux
4.2.2 后端技术栈(如需服务端)
-
方案一: 纯客户端存储(轻量级,无需后端)
- 使用微信小程序的本地存储(localStorage)
- 最多存储10MB数据
-
方案二: 云端存储(数据备份和同步)
- Node.js + Express
- 数据库: MySQL / MongoDB
- 云服务器: 腾讯云/阿里云
4.2.3 农历计算
- 核心功能: 农历转公历、公历转农历
- 技术方案: 使用现成的农历计算库
- JavaScript:
lunar-javascript - Python:
lunarcalendar - 小程序:
@lunar-js/calendar
- JavaScript:
4.3 数据模型设计
4.3.1 人员表 (Person)
{
id: String, // 唯一标识
name: String, // 姓名(必填)
nickname: String, // 昵称
avatar: String, // 头像URL
remark: String, // 备注
createTime: Date, // 创建时间
updateTime: Date // 更新时间
}
4.3.2 纪念日表 (Anniversary)
{
id: String, // 唯一标识
personId: String, // 关联人员ID
type: String, // 纪念日类型
customTypeName: String, // 自定义类型名称(当type为"其他"时)
// 日期信息
isLunar: Boolean, // 是否农历(true=农历,false=公历)
lunarYear: Number, // 农历年份
lunarMonth: Number, // 农历月份
lunarDay: Number, // 农历日期
solarYear: Number, // 公历年份
solarMonth: Number, // 公历月份
solarDay: Number, // 公历日期
// 提醒设置
remindEnabled: Boolean, // 是否开启提醒
remindDays: Number, // 提前提醒天数
lastRemindTime: Date, // 上次提醒时间
// 其他信息
importance: String, // 重要程度
remark: String, // 备注
createTime: Date, // 创建时间
updateTime: Date // 更新时间
}
4.3.3 提醒记录表 (RemindHistory)
{
id: String, // 唯一标识
anniversaryId: String, // 关联纪念日ID
remindDate: Date, // 提醒日期
remindType: String, // 提醒类型(提前提醒/当日提醒)
isRead: Boolean, // 是否已读
createTime: Date // 创建时间
}
5. 非功能需求
5.1 性能需求
- 加载速度: 页面加载时间 < 1秒
- 操作响应: 用户操作响应时间 < 300ms
- 数据存储: 支持存储至少1000条纪念日数据
5.2 可用性需求
- 界面设计: 简洁美观,符合主流UI设计规范
- 操作流程: 核心功能不超过3步完成
- 错误提示: 友好的错误提示和处理
5.3 可靠性需求
- 数据安全: 本地数据加密存储
- 数据备份: 支持导出备份,防止数据丢失
- 异常处理: 完善的异常捕获和处理机制
5.4 兼容性需求
- 系统版本: 支持微信小程序最低版本要求
- 机型适配: 适配主流手机屏幕尺寸
6. 交互流程
6.1 核心流程图
流程1: 添加新人员及纪念日
首页 → 点击"+"按钮 → 选择"添加人员" → 填写人员信息 → 保存 → 自动进入添加纪念日页面 → 选择纪念日类型 → 选择日期(公历/农历) → 设置提醒 → 保存 → 返回列表
流程2: 查看即将到来的纪念日
首页 → 查看日历视图 / 列表视图 → 点击纪念日卡片 → 查看详情 → 可编辑/删除
流程3: 接收提醒
系统定时检查 → 发现即将到来的纪念日 → 发送推送通知 → 用户点击通知 → 跳转到详情页 → 查看信息
6.2 页面结构
├── 首页(人员列表)
│ ├── 顶部搜索栏
│ ├── 筛选按钮(按类型/时间)
│ ├── 人员卡片列表
│ └── 底部"+"添加按钮
│
├── 人员详情页
│ ├── 人员基本信息
│ ├── 纪念日列表
│ └── 操作按钮(编辑/删除)
│
├── 添加/编辑人员页
│ ├── 姓名输入
│ ├── 昵称输入
│ ├── 头像选择
│ └── 备注输入
│
├── 添加/编辑纪念日页
│ ├── 关联人员选择
│ ├── 纪念日类型选择
│ ├── 日期选择器(公历/农历切换)
│ ├── 重要程度选择
│ ├── 提醒开关
│ └── 提前天数设置
│
├── 日历视图页
│ ├── 日历头部
│ ├── 日历网格
│ ├── 当日纪念日列表
│ └── 筛选选项
│
└── 设置页
├── 提醒设置
├── 数据备份
├── 关于
└── 使用帮助
7. 开发计划
7.1 第一阶段(MVP - 2周)
- 项目初始化
- 基础UI搭建
- 人员信息管理(增删改查)
- 纪念日管理(增删改查)
- 农历日期计算
- 本地数据存储
- 基本的列表和详情展示
7.2 第二阶段(核心功能 - 2周)
- 日历视图实现
- 提醒功能实现
- 数据筛选和搜索
- 导入导出功能
7.3 第三阶段(优化迭代 - 1周)
- UI美化
- 性能优化
- 用户体验优化
- 测试和Bug修复
8. 风险评估
8.1 技术风险
- 农历计算准确性: 使用成熟的农历计算库
- 数据存储限制: 小程序本地存储10MB上限
- 提醒功能实现: 小程序后台限制
8.2 解决方案
- 采用成熟的农历计算库
- 定期提示用户导出数据备份
- 使用云开发或后端服务支持提醒功能
9. 附录
9.1 参考资源
- 微信小程序官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/
- 农历计算库: https://github.com/lunar-js/lunar-calendar
9.2 成功指标
- 用户留存率: 30日留存 > 40%
- 活跃度: 每日打开率 > 50%
- 功能使用: 80%用户成功添加至少5条纪念日
10. 总结
这是一款专注于用户核心需求、功能简洁实用的纪念日管理小程序。通过支持农历生日、灵活的提醒设置和简单的操作流程,为用户提供贴心的纪念日管理服务。
核心亮点: ✅ 支持农历生日(中国特色) ✅ 个性化提醒设置 ✅ 多种纪念日类型 ✅ 简洁美观的界面 ✅ 无需服务器(轻量级)
文档版本: v1.0
创建日期: 2024年
最后更新: 2024年