【新春创造营】春节日程助手

我不会写提示词,我是先跟AI讨论做个什么项目开始,讨论做的方向后,让AI先生成需求文档。然后再实现。由于前期没啥很好的提示词,需求文档写的也不是很好。导致做出来的很烂。然后就是漫长的改bug环节了。然后有啥新的想法,也都是一点点提出。

设计文档

春节日程规划助手 - 需求设计文档

1. 项目概述

1.1 项目名称

春节日程规划助手 (Spring Festival Planner)

1.2 项目背景

春节期间日程繁忙,涉及拜年、聚会、家庭活动等多种安排。为了帮助用户更好地规划春节假期时间,避免冲突,提高节日效率,开发此日程规划助手。

1.3 项目目标

  • 提供春节假期日程规划和管理功能

  • 支持拜年人员管理和拜年记录

  • 突出春节喜庆氛围和节日元素

  • 一键启动,简单易用

  • 核心功能:春节期间专属日程规划(腊月二十三至正月十五)


2. 功能需求

2.1 核心功能

2.1.1 日程管理

创建日程

  • 日期选择(默认春节期间范围)

  • 时间段选择(开始时间-结束时间)

  • 日程类型(拜年、聚餐、家庭活动、其他)

  • 地点

  • 备注

  • 关联联系人

  • 快速创建:双击统计卡片自动选择对应类型和推荐日期

查看日程

  • 春节时间线视图:替代传统日历,聚焦春节期间

    • 显示腊月二十三至正月十五的日期

    • 智能压缩:无日程且非重要节日的日期自动压缩

    • 重要节日始终显示:小年、除夕、春节、元宵节

    • 宽屏布局,时间线清晰展示

    • 点击日期快速创建日程

  • 列表视图:按时间顺序展示所有日程

编辑日程:修改已创建的日程信息

删除日程:删除不需要的日程

2.1.2 拜年人员管理(强化版)

联系人管理

  • 添加联系人(姓名、关系、电话、地址、备注)

  • 编辑和删除联系人

  • 联系人列表展示

拜年记录功能

  • 拜年状态标记:已拜年 / 待拜年

  • 拜年详情记录

    • 拜年方式(上门/电话/视频/信息)

    • 礼物记录

    • 红包金额

    • 备注

  • 批量拜年:支持多选联系人批量标记拜年

  • 统计展示:已拜年/待拜年数量统计

智能拜年日期

  • 双击拜年统计卡片:自动创建拜年日程

  • 默认日期范围:正月初一至初七随机选择

  • 自动设置日程类型为"拜年"

2.1.3 春节主题元素

视觉设计

  • 春节红色主题:红色渐变 + 金色点缀

  • 灯笼装饰:两侧对称灯笼,带流苏摆动动画

  • 祥云飘动:淡雅祥云背景装饰

  • 梅花元素:角落梅花装饰

交互动画

  • 放烟花按钮:点击展示烟花绽放动画(彩色粒子效果)

  • 放鞭炮按钮:点击展示鞭炮爆炸动画(火花飞散+烟雾效果)

  • 统计卡片悬停动画

  • 时间线节日节点发光效果

2.1.4 辅助功能

  • 农历支持:农历日期显示,重要节日标识

    • 支持节日:小年(腊月二十三)、除夕(腊月三十)、春节(正月初一)、元宵节(正月十五)
  • 数据备份:本地数据备份和恢复

  • 主题切换:支持明暗主题适配春节配色


3. 用户体验设计

3.1 主界面布局

春节头部区域

  • 顶部装饰条(红金条纹)

  • 标题:2026春节日程规划(带火焰动画)

  • 副标题:腊月二十三·小年 至 正月十五·元宵节

  • 统计卡片:拜年行程 | 聚餐安排 | 家庭活动 | 总日程

    • 支持双击快速创建对应类型日程

操作区域

  • 添加日程按钮

  • 放烟花 / 放鞭炮 按钮

  • 时间线视图 / 列表视图 切换

内容区域

  • 时间线视图:春节期间日期时间线,智能压缩无日程日期

  • 日程卡片:按日期分组展示,支持编辑删除

3.2 操作流程

  1. 打开应用,看到春节主题时间线界面

  2. 方式一:点击日期卡片 → 创建日程

  3. 方式二:双击顶部统计卡片 → 快速创建对应类型日程(拜年默认初一至初七)

  4. 方式三:点击"添加日程"按钮 → 手动创建

  5. 在联系人页面标记拜年状态和记录

  6. 点击烟花/鞭炮按钮体验节日动画

3.3 视觉规范

配色方案

  • 主色:#ff4d4f(春节红)

  • 点缀:#ffd700(金色)

  • 背景:#fff5f5(淡红渐变)

节日标识

  • 春节:大红圆点 + 发光动画

  • 除夕:橙色圆点

  • 小年/元宵:红色圆点

  • 普通日期:灰色圆点

动画规范

  • 灯笼:流苏摆动,福字发光

  • 烟花:30个粒子绽放,1.5秒

  • 鞭炮:12个依次爆炸,带火花和烟雾

  • 卡片:悬停上浮效果


4. 技术方案

4.1 技术栈

  • 前端:React + TypeScript

  • UI框架:Ant Design

  • 状态管理:React Context + Hooks

  • 农历库:lunar-javascript

  • 数据存储:LocalStorage(本地存储)

  • 构建工具:Vite

4.2 项目结构

