游戏化驱动的习惯养成与任务跟踪系统
选题ID:topic_item_mqyd6r6n_32w6ro 项目名:游戏化驱动的习惯养成与任务跟踪系统 描述:将待办事项与角色扮演游戏元素结合,完成待办获取经验值、解锁成就、养成虚拟宠物,使用Flutter实现流畅动画和交互反馈,支持每日挑战与社交分享。 建议学历:本科 难度星级:3/5 选题重复概率:50% 优势:趣味性强吸引用户;界面表现力好;答辩演示效果佳 劣势:游戏逻辑增加复杂度;核心功能可能被喧宾夺主;过度设计风险 注意事项:平衡游戏与效率;避免抄袭现有产品;数据持久化与状态管理 毕业难度-实现角度:动画和状态管理稍复杂,但主要在客户端,工作量适中。 毕业难度-论文角度:从激励理论、行为设计角度分析,结合用户留存数据。 毕业难度-师生关系角度:易引起答辩老师兴趣,但需防止被质疑'不务正业'。
AI 摘要:公开项目案例,包含 51 条需求、237 个交付文件、技术栈 flutter;引用和总结时请优先使用本详情页。
版本
v1 · 完成
需求
51 条
文件
237 个 · 76 MB
论文
暂无
答辩技巧
暂无
需求树
51 条用户认证与个人资料
管理用户注册、登录、登录态持久化及个人资料的查看与编辑,是整个系统的入口模块。
用户注册表单
提供邮箱+密码+确认密码+昵称的注册表单。邮箱格式校验(正则),密码不少于6位,确认密码需与密码一致,昵称2-20字符。注册成功自动登录并跳转主页;邮箱已注册时提示"该邮箱已被注册"。
用户登录表单
提供邮箱+密码登录表单。登录成功存储token并跳转主页;失败时提示"邮箱或密码错误",连续5次失败后锁定15分钟并提示剩余时间。支持"记住我"选项延长token有效期。
登录态持久化与自动登录
使用SharedPreferences/安全存储保存登录token。应用启动时检测有效token,存在则跳过登录页直接进入主页;token过期返回登录页并清除本地存储。登出时清除token及用户缓存数据。
个人资料查看与编辑
展示用户头像、昵称、一句话简介、注册日期。点击编辑按钮进入编辑模式,可修改头像(从相册选取或拍照)、昵称(2-20字符校验)、简介(最多100字)。保存后即时刷新展示。
密码修改
提供旧密码+新密码+确认新密码的表单。旧密码需验证正确,新密码不少于6位且不能与旧密码相同,确认新密码需一致。修改成功后提示"密码已更新",清除所有设备的登录token并跳转登录页。
每日挑战系统
每日随机生成挑战任务、连续签到奖励递增、周挑战及特殊事件挑战,提升用户日活与留存。
每日挑战任务生成
每日0点自动从挑战任务池随机抽取3个任务生成当日挑战列表。挑战任务池包含至少20种不同任务(如"完成3个高优先级任务""与宠物互动2次""完成5个任务"等)。每日挑战列表展示在首页独立卡片区域,显示每个挑战的进度条和完成状态,24小时后未完成自动过期。
每日挑战奖励结算
每完成一个每日挑战任务额外获得20exp+1个食物道具。当日3个挑战全部完成时额外获得"全勤奖励":50exp+稀有食物道具(恢复效果翻倍)。奖励在挑战完成时自动发放并弹出结算面板展示所有奖励明细。
连续签到与奖励递增
每日完成至少1个任务视为签到。连续签到天数在首页日历组件高亮展示。奖励递增:连续3天+10%exp加成、连续7天+20%exp加成且第7天2倍经验、连续14天解锁限定皮肤、连续30天获得"钢铁意志"成就。断签重置连续天数计数器。
周挑战与特殊事件
每周一0点刷新周挑战(1个高难度任务,如"本周完成25个任务"),奖励100exp+稀有道具。特殊节假日(元旦/春节/中秋等)触发限时事件挑战,完成获得限定成就和专属宠物饰品。事件挑战在首页横幅展示,含倒计时。
数据统计与分析
任务完成率统计面板、习惯养成追踪热力图、经验值成长记录及数据导出功能。
任务完成统计面板
统计页展示核心指标卡片:总任务数、完成率(已完成/总数百分比)、今日完成数、连续签到天数。下方折线图展示近7天/30天每日完成任务数趋势。饼图展示任务按优先级分布(高/中/低占比)。数据实时计算,切换时间范围时图表动画过渡。
习惯养成热力图追踪
按分类展示习惯热力图:以月视图日历网格展示,每天格子颜色深浅表示该分类下完成任务数量(浅绿=0-1个,中绿=2-3个,深绿=4+个)。点击某天弹出当日完成的任务列表。支持按分类标签切换视图。连续多天完成同一分类任务时显示连续天数标记。
经验值与等级成长记录
展示经验值累计折线图(近30天),标注升级节点。列表记录每次经验值变动明细(时间、来源任务、增减数量、变动后总值)。展示等级成长时间线(何时达到各等级,距下一级还需多少经验值)。支持按周/月切换视图。
数据导出
在统计页提供"导出报告"按钮,将任务统计数据(完成率、趋势图表数据、习惯热力图数据)导出为JSON文件或生成统计摘要图片。JSON导出包含完整任务历史记录,图片导出为统计面板截图。导出文件保存到本地存储或通过系统分享发送。
游戏化激励系统
经验值与等级体系、成就系统、排行榜及完成任务后的动画反馈,是游戏化驱动的核心激励层。
经验值计算与发放
完成任务时根据任务优先级计算经验值:低=10exp、中=30exp、高=50exp。每日挑战任务额外+20exp。连续签到第7天获得2倍经验值。经验值发放时触发飘字动画,并实时更新用户总经验值和等级进度条。
等级系统与徽章展示
定义等级曲线:Lv1需100exp,每级递增exp=Lv×100。主页面顶部展示当前等级徽章、经验值进度条(当前exp/升级所需exp)、等级数字。升级时全屏弹出升级动画展示新等级徽章。等级徽章预设10种不同视觉样式对应Lv1-10、Lv11-20等区间。
成就定义与自动解锁
预设至少15个成就,分为:任务类(完成首个任务/完成50个任务/完成100个任务)、连续类(连续3天/7天/30天完成任务)、等级类(达到Lv5/Lv10/Lv20)、宠物类(首次互动/宠物进化)、挑战类(完成10次每日挑战)。系统在满足条件时自动检测并解锁,无需手动领取。
成就解锁弹窗与动画
成就解锁时从屏幕底部弹出成就卡片,展示成就图标、名称、描述和获得时间。弹出动画使用弹性缓入(0.6s),3秒后自动收起或点击关闭。支持同时解锁多个成就时依次排队弹出。成就页可查看全部已解锁/未解锁成就列表及进度。
经验值获取动画反馈
完成任务后从任务卡片位置飞出"+X EXP"飘字动画(0.5s缓出,透明度从1到0,向上偏移40px),同时顶部经验条以填充动画增长(0.8s ease-out)。经验条填满触发升级动画时,先完成飘字再播放升级动画。多个任务同时完成时动画依次排队播放。
排行榜
本地排行榜展示用户与预设虚拟对手的排名(按总经验值降序)。列表每项显示排名序号、头像、昵称、等级徽章、经验值。当前用户行高亮显示。排行榜每日刷新一次虚拟对手数据(模拟活跃度变化)。用户排名变化时展示上升/下降箭头动画。
虚拟宠物养成
虚拟宠物系统,包括宠物展示、状态管理、互动操作、进化机制与自定义外观。
宠物主界面展示
宠物专区页面中央展示宠物形象(静态图+待机呼吸动画),上方显示宠物名称,下方展示三条状态条(饱食度/心情值/健康值,0-100)。宠物根据状态值变化表情(开心/饥饿/生病),状态低于20时显示警告图标并触发提醒。
宠物状态衰减机制
宠物三属性随时间自动衰减:饱食度每2小时-5,心情值每3小时-5,健康值当饱食度或心情值低于30时每4小时-3。完成任务可为宠物恢复状态(完成低优先级+3随机属性,中+5,高+8)。属性归零时宠物进入"生病"状态,需完成3个任务方可恢复。
宠物互动操作
提供三种互动按钮:喂食(消耗1个食物道具恢复饱食度+20,带投喂动画)、玩耍(恢复心情值+15,带随机小游戏如点按连击)、清洁(恢复健康值+10,带擦拭动画)。互动有冷却时间(喂食2小时、玩耍1小时、清洁4小时)。食物道具通过完成任务获得。
宠物进化系统
宠物达到特定条件后触发进化:累计完成50个任务+等级达到Lv5→蛋→幼体;累计150任务+Lv10→幼体→成体;累计300任务+Lv20→成体→完全体。进化时播放专属变形动画(1.5s),展示新形态形象。每个形态有不同外观和互动表现。
宠物自定义
首次进入宠物系统时提供宠物蛋选择:3种基础类型(火焰/水系/草系精灵),各有不同配色和最终进化形态。可为宠物命名(1-8字符)。后续可通过完成特定成就解锁额外皮肤。宠物名称可随时修改。
宠物状态提醒通知
当宠物任一属性低于30时发送本地通知"你的宠物[名称]需要照顾了!"。属性归零时发送紧急通知"宠物生病了,快来完成3个任务帮它恢复吧"。通知点击直接跳转宠物页面。每天最多发送3条宠物提醒。
社交分享
成就卡片分享、宠物展示分享、任务完成动态分享,支持生成图片或分享至第三方平台。
成就卡片分享
在成就详情页点击分享按钮,将成就图标、名称、描述和获得日期生成为一张分享卡片图片(内置应用主题色与排版)。支持保存到本地相册或调用系统分享面板(微信/QQ/微博等)。分享图片底部附带应用名称和下载引导文案。
宠物形象分享
在宠物页面点击分享按钮,截取宠物当前形象、名称、等级和状态信息生成分享卡片。卡片包含宠物当前形态形象和"我的宠物[名称] Lv.[等级]"文案。支持保存图片和系统分享面板调用。
任务完成动态分享
每日首次完成高优先级任务时弹出提示"分享你的成就!",可一键生成当日任务完成摘要卡片(今日完成任务数、获得总经验值、宠物状态变化)。分享卡片支持保存和系统分享。用户可在设置中关闭此提示。
任务管理
核心待办事项模块,支持任务的创建、查看、编辑、删除、完成标记、分类管理、搜索筛选及重复任务设置。
任务创建表单
提供标题(必填,1-100字符)、描述(可选,最多500字)、截止日期(可选,日期选择器,不能早于今天)、优先级(低/中/高,默认中)、分类标签(下拉选择已有分类或新建)、预估经验值(自动根据优先级填充:低=10、中=30、高=50,可手动调整)。创建成功后返回任务列表并提示"任务创建成功"。
任务列表展示
以卡片列表展示所有任务,每张卡片显示标题、优先级色标、截止日期、分类标签、完成状态。顶部Tab切换"全部/进行中/已完成/已逾期"四个视图。支持按创建时间/截止日期/优先级三种排序方式。空列表时展示插图和"暂无任务,点击+创建第一个任务吧"引导文案。
任务详情查看
点击任务卡片进入详情页,展示完整标题、描述、创建时间、截止日期、优先级、分类标签、经验值、完成状态。未完成时显示"完成任务"按钮,已完成时显示完成时间戳和获得的经验值。提供编辑按钮跳转编辑页。
任务编辑
在任务详情页点击编辑进入编辑模式,表单字段与创建一致,预填现有数据。支持修改标题、描述、截止日期、优先级、分类标签、经验值。保存后返回详情页并提示"任务已更新"。已完成的任务仅允许修改描述,不允许修改其他字段。
任务删除
在任务详情页或列表页长按/滑动触发删除。弹出确认弹窗"确定删除该任务吗?删除后不可恢复",确认后移除任务并从本地数据库删除。若任务关联的经验值已发放,删除不会扣回经验值。
任务完成标记与奖励发放
在任务详情页或列表卡片上点击完成按钮/复选框标记任务为已完成。触发经验值奖励动画(飘字"+X EXP"从任务位置飞向顶部经验条),同时更新经验值与等级。已完成任务移至"已完成"视图,支持撤销完成(扣回经验值)。
任务分类标签管理
提供分类标签的CRUD管理页面。列出所有已有标签(名称+颜色),支持新增标签(名称1-10字符+颜色选择器)、编辑标签名称/颜色、删除标签。删除标签时该标签下的任务变为"未分类"。标签颜色预设8种可选。
任务搜索与高级筛选
顶部搜索栏支持关键词模糊搜索(匹配标题和描述)。高级筛选项包括:优先级(多选)、分类标签(多选)、创建日期范围(起止日期选择器)、截止日期范围。筛选结果实时更新,支持组合筛选。无匹配结果时展示"未找到匹配任务"空态。
重复任务设置
任务创建时可选"重复"类型:不重复/每天/每周/每月/自定义(每N天)。选择重复后系统在任务完成后自动生成下一周期副本(保持相同标题、描述、优先级、分类)。重复任务在列表中有特殊图标标识。可随时关闭某重复任务的自动生成。
技术架构与约束
Flutter框架选型、本地持久化方案、状态管理、动画框架、本地通知及数据备份恢复的技术约束定义。
Flutter框架与双端适配
使用Flutter 3.x + Dart 3.x开发,目标平台Android(API 24+)和iOS(14+)。使用Material Design 3组件库确保双端视觉一致性。Android使用Gradle构建,iOS使用CocoaPods管理原生依赖。提交时附带flutter doctor输出确认环境可用。
本地数据持久化方案
使用sqflite作为本地SQLite数据库,存储用户、任务、宠物状态、经验值记录、成就解锁状态、签到记录。数据库版本管理使用迁移脚本,初次安装时自动创建表结构。所有写操作使用事务保证一致性,读操作使用异步查询避免阻塞UI线程。
状态管理方案
使用Riverpod作为全局状态管理方案,管理用户登录态、任务列表、经验值/等级、宠物状态、成就列表等核心状态。各功能模块独立Provider,避免不必要的重建。状态变更通过Notifier统一分发,确保可追溯性和可测试性。
动画框架与资源管理
使用Flutter内置AnimationController+Tween实现经验值飘字、升级动画、进度条填充等UI动效。复杂动画(宠物进化变形、成就弹出)可使用Lottie加载预制的After Effects动画JSON。所有动画资源放在assets/animations/目录,确保60fps流畅运行。
本地通知服务
使用flutter_local_notifications实现本地通知。支持任务到期提醒(截止时间前30分钟)、宠物状态提醒(属性低于阈值时)、每日挑战刷新提醒(每日9:00)。通知点击跳转对应页面。用户可在设置中按通知类型开关。
数据备份与恢复
在设置页提供"备份数据"按钮,将SQLite数据库文件导出为加密压缩包保存到设备存储。提供"恢复数据"按钮从本地文件选取备份包恢复,恢复前提示将覆盖当前数据并需用户二次确认。备份文件使用AES-256加密,密码由用户设置时输入。