一、项目介绍
本项目基于 Spring Boot 和 Vue 3 等技术,构建了一个现代化的健身房管理系统。系统采用前后端分离架构,旨在为健身房提供一个便捷、高效、智能的管理平台,支持管理员、教练和会员三大角色的不同功能需求,实现健身房运营的数字化转型。
系统整体分为三个层面:管理端、教练端与会员端,三种角色权限不同,具体功能如下:
- 管理端:实现会员管理、教练管理、课程管理、器材管理、公告管理、充值管理等功能,提升管理效率。
 - 教练端:实现课程管理、预约审核、个人信息管理等功能,帮助教练更好地开展工作。
 - 会员端:实现课程预约、健身打卡、个人信息管理、订单查询等功能,优化用户体验。
 
二、软件架构
系统架构

系统采用前后端分离架构:
- 后端技术:Java、SpringBoot、MyBatis Plus
 - 前端技术:Vue3、ElementUI、ECharts
 - 数据库:MySQL 8.0
 - 开发工具:IntelliJ IDEA、Navicat
 
三、系统功能

3.1 管理员功能
- 
个人信息管理:查看和修改个人信息,包括姓名、联系方式等基本信息。
 - 
密码管理:修改登录密码,保障账号安全。
 - 
健身房信息管理 :维护健身房基本信息,包括名称、会员数、教练数、联系方式、地址等,信息同步至用户端首页展示。

 - 
教练管理 :对教练进行增删改查操作,启用/停用教练账号、重置密码等。

 - 
会员管理 :对会员用户进行增删改查操作,包括查看会员信息、编辑会员信息、启用/停用会员账号、重置密码等。

 - 
健身知识管理 :发布、编辑、删除健身知识文章,丰富平台内容。

 - 
课程类型管理 :对课程类型进行字典值管理,新增、编辑、删除课程类型。

 - 
健身课程管理 :新增、编辑、删除健身课程,为课程分配教练,查看课程预约情况,对预约申请进行审核,查看课程的点赞、收藏数据,查看并管理课程评论。

 - 
器材类型管理:对器材类型进行字典值管理。
 - 
健身器材管理:管理健身房内的健身器材,包括新增、编辑、删除器材信息,查看器材状态等。
 - 
用户充值:给用户钱包进行充值操作,查看所有用户的充值记录。
 - 
公告管理:新增、编辑、查看公告详情,对公告进行启用、停用操作,控制公告的展示状态。
 
3.2 教练功能
- 个人信息管理:查看和修改个人信息,包括姓名、联系方式、从业经验、擅长项目等基本信息。
 - 密码管理:修改登录密码,保障账号安全。
 - 健身知识查看:查看管理员发布的健身知识文章。
 - 健身课程管理:查看自己的课程信息,包括课程名称、时间、地点、难度等信息;查看课程的预约情况,对预约申请进行审核(同意/拒绝预约、同意/拒绝取消预约);查看课程的点赞、收藏数据;查看并删除课程评论。
 - 健身器材查看:查看健身房内的器材信息和状态。
 - 公告查看:查看管理员发布的公告信息。
 
3.3 会员功能
- 
注册和登录:通过账号密码注册和登录会员端系统。
 - 
个人信息管理:查看和修改个人信息,包括姓名、联系方式等基本信息,支持上传个人头像。
 - 
密码管理:修改登录密码,保障账号安全。
 - 
首页 :查看健身房的基本信息,包括健身房名称、会员数量、教练数量、联系方式及详细地址等。

 - 
健身知识 :查看管理员发布的健身知识文章,学习健身知识和技巧。

 - 
健身器材 :查看健身房内的器材信息,了解器材的使用方法和注意事项。

 - 
教练团队 :查看所有教练的信息,包括教练的姓名、照片、专业领域、教学风格等。

 - 
健身课程 :查看所有课程信息,包括课程名称、教练、时间、难度、类型等;对感兴趣的课程可以进行预约操作;可以对课程进行点赞、收藏和留言操作。


 - 
健身打卡 :在日历上进行健身打卡,记录每次健身的心率、消耗的卡路里等信息;打卡可以与课程关联;系统会统计打卡信息并以折线图等形式展示。


 - 
公告 :查看管理员发布的公告。

 - 
个人中心:
- 
我的钱包 :查看钱包余额、查看充值记录和消费记录。

 - 
我的订单 :查看自己的课程预约订单、取消订单、查看订单状态。

 
 - 
 
四、课程预约流程说明
课程预约是系统的核心功能之一,流程如下:

- 
预约前检查:
- 判断该课程是否需要预约(如果不需要预约,直接可参与课程)
 - 判断用户是否已预约过该课程,避免重复预约
 - 判断用户钱包余额是否足够支付课程费用
 - 判断课程预约名额是否已满
 - 判断是否超过最迟预约时间
 
 - 
