集成式移动应用程序,用于通过 PHP 生态系统和 React Native 控制和管理健身房个人活动





5.00/5 (1投票)
开发一个解决方案,通过一个简单的集成应用程序,使用 PHP 生态系统、React Native 和 Postgre 数据库,帮助用户和私人教练控制和跟踪健身房中的个人活动。
1. 引言
许多健身房会遇到一些问题,例如控制每个学生的特定训练、学生关于将要进行的锻炼的信息很少或没有信息、许多学生同时训练但教练很少,以及其他问题。
这些问题是由于内部流程缺乏标准化以及学生和教练使用过时的工具(例如纸质训练表)造成的。这意味着学生信息很少,因为只有口头指导会影响学习,而且由于纸质训练表通常尺寸很小,它们也无法提供有关正在进行的操作的大量信息。
另一个问题是,由于训练表是由纸制成的,因此它更容易受到使用环境条件的影响,因此,当学生专注于训练时,该表格会因直接接触地板或其他健身房的任何地方而损坏。
由于上述问题,教练对学生和学生表现的监督受到了很大影响。
在这种情况下,这项工作挑战在于,通过 Web 和移动技术,能够以一种实用且直观的方式自动化学院的内部流程并最大限度地提高学生的表现,从而用当前和创新的工具取代过时的工具。
2. 提议
本工作旨在开发一个 Web 平台和一个用于 Android 系统的移动应用程序,该应用程序获取学生的身体数据及其各自的训练表,以取代当前的纸质训练表,并方便学生理解他们的锻炼应该如何进行以及每个锻炼的预期结果,同时还旨在能够减少教练回答学生问题时的出勤竞争。
它还应使教练更容易以更个性化和详细的方式监控学生,以便他们的重点是监控学生在锻炼执行和身体评估方面的情况,从而最大限度地提高学生表现并降低风险。
应用程序中收集的数据将存储在 PostgreSQL
数据库(2021 年)中,应用程序与数据库之间的集成将通过使用 PHP7
.4 编程语言开发的 Web 服务以及通过 JSON
(JavaScript 对象表示法)进行通信来完成。
这项开发工作的需求是在该领域的专家合作以及在真实健身房进行的研究中收集的,以促进对身体评估和健美训练所需的知识。
作为对结果的验证,该应用程序将被置于真实环境中,学院学生将对开发的应用程序进行测试。通过这种互动,有望得出关于该提案的效率和实际效用的结论和观察。
3. 开发
为了开发 Web 平台,使用了 PHP
编程语言 7.4 版本,使用 Laravel 框架,遵循 MVC
(模型-视图-控制器)开发模式,并通过文档查阅Laravel Documentation
(2021 年)提供。对于移动应用程序的开发,使用了 React Native 框架 0.64 版本。
为此项工作开发,使用了以下支持工具
- PHPStorm(2021 年):Web 平台和移动应用程序的集成开发环境。
- Laravel 8.44:适用于 PHP7.4 语言开发的框架,用于 Web 和 Web 服务平台的开发。
- PostgreSQL(2021 年):用于存储持久性仪表板和移动应用程序信息的数据库。
- React Native 0.63.2:用于跨平台移动应用程序开发的框架。
- DBeaver 7.2:DBeaver 是一款 SQL 客户端软件应用程序和数据库管理工具。
- Git:分布式并发版本控制(SVC)系统。
- Bootstrap:一个开源库,用于使用 HTML、CSS 和 JavaScript 开发 Web 应用程序的用户界面组件,基于排版设计模板,以友好和响应式的方式提高用户体验。
在开发初期阶段,在真实的学院环境中进行了研究,以确定基本需求。
在此分析中,我们能够识别学生如何进行训练,他们需要教练跟进和指导的频率,以及教练为学生提供的服务的竞争情况。此外,我们还了解到学生如何进行训练以及可能阻碍他们表现的因素。
图 1 和图 2 展示了系统的简单用例图。第一个(图 1)描述了 Web 平台模块的主要功能和参与者;第二个(图 2)描述了移动应用程序模块。从这些图像中,我们可以根据所分析环境中的不同实际利益相关者,了解不同级别的访问权限和用户交互。
图 1 显示了用户通过 UML 用例图与界面进行交互。
通过本次分析,我们能够以满足基本需求和项目目标的方式,构建 Web 平台和移动应用程序之间参与者的主要功能和交互。
为了提供 Web 平台,使用了内置 PHP 7.4 和 Laravel 8.44 框架的服务器技术,通过 Artisan Serve 参数通过网络 IP 公开平台。这样,通过网络的 IP,就可以通过 HTTP(超文本传输协议)和 POST 请求方法与 Web 服务进行通信。在请求的标头中,会发送一个授权令牌,以便 Web 服务仅发送或接收来自系统中活动和已认证用户的数据。在请求返回时,使用 JSON 格式来组合 HTTP 响应的数据。
为了实现 Web 平台和移动应用程序的数据持久性,使用了 PostgreSQL
关系数据库技术(2021 年),这是一个基于
POSTGRES 版本 4.2 的对象关系数据库管理系统(SGBDOR),由加州大学伯克利分校计算机科学系开发。POSTGRES 在一些概念上是先驱,这些概念直到很久以后才在一些商业数据库系统中可用。
为了平台的整体用户体验,使用了 Bootstrap Framework
(2021 年)提供的视觉组件。通过这些组件,我们能够为平台实现现代而流畅的外观,并考虑了当前最先进的人机交互(IHC)标准。
图 3 展示了一个小型服务器结构图。该架构旨在以高效且低成本的方式支持 Web 和移动环境中的平台和应用程序。
基于此部署方案,需要注意的是,应用程序需要安装 Node.js 14.18 或更高版本,以及 NPM 和 EXPO CLI,以便安装 react-native-cli
来运行以下命令。此外,您还需要拥有运行 Android 或 IOS 或两者的原生代码的所有必要环境。如果您在设置环境方面需要帮助,只需按照本教程中的说明进行操作。
4. 结果
为健身房的学生和教练创建了一个 Web 平台和一个 Android 应用程序,他们可以在其中进行动态交互(图 4)。图 4 是一个站点地图图,用于展示功能(灰色)的 agrupamento,考虑到系统的不同模块(橙色)——Web 和应用程序——以及管理级别(蓝色)。
Web 模块更加完整。可以找到系统中所有实体管理功能。此模块的用户是健身房管理员和私人教练,他们各自拥有自己的操作,具体取决于访问控制。移动模块(应用程序)专门用于监控活动日志,主要通过签到和重新安排功能进行关注控制。
4.1. Web 模块
- Web 平台 GitHub 源代码 > https://github.com/RenanCardoso/training-core-painel
Web 平台是用于注册成为系统用户的学生和教练的工具,以及注册教练为学生进行的医疗评估。还可以注册健身计划、使用的设备、学生的训练表以及将组成这些训练的练习。只有已注册的用户才能访问 Web 平台,注册可以由另一位教练或系统管理员执行。创建帐户后,将拥有电子邮件和密码来访问平台,因此,进入系统后,用户将能够访问平台的所有模块,并能够管理已在平台内注册的所有用户、计划、设备、训练表和学生的医疗评估,如图 5 所示。
![]() | ![]() |
![]() | ![]() |
![]() | |
作为新学生在系统中注册后,由管理员负责的私人教练必须填写其医疗评估数据(图 5.b)。只有在此步骤之后,系统才允许其发布常规活动(图 5.e 和 5.f)、练习表等。
图 6 展示了对用户界面和 UX 功能的关注,这始终是系统设计的优先事项。在此图像(图 6)中,展示了一个完整的表单示例,管理员类型的用户在此输入学院学生的信息。在此页面上,还可以查询和修改学生数据,以及删除他们。
为了使系统通用且易于适应不同体育锻炼的实践背景,可以为每个运动员配置将应用的练习集。此功能(如图 7 所示)可由系统管理员和教练访问。管理员可以添加基本活动。教练可以包含特定于某些监控模式的特定练习。例如,物理治疗的独家活动,某种竞赛的强化训练等。
上传到系统中的身体练习(图 7)必须与训练表相关联,如图 9 所示。训练表独立于运动员。它是活动的集合,之后可以与治疗相关联,即与特定的学院学生相关联。
组装实践表后,可以将其定义为特定学生的活动集。健身房的学生可能在系统中有一个或多个训练标记处于活动状态。图 9 展示了学生及其日常训练表的关联过程。
在用户注册时,会告知用户是否是学生以及他是否可以访问应用程序,如果是,则将通过电子邮件向学生发送访问凭据。安装后,当使用收到的凭据进入应用程序时,学生将被重定向到应用程序的主屏幕,如图 5 所示,其中包含主要功能,例如
- 查看当天的训练
- 开始训练
- 进行锻炼
- 结束训练;以及
- 查看所有锻炼
注意:学生能够进行除当天训练之外的其他训练非常重要,因为您的训练策略和演变应该是易变的。
为了方便管理学生团队,系统实现了一个以统计数据为主要页面的仪表板(图 10)。
系统仍在发展中,并且已经计划构建更多的统计信息和图表,以方便控制和分析运动员身体状况的任务。
在当前版本中,此处理中包含的信息是
- 设备 - 系统中注册的设备数量;
- 教练 - 单元中的专业人士(私人教练)数量;
- 学生 - 系统中注册和活跃的学生人数;以及
- 控制评估 - 拥有最新医疗评估(在截止日期内)的学生人数。
4.2. 应用程序访问和用户视角
- 应用程序模块 GitHub 源代码 > https://github.com/RenanCardoso/training-core-app-v2
Android 应用程序是学生使用的移动应用程序,其主要目标是查看和进行构成训练表的锻炼。还可以查看学生训练表和医疗评估的其他数据(图 11)。
在登录系统后,健身房用户会立即看到他们的医疗评估数据。
在此报告中,用户基本上可以找到他们的测量值以进行确认和了解,例如体重、身高、体脂百分比、臂展、腰围等(图 11.b)。
接下来(图 11.c),用户可以查看他们的训练数据,包括常规(计划)和特定的(个人)数据。这些数据由私人教练根据监控计划和进化评估定期更改,通过网站模块使用管理访问。
图 11 中的屏幕截图序列演示了学生控制和检查活动的功能。
通过此界面,学生可以找到他们的活动脚本,还可以指示其实现或重新安排。通过这种交互,系统会在出现任何频率异常时通知负责活动的私人教练。
当日训练屏幕显示了当日训练的锻炼概览,以便学生能够以实用快捷的方式获取构成该锻炼的每项锻炼的信息。在此屏幕上,当开始锻炼时,还会显示一个与上一屏幕非常相似的列表,但在该列表中,您将获得有关如何执行每项锻炼的附加信息,以便学生更轻松地理解锻炼的执行。随着学生进行锻炼,他们可以(或不可以)单独填写该锻炼已完成,因为学生不能被限制在完成所有锻炼后才能结束训练,并且在完成训练后,将显示一条消息,告知该训练已成功完成。完成训练后,下一个训练将被标记为当日训练,从而实现学生训练的轮换,以避免他们进入稳态,并能够锻炼所有肌群,从而提高训练效率。
5. 结论
通过这项工作,我们可以探索使用 Laravel 技术进行 Web 编程的概念,并采用 MVC(模型-视图-控制器)架构来开发平台和 Web 服务。
这项工作还使得探索移动编程概念成为可能,通过 React Native 技术。开发过程中充满了挑战,但在工作的过程中,我了解了一些针对这种令人惊叹的跨平台开发解决方案的最佳实践,该解决方案仅使用 JavaScript 代码。
值得注意的是,这项工作突出了一些未来可以添加的要点,例如插入锻炼的照片和视频,以便当用户进行训练时,在锻炼可视化中,他们能够以清晰客观的方式更好地理解锻炼的执行,这将减少教练对学生进行监控的竞争。
致谢
本文是与一家真实的健身房公司合作进行的计算机科学学士学位最终项目实践活动的成果,为理解问题和后续验证结果提供了非常丰富的应用背景。
代码
- Web 平台 GitHub 源代码 > https://github.com/RenanCardoso/training-core-painel
- 应用程序模块 GitHub 源代码 > https://github.com/RenanCardoso/training-core-app-v2
参考文献
- Laravel 入门教程 [在线] 可访问:https://jonathasguerra.com.br/blog/introducao-ao-laravel-para-iniciantes-no-framework-php/,访问于 2021 年 6 月。
- 如何创建 PHP 和 JSON Web 服务 [在线] 可访问:http://sooho.com.br/2017/04/08/como-criar-um-webservice-com-php-e-json/,访问于 2021 年 5 月。
- React Native 系列:创建我们的应用程序的初步步骤 [在线] 可访问:https://movile.blog/react-native-series-primeiros-passos-para-criacao-do-nosso-aplicativo/,访问于 2021 年 5 月。
- 450 个健身房训练想法 | 训练练习 [在线] 可访问:https://br.pinterest.com/Cleidiane345vieira/treinos-para-academia/,访问于 2021 年 5 月。
- 健身和心智发展健身房指南 [在线] 可访问:https://www.blog.nadarte.com/materiais_gratuitos/guia-de-desenvolvimento-fisico-e-mental-na-academia/,访问于 2021 年 6 月。
- PostgreSQL 8.2.0 文档 [在线] 可访问:http://pgdocptbr.sourceforge.net/pg82/intro-whatis.html/,访问于 2021 年 7 月。
- Bootstrap 入门 [在线] 可访问:https://bootstrap.ac.cn/docs/5.0/getting-started/introduction/,访问于 2021 年 7 月。
历史
- 2021 年 9 月 30 日 - 文档创建
- 2021 年 10 月 1 日 - 文本修订,初稿
- 2021 年 10 月 4 日 - 修订和验证
- 2021 年 10 月 5 日 - 文档提交