一、核心功能模块:
1. 用户主页模块(Home) - 展示用户基本信息、积分余额、24小时签到任务和每月连续签到日历,用户可在此领取每日任务奖励并查看自己的头像、昵称和ID信息,支持积分隐藏/显示切换功能。
2. 积分商城模块(Assets) - 用户可查看可用积分总额、本月获得积分统计、邀请好友人数,并浏览完整的积分获取/消耗历史记录明细,所有交易记录包含时间戳和变动原因说明。
3. 好友邀请模块(Frens) - 生成专属邀请链接供用户分享,展示总邀请人数和邀请获得的积分统计,支持通过Twitter和Telegram平台分享,提供一键复制邀请链接功能和详细的邀请奖励规则说明。
4. 任务奖励模块(Rewards) - 展示各类可完成的任务列表,用户通过点击外部链接或完成指定操作即可获得相应PPT积分奖励,任务包含社交媒体关注、订阅频道等多种类型。
5. 小游戏模块(Game) - 包含游戏开始页(GameStart)、游戏核心玩法页(GameCore)和游戏结束页(GameEnd),玩家需要在20秒内点击掉落的奖励物品收集积分,同时避开炸弹并利用暂停道具,大型冰块奖励需要多次点击才能获得5倍积分。
二、主要功能路径:
用户初次使用流程: 通过Telegram认证进入应用 → 主页查看自己的信息和积分 →
完成24小时签到任务和每日签到 → 进入Rewards页面完成额外任务获取积分 →
邀请好友获得更多积分奖励 → 使用积分参与游戏获得更多奖励 → 在Assets页面查看积分变动明细。
游戏玩法路径: 主页点击"玩游戏"卡片 →
进入游戏开始页查看规则(消耗积分、每日次数限制、时长20秒等) → 点击开始按钮发起游戏API请求 →
进入游戏核心页面点击掉落的奖励物品收集分数,避开炸弹(会清空分数),点击暂停道具获得3秒暂停时间,点击大冰块4次获得5倍积分 → 时间结束后自动跳转到结束页面查看得分和统计数据
积分获取路径: 每24小时签到 → 每日连续签到 → 完成社交任务 → 邀请好友注册 → 参与小游戏获得高分 → 所有积分变动都会记录在Assets页面的历史记录中
项目采用Next.js 15框架搭建,集成了Telegram SDK、国际化支持、状态管理(Zustand)、音效系统、帧动画播放器等完整的技术栈,为Telegram用户提供了一个完整的积分任务和娱乐游戏生态系统。
一、开发周期与任务(10周)
需求与设计(1周):数据库设计、接口规范、技术选型
后端开发(2周):基于Gin-Vue-Admin搭建服务、用户认证、积分/任务/签到/邀请系统、游戏API、Redis缓存
前端开发(3周):Next.js项目、首页签到、积分明细、邀请分享、任务列表、游戏页面、国际化、移动适配
游戏开发(2周):掉落系统、碰撞检测、道具交互、序列帧动画、性能优化
测试部署(2周):联调测试、性能优化、服务器部署、Telegram Bot上线
二、技术栈与架构
前端:Next.js 15 + React 18 + Zustand + Ant Design Mobile + i18next + Telegram SDK +
帧序列播放器
后端:Gin + GORM + MySQL + Redis + Casbin + JWT + Gin-Vue-Admin框架
三、核心亮点
1. 插件化架构 - tgBot业务逻辑独立插件,代码解耦易扩展
2. 帧序列动画 - 自研播放器支持121帧动画,预加载优化
3. 掉落池算法 - 预生成奖励池并随机打乱,保证游戏公平
4. 性能优化 - 限300道具+RAF动画+useMemo缓存,60fps流畅体验
5. 代码生成器 - 一键生成CURD,效率提升80%
四、技术难点
1. 游戏性能 - 移动端碰撞检测+大量DOM动画,虚拟化+RAF优化
2. Telegram集成 - InitData解析、身份验证、Bot配置与JWT衔接
3. 防刷机制 - 服务端验证+限流+异常检测
4. 状态管理 - 大冰块多击、积分同步、游戏暂停等复杂状态控制
5. SSR水合 - Next.js时间渲染处理,避免客户端不一致
6. 资源优化 - 239帧图片预加载策略,平衡体验与速度