预约状态流转:
- 已预约:用户预约课程并付款成功后,订单进入"已预约"状态
 - 预约成功:管理员或教练同意预约后,订单进入"预约成功"状态
 - 已拒绝:管理员或教练拒绝预约后,订单进入"已拒绝"状态,费用原路退还
 - 已取消:用户取消预约或教练同意取消后,订单进入"已取消"状态,费用原路退还
 - 线下处理:教练不同意取消预约时,订单进入"线下处理"状态
 
 
五、数据库设计

5.1 主要数据表
| 表名 | 说明 | 功能 | 
|---|---|---|
| tbl_user | 用户信息表 | 保存用户基本信息 | 
| tbl_user_member | 会员信息表 | 存储会员详细信息 | 
| tbl_user_coach | 教练信息表 | 存储教练信息 | 
| tbl_notice | 公告信息表 | 存储公告信息 | 
| tbl_file | 文件信息表 | 存储文件信息 | 
| g_knowledge | 知识信息表 | 存储健身知识信息 | 
| g_gym | 健身房信息表 | 存储健身房信息 | 
| g_equipment | 健身设备信息表 | 存储健身设备信息 | 
| g_dict | 字典信息表 | 存储课程类型和健身器材类型 | 
| g_deposit | 消费记录表 | 存储充值及消费信息 | 
| g_classes_order | 预约表 | 存储课程预约信息 | 
| g_classes_comments | 评论表 | 存储课程评论 | 
| g_classes_collect | 收藏点赞表 | 存储课程收藏和点赞信息 | 
| g_classes | 健身课程表 | 存储健身课程信息 | 
| g_card | 健身打卡表 | 存储健身打卡信息 | 
六、安装教程
6.1 环境要求
- JDK 1.8+
 - Maven 3.6+
 - MySQL 8.0+
 - Node.js 16+
 - IntelliJ IDEA
 
6.2 后端部署
- 使用 Navicat 或其他工具,在 MySQL 中创建对应名称的数据库,并执行项目的 SQL 文件
 - 使用 IntelliJ IDEA 导入 
gym-server项目 - 配置 Maven 信息,等待依赖下载完成
 - 修改 
application.yml里面的数据库配置以及文件下载地址等配置 - 运行 
GymApplication.java启动后端服务 
6.3 前端部署
管理端 (gym-admin)
            
            
              bash
              
              
            
          
          cd gym-admin
npm install
npm run dev
        会员端 (gym-web)
            
            
              bash
              
              
            
          
          cd gym-web
npm install
npm run dev
        执行成功后会显示访问地址,在浏览器中分别访问管理端和用户端地址即可。
七、工程目录结构
gym/
├── gym-server/          # 后端服务目录
│   └── src/
│       └── main/
│           ├── java/    # Java 源代码
│           └── resources/  # 配置文件
├── gym-admin/           # 管理端前端
│   └── src/
├── gym-web/             # 会员端前端
│   └── src/
└── README.md            # 项目说明文档
        八、开发说明
8.1 开发环境
- 操作系统:Windows 11
 - 处理器:AMD Ryzen 5 4600H
 - 内存:16G
 - 开发工具:IntelliJ IDEA、Navicat
 
8.2 技术实现
系统采用前后端分离架构:
- 用户在前端界面(由 Vue.js 构建)进行操作
 - 前端通过 HTTP 请求将数据发送到后端
 - Spring Boot 接收请求并执行对应的处理方法
 - 处理方法与 MySQL 数据库进行交互
 - 处理完成后,Spring Boot 创建并返回响应对象
 - 前端接收响应并通过 Vue.js 动态渲染页面内容及数据可视化结果
 
九、文件路径配置
如果需要迁移文件路径,可使用以下 SQL 脚本:
            
            
              sql
              
              
            
          
          -- 统一路径分隔符
UPDATE tbl_file SET file_path = REPLACE(file_path, "\\", "/");
-- 替换文件路径前缀(根据实际情况修改)
UPDATE tbl_file SET file_path = 
    REPLACE(file_path, "旧路径", "新路径");
        十、系统特点
- 前后端分离:采用前后端分离架构,提高开发效率和系统可维护性
 - 角色权限清晰:管理员、教练、会员三大角色权限明确,功能完整
 - 业务流程规范:课程预约流程规范化,减少纠纷和冲突
 - 数据可视化:通过 ECharts 图表展示统计数据,直观清晰
 - 用户体验优化:界面简洁美观,操作流程顺畅
 
需要源码或者定制的小伙伴可私信联系哦~