应用场景
为喜欢健身的人服务。无论是新手还是高手,每次健身之前都该有一个训练计划,督促自己去完成计划,也能节约时间。健身的时间必须要挤出来,但健身的时间不应被浪费。
目标用户
喜欢去健身房健身的人。
效果截图
实现思路
根据健身必须要有计划,不然就会浪费健身时间的理念设计此小程序,思路如下图所示:
本产品都是围绕卡路里(KCal)的计算公式来设计的:
1 KCal = m * g * h * 0.24 / 1000 > => 1 千卡 = 重量 * 9.8 * 高度 * 0.24 / 1000
所以此小程序必须要先获取用户信息和用户的身体数据。因为不同身高不同臂长腿长的人,对同一个健身器械所做的功是不一样的。另一方面,引入健身效率这一项,用来__督促健身的人不要浪费时间去聊天__,抓紧时间练。总的来说,这就是一个让喜欢健身的人明确自己进入健身房之后该做什么,督促自己健身并能看到训练数据的小工具。
系统架构图
确定了产品使用思路之后,得出下面的架构图:
使用小程序的云开发,整个架构关系都是围绕用户来开展:
- 用户在入口文件index页面按了登录按钮同意授权个人信息之后,通过云函数login得到用户信息,同时把用户信息存到云数据库userInfo中。
- 用户必须在bodyinfo页面填写个人身体数据,然后才能进入到home页面。
- 在home页面将读取云数据库的trainingData(用户的训练数据)和totalDate(用户的训练总时长)展示用户自己的训练数据,对于新用户来说整个页面都是空的0数据。
- 用户点击“训练”按钮之后,就可以进到training页面,如果用户创建过训练计划,就可以看到选择的按钮,如果没有训练计划,用户必须先进入到createPlan页面,通过getPlan页面选择项目,点击showSelected页面可以看到已选项。
- 当用户计划创建提交后,新的训练计划内容将保存到云数据库里面的trainingPlan表中,然后小程序会自动跳转到selectPlan页面,用户就可以点击新创建的训练计划。
- 在点击训练计划之后,就要设置每一个训练项目的组数、重量和次数。在这里限定,最多只能设定4组,每组重量和次数最高99次(遵循轻重量,多组数的科学健身原则)。
- 在组数重量次数设定好以后,进入goTraining页面,系统开始计时,当用户点击某一个项目的“开始”按钮后,该分项也会单独开始计时,当点击“完成”按钮后,将产生该分项所耗费的时间。当最后一个分项完成时,系统自动把训练的内容数据以及日期存入云数据库的trainingData和totalDate中。
- 数值计算的工作都在小程序页面文件中完成,最后再统一上传到数据库中的各个表里。
功能代码展示
下面是通过循环把各分项的值取到并计算分项卡路里和总卡路里以及各项效率的代码片段:
代码片段·图一
不同的动作对应的卡路里计算公式略有不同。比如卧推的高度( h = bigArm + smallArm ) 大臂加小臂的长度,而深蹲的高度则是( h = body - shank )也就是身体长度减去小腿长度。
代码片段·图二
上面图二的代码,在计算卡路里时的取值就和图一的不同。当然,这样的计算方法,只是个参考值,如果能在后期加上穿戴设备的话,数值就更加精确了。
作品体验
未上线,所以大家请看下面演示视频。
团队简介
全名:陆俊龙
年龄:32
职业技能:熟练各类代码Hello World入门编写,有个阿里云ACP证,主业偏重聊需求、画原型、写云计算类文档。
参赛说明:
此项目我自己一人设计开发完成。因为自己喜欢健身,想把每次健身的数据记录下来,市面上现有的各类产品我认为设计的不够好,于是我就自己做了这个小程序。
并不擅长写代码,完全是拼积木一样的堆凑起来,没有任何框架或业界流行的软件方法,git都是这两天才学会的,所以代码部分很冗余,基本是按照“围绕产品需求”、“用面向过程的方法把代码堆积而成”,但设计的功能都实现了。
本人喜欢及擅长的部分是产品设计(需求画产品原型之类的)。所以此次参赛,是为了分享一个自己的产品理念,和广大同行探讨交流。此项目我还有很多改版升级重构使其商业化的想法,只是编程能力有限,今天就只能做到这了。
谢谢大家观看!
-完-