Initial Commit
This commit is contained in:
@@ -0,0 +1,415 @@
|
||||
# 生日提醒小程序产品需求文档 (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
|
||||
- 开发成本低
|
||||
- 支持推送通知
|
||||
- 跨平台兼容
|
||||
- **备选**: 也可以考虑开发移动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`
|
||||
|
||||
---
|
||||
|
||||
### 4.3 数据模型设计
|
||||
|
||||
#### 4.3.1 人员表 (Person)
|
||||
```javascript
|
||||
{
|
||||
id: String, // 唯一标识
|
||||
name: String, // 姓名(必填)
|
||||
nickname: String, // 昵称
|
||||
avatar: String, // 头像URL
|
||||
remark: String, // 备注
|
||||
createTime: Date, // 创建时间
|
||||
updateTime: Date // 更新时间
|
||||
}
|
||||
```
|
||||
|
||||
#### 4.3.2 纪念日表 (Anniversary)
|
||||
```javascript
|
||||
{
|
||||
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)
|
||||
```javascript
|
||||
{
|
||||
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周)
|
||||
- [x] 项目初始化
|
||||
- [ ] 基础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年
|
||||
|
||||
Reference in New Issue
Block a user