编写产品需求文档:黄历日历小程序

整理产品需求文档:黄历日历小程序

版本 :1.0
更新时间:2025-7-9

一、文档概述

1.1 产品背景

开发一款融合传统黄历文化的日历工具,提供每日吉凶查询、神煞展示和个人运势分析功能。

1.2 目标用户

  • 关注传统历法的中老年群体
  • 婚嫁/搬家等需要择吉的用户
  • 传统文化爱好者

二、功能需求

2.1 核心功能清单

模块

功能点

优先级

备注

日历

吉凶展示(红黄蓝黑)

P0

需对接黄历算法

神煞详情展示

P0

包含吉神/凶神

每日宜忌提示

P1

用户

个人信息设置

P1

支持农历输入

出生地选择

P2

结合地理编码

三、详细需求说明

3.1 日历页面

3.1.1 视觉规范

xml 复制代码
<!-- 日期格子示例 --> 
<div class="day-cell" style="color: #{color};"> <div class="date">15</div> <div class="omen">吉</div> </div>

3.1.2 交互逻辑

1、日期选择:

  • 点击顶部日期栏唤起原生日期选择器

  • 支持公历/农历切换

2、吉凶判断规则:

kotlin 复制代码
if (无凶神 && 有吉神) return '吉'; else if (凶神≤1 && 吉神≥2) return '良'; else if (无凶神 && 无吉神) return '平'; else return '凶';

3.2 用户信息模块

数据字段

字段

类型

必填

默认值

姓名

string

微信昵称

性别

enum

出生时间

datetime

出生地

string

四、数据架构

4.1 核心数据表

sql 复制代码
erDiagram
    CALENDAR_DAY ||--o{ GODS : contains
    CALENDAR_DAY {
        date date PK
        omen varchar
        suitable_actions text
        avoid_actions text
    }
    GODS {
        id int PK
        day_date date FK
        name varchar
        type enum('吉','凶')
    }

4.2 第三方服务依赖

  • 黄历数据API

五、非功能性需求

5.1 性能指标

  • 日历页面加载时间 ≤800ms
  • 支持10万级日期数据存储

5.2 安全要求

  • 用户出生信息加密存储
  • 敏感操作需二次确认

六、项目计划

6.1 里程碑

阶段

时间

交付物

原型设计

2025-6-1

Figma交互稿

核心功能开发

2025-6-25

可运行MVP

数据对接

2025-7-10

完整黄历数据

6.2 风险预案

  • 黄历算法延迟:准备本地简化版算法
  • 用户量激增:启用云数据库自动扩容

附录

A. 术语表

  • 神煞:传统历法中的吉凶神煞系统
  • 喜用神:八字命理中的有利元素

B. 效果图

相关推荐
hj5914_前端新手20 分钟前
javascript基础- 函数中 this 指向、call、apply、bind
前端·javascript
薛定谔的算法25 分钟前
低代码编辑器项目设计与实现:以JSON为核心的数据驱动架构
前端·react.js·前端框架
Hilaku35 分钟前
都2025年了,我们还有必要为了兼容性,去写那么多polyfill吗?
前端·javascript·css
武子康39 分钟前
大数据-98 Spark 从 DStream 到 Structured Streaming:Spark 实时计算的演进
大数据·后端·spark
yangcode40 分钟前
iOS 苹果内购 Storekit 2
前端
LuckySusu41 分钟前
【js篇】JavaScript 原型修改 vs 重写:深入理解 constructor的指向问题
前端·javascript
LuckySusu42 分钟前
【js篇】如何准确获取对象自身的属性?hasOwnProperty深度解析
前端·javascript
LuckySusu1 小时前
【js篇】深入理解 JavaScript 作用域与作用域链
前端·javascript
LuckySusu1 小时前
【js篇】call() 与 apply()深度对比
前端·javascript
LuckySusu1 小时前
【js篇】addEventListener()方法的参数和使用
前端·javascript