Files
wxserver/PRD.md
T
2025-10-26 19:29:30 +08:00

11 KiB
Raw Blame History

生日提醒小程序产品需求文档 (PRD)

1. 项目概述

1.1 项目名称

生日提醒小程序

1.2 项目背景

随着社交圈不断扩大,人们需要记住的生日和纪念日越来越多。人工记忆容易遗漏重要日期,需要一款智能提醒工具帮助用户管理所有重要的纪念日。

1.3 项目定位

一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。

1.4 核心价值

  • 不遗漏任何重要日期:智能提醒系统确保用户不会错过亲朋好友的生日
  • 支持农历生日:满足中国传统习惯
  • 灵活定制:支持多种纪念日类型,自定义提醒时间
  • 简单高效:极简界面,快速添加和查看

2. 用户画像

2.1 目标用户

  • 年龄: 20-45岁
  • 特征: 重视人际关系,有较多社交圈子
  • 痛点:
    • 不记得朋友的生日日期
    • 农历生日难以记忆和转换
    • 错过重要的生日祝福
    • 无法提前准备礼物

2.2 使用场景

  1. 添加新朋友后,立即录入其生日信息
  2. 提前收到生日提醒,有时间准备礼物或祝福
  3. 查看近期即将到来的纪念日
  4. 回顾和添加各种纪念日(结婚、恋爱、重要事件等)

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
    • 开发成本低
    • 支持推送通知
    • 跨平台兼容
  • 备选: 也可以考虑开发移动AppReact 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

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 参考资源

9.2 成功指标

  • 用户留存率: 30日留存 > 40%
  • 活跃度: 每日打开率 > 50%
  • 功能使用: 80%用户成功添加至少5条纪念日

10. 总结

这是一款专注于用户核心需求、功能简洁实用的纪念日管理小程序。通过支持农历生日、灵活的提醒设置和简单的操作流程,为用户提供贴心的纪念日管理服务。

核心亮点: 支持农历生日(中国特色) 个性化提醒设置 多种纪念日类型 简洁美观的界面 无需服务器(轻量级)


文档版本: v1.0
创建日期: 2024年
最后更新: 2024年