首页 › Vibe coding 项目实战专栏 › VibeCoding实战 个人作品集网站 › 作品十三:学习打卡小程序

作品十三:学习打卡小程序

​

做一个打卡小程序,可以学习小程序的日历组件 、数据可视化等功能。​

​

​

​

​

飞书文档 - 图片

​

28%

​

​

​

飞书文档 - 图片

​

28%

​

​

​

飞书文档 - 图片

​

44%

​

​

这个打卡小程序要实现习惯打卡功能 ​

​

•

用户可以创建打卡项目 ( 比如每天学习 、每天运动),设置打卡目标(连续打卡天数)。​

•

每天可以打卡一次,打卡后显示打卡成功 。首页显示所有打卡项目和打卡状态 。 ​

◦

日历视图显示打卡历史,打卡的日期标记为绿色 。统计数据显示总打卡天数 、连续打卡天数 、完成率等。 ​

​

​

💚

使用小程序原生开发,数据存储使用本地存储 ​

日历组件可以使用第三方组件库( 如 Vant Weapp)或自己实现。​

​

开发步骤​

1)开发的第一步是设计数据结构 。告诉 AI:​

​

代码块​

Markdown

我要开发一个打卡小程序,请帮我设计数据结构。​

打卡项目 :​

- id​

- name( 项目名称,如"每天学习")​

- target( 目标天数)​

- created_at(创建时间)​

​

打卡记录:​

- id​

- project_id( 关联的项目)​

- date(打卡日期,格式 YYYY-MM-DD)​

- note(打卡备注,可选)​

- created_at(打卡时间)​

​

请给出数据结构和存储方案。​

​

AI 会帮你设计合理的数据结构,并说明如何存储在本地。​

2)创建项目列表页告诉 AI:​

​

代码块​

Plain Text

创建首页( pages/index/index),显示打卡项目列表:​

每个项目卡片显示:​

- 项目名称​

- 今日是否已打卡( 已打卡显示绿色勾,未打卡显示灰色圆圈)​

- 连续打卡天数​

- 总打卡天数​

- 进度条( 已打卡天数/目标天数)​

底部有"添加项目 "按钮。​

​

点击项目卡片进入项目详情页。​

点击打卡按钮进行打卡。​

​

这个提示词说明了首页的布局和交互 。AI 会生成完整的页面代码。​

3) 实现打卡功能告诉 AI:​

​

代码块​

Plain Text

实现打卡功能:​

1. 检查今天是否已打卡​

2. 如果未打卡,创建打卡记录​

3. 保存到本地存储​

4. 显示打卡成功提示​

5. 刷新页面数据​

​

打卡时可以添加备注( 可选)。​

​

打卡功能要防止重复打卡,所以要先检查今天是否已打卡。​

4)创建项目详情页告诉 AI:​

​

代码块​

Markdown

​

5) 实现统计功能告诉 AI:​

​

代码块​

Plain Text

实现统计功能:​

​

1. 总打卡天数:该项目的所有打卡记录数​

2. 连续打卡天数:从今天往前数,连续打卡的天数​

3. 完成率:已打卡天数 / 目标天数​

4. 最长连续打卡:历史上最长的连续打卡天数​

​

在项目详情页显示这些统计数据。​

​

连续打卡天数的计算比较复杂,要从今天往前遍历,检查每一天是否有打卡记录,直到遇到没有打卡的日期 。AI 会帮你实现这个算法。​

6) 实现日历组件告诉 AI:​

​

代码块​

Plain Text

实现日历组件:​

​

日历组件的实现比较复杂,但 AI 可以帮你搞定 。如果觉得自己实现太麻烦,也可以使用第三方组件库, 比如 Vant Weapp。​

开发技巧​

在开发打卡小程序时,有几个技巧需要注意 。​

•

首先是日期处理,JavaScript 的日期处理比较复杂,可以让 AI帮你封装一些工具函数, 比如获取当月天数 、判断是否是今天 、计算两个日期的天数差等。​

•

其次是连续打卡天数的计算 。要从今天往前遍历,检查每一天是否有打卡记录,直到遇到没有打卡的日期。可以让 AI 帮你实现这个算法, 它会考虑各种边界情况。​

•

另外, 日历组件的实现比较复杂,如果觉得自己实现太麻烦,可以使用第三方组件库 。Vant Weapp 是一个很好的小程序 UI 组件库,提供了日历组件 。可以让 AI 帮你集成 Vant Weapp ,使用它提供的日历组件。​

•

最后,打卡数据可能会越来越多,要注意性能优化 。可以只加载最近 3 个月的数据,更早的数据按需加载,避免一次性加载太多数据导致页面卡顿。​

扩展思路​

基础版完成后,可以继续扩展功能 。​

比如添加打卡提醒,每天定时提醒用户打卡;​

实现打卡分享,生成打卡海报分享到朋友圈;​

添加打卡排行榜,和好友比拼谁坚持得更久;​

实现打卡奖励,连续打卡获得勋章;​

支持数据导出,导出打卡记录;集成云同步,使用微信云开发实现多设备同步。​

​