立项背景和目标:
当前市面上的习惯打卡类应用普遍缺乏趣味性和长期激励机制,用户容易在使用数日后失去新鲜感而放弃。本项目旨在将中国传统修仙文化与现代个人成长管理相结合,通过游戏化的属性成长、境界突破、成就收集等机制,为用户提供一款兼具实用性与趣味性的个人成长追踪工具。
核心功能模块:
1. 属性成长系统:支持身体、心智、知识、技能四大类属性的自定义配置,完成任务自动提升属性等级,共设18级成长体系。
2. 任务管理系统:支持每日、特殊、紧急、阶段四种任务类型,含子任务拆分功能,完成任务获得灵石奖励和属性加成。
3. 修炼境界系统:从凡人到登仙共9大境界81个小层,突破需消耗灵石,具备成功率和失败惩罚机制。
4. 成就图鉴:30+成就覆盖连续打卡、里程碑、境界突破等维度。
5. 日记与心情日历:支持每日心情记录、天气标记、自动生成每日摘要,按月归档为书架视图。
6. 休闲模块:集成小六壬占卜、塔罗牌、八字每日运势、专注计时器(番茄钟+白噪音)。
7. 4套主题切换:暗黑、古风、明亮、赛博朋克,CSS变量全覆盖。
业务流程:
首次启动 → 欢迎页 → 5步初始化向导(个人信息→模式选择→属性配置→任务配置→确认提交) → 云数据库初始化 → 进入主面板。日常使用中,用户完成任务 → 云端计算奖励 → 属性/灵石/成就同步更新 → 累计达到突破条件可尝试境界突破。
整体架构:
项目采用微信小程序原生框架开发前端,后端使用微信云开发(CloudBase)实现Serverless架构。前端通过wx.cloud.callFunction()调用云函数,云函数直接操作云数据库,无需自建服务器。共部署19个云函数,涵盖玩家初始化、面板数据聚合、任务增删改查、属性更新、境界突破、日记备忘录CRUD、统计分析、定时提醒等核心业务。
前端技术栈:原生WXML模板 + WXSS样式(CSS变量主题系统) + JavaScript ES6,组件化开发(task-item复用组件)。
后端技术栈:wx-server-sdk + 云数据库(players/tasks/logs集合)。
定时任务:dailyReset和sendReminder通过云函数定时触发器实现。
我负责的模块及结果:
我独立完成了整个项目的开发,包括:
- 完成19个云函数的设计与编写,实现完整的游戏化属性成长和任务管理逻辑,任务完成奖励计算准确率100%。
- 实现4套主题系统,通过CSS变量实现全局样式切换,覆盖200+样式变量。
- 实现30+成就系统的解锁检测逻辑,在多个云函数中实现去重校验。
- 实现小六壬、塔罗牌、八字运势三个休闲模块的算法逻辑,其中八字计算基于万年历数据实现日柱时柱精确推算。
- 实现每日自动重置机制,通过云函数定时触发器+panel函数兜底双保险,保证日任务重置可靠性。
遇到的难点和解决方案:
1. 云函数间代码复用问题:levels.js和achievements.js需在多个云函数中使用,通过将公共模块拷贝到各云函数目录解决(后续可优化为共享依赖)。
2. 日期处理:云函数运行在UTC时区但业务需北京时间,通过手动+8小时偏移并封装getBeijingDate()统一处理。
3. 属性衰减机制:心智类属性在用户未完成任务时需自动衰减,在每日重置函数中加入衰减逻辑,根据未完成天数梯度扣减。
4. 首次引导流程:版本号控制引导触发,改版本号即可重新触发新手引导,便于迭代更新时向老用户展示新功能。