spring-festival-planner/
├── doc/                        # 文档目录
│   └── 需求设计文档.md
├── src/
│   ├── components/             # 组件
│   │   ├── ScheduleForm/      # 日程表单
│   │   ├── ContactList/       # 联系人列表(含拜年功能)
│   │   ├── SpringFestivalDecorations/  # 春节装饰动画
│   │   └── ...
│   ├── pages/                  # 页面
│   │   ├── CalendarView/      # 春节时间线视图
│   │   ├── Contacts/          # 联系人管理(含拜年)
│   │   └── Settings/          # 设置
│   ├── store/                  # 状态管理
│   │   ├── scheduleStore.ts
│   │   ├── contactStore.ts
│   │   └── appStore.ts
│   ├── utils/                  # 工具函数
│   │   ├── lunar.ts           # 农历转换(含节日识别)
│   │   └── storage.ts         # 存储工具
│   ├── types/                  # 类型定义
│   │   ├── schedule.ts
│   │   ├── contact.ts         # 含拜年记录类型
│   │   └── index.ts
│   ├── App.tsx
│   └── main.tsx
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md

5. 数据模型

5.1 日程数据结构

interface Schedule {
  id: string;
  title: string;
  startDate: Date;
  endDate: Date;
  type: 'visit' | 'dinner' | 'family' | 'other';
  location?: string;
  note?: string;
  contacts?: string[];
  createdAt: Date;
  updatedAt: Date;
}

5.2 联系人数据结构(含拜年记录)

interface BlessingRecord {
  isBlessed: boolean;
  blessingTime?: Date;
  blessingMethod?: 'in-person' | 'phone' | 'video' | 'message' | 'batch';
  gift?: string;
  redPacket?: string;
  note?: string;
}

interface Contact {
  id: string;
  name: string;
  relationship: string;
  phone?: string;
  address?: string;
  note?: string;
  blessingRecord?: BlessingRecord;
  createdAt: Date;
  updatedAt: Date;
}

6. 非功能需求

6.1 性能要求

  • 日程加载时间 < 1秒

  • 支持至少1000条日程记录

  • 动画流畅,60fps

6.2 易用性要求

  • 春节主题突出,一眼识别

  • 双击快速创建,减少操作步骤

  • 时间线清晰,压缩无关日期

6.3 兼容性要求

  • 支持主流浏览器(Chrome、Edge、Firefox)

  • 响应式设计,移动端隐藏部分装饰

  • 支持深色模式(春节配色适配)


7. 开发计划

7.1 第一阶段(核心功能)

  • 春节时间线视图(替代传统日历)

  • 日程CRUD功能

  • 农历日期支持和节日识别

  • 春节主题UI和配色

  • 灯笼装饰动画

7.2 第二阶段(拜年功能)

  • 联系人管理和拜年记录

  • 拜年状态标记和统计

  • 批量拜年功能

  • 双击统计卡片快速创建

7.3 第三阶段(节日体验)

  • 烟花动画效果

  • 鞭炮爆炸动画

  • 时间线智能压缩

  • 响应式适配


8. 节日识别规则

节日 农历日期 是否重要 显示规则
小年 腊月二十三 始终显示
除夕 腊月三十 始终显示
春节 正月初一 始终显示,特殊发光效果
元宵节 正月十五 始终显示
其他日期 - 无日程时压缩

9. 风险与限制

9.1 风险

  • 农历日期转换准确性(已通过lunar-javascript库解决)

  • 动画性能(限制粒子数量,使用CSS动画)

9.2 限制

  • 仅支持单机使用

  • 春节日期范围固定(腊月二十三至正月十五)

  • 无云端同步


10. 更新记录

2026-02-03 功能优化与体验提升

  • 拜年功能明确化:拜年记录和拜年日程完全分离,拜年方式不等于已拜年

  • 日历视图优化

    • 标题改为":tada: 2026春节欢乐时光",更活泼亲切

    • 统计卡片添加趣味评价(0个:暂无安排,1-3个:不错的开始,4-6个:充实满满,7+个:春节达人)

  • 雪花效果优化

    • 雪花初始位置随机分布,不再从顶部统一开始

    • 雪花装饰移至全局,所有页面都有雪花效果

  • 时间线优化

    • 修复圆圈被日程卡片遮挡的问题(通过z-index层级控制)

    • 增加时间线项目间距,避免视觉拥挤

    • 小年圆框完整显示"小年"文字

2026-02-02 重大更新

  • 从传统日历视图改为春节专属时间线视图

  • 新增拜年人员管理功能

  • 新增春节主题动画(灯笼、烟花、鞭炮)

  • 新增智能日期压缩功能

  • 新增双击快速创建日程功能

  • 优化UI为正式春节喜庆风格

改bug过程中发现计划模式真好用,没有一开始就用很后悔啊。计划模式能将bug好,智能模式不行。

glm-4.7在这种纯前端项目中比minimax2.1还是强一些。

效果如图所示。

体验地址:https://mermenglin.github.io/spring-festival-planner/

3 个赞

大佬,内容需要详细一些,以及还需要体验链接~优化后给你发奖

体验链接怎么弄啊?我没服务器

让iflow带你做成公开链接 :eyes: github应该是最简单的实现?

搞定

1 个赞

大佬,白屏了

活捉一个在线监工:joy:

1 个赞

我知道,不知道为啥glm4.7给改挂了,然后一直修复不好,本地是没问题的,还在让AI想办法修复

前端完全不熟,修坏了也不知道原因

已修复好了,经过多轮修复,总算是好了

1 个赞

优秀!