基于SpringBoot+Vue的健身房管理系统

一、项目介绍

本项目基于 Spring Boot 和 Vue 3 等技术,构建了一个现代化的健身房管理系统。系统采用前后端分离架构,旨在为健身房提供一个便捷、高效、智能的管理平台,支持管理员、教练和会员三大角色的不同功能需求,实现健身房运营的数字化转型。

系统整体分为三个层面:管理端、教练端与会员端,三种角色权限不同,具体功能如下:

  1. 管理端:实现会员管理、教练管理、课程管理、器材管理、公告管理、充值管理等功能,提升管理效率。
  2. 教练端:实现课程管理、预约审核、个人信息管理等功能,帮助教练更好地开展工作。
  3. 会员端:实现课程预约、健身打卡、个人信息管理、订单查询等功能,优化用户体验。

二、软件架构

系统架构

系统采用前后端分离架构:

  • 后端技术:Java、SpringBoot、MyBatis Plus
  • 前端技术:Vue3、ElementUI、ECharts
  • 数据库:MySQL 8.0
  • 开发工具:IntelliJ IDEA、Navicat

三、系统功能

3.1 管理员功能

  1. 个人信息管理:查看和修改个人信息,包括姓名、联系方式等基本信息。

  2. 密码管理:修改登录密码,保障账号安全。

  3. 健身房信息管理 :维护健身房基本信息,包括名称、会员数、教练数、联系方式、地址等,信息同步至用户端首页展示。

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

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

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

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

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

  9. 器材类型管理:对器材类型进行字典值管理。

  10. 健身器材管理:管理健身房内的健身器材,包括新增、编辑、删除器材信息,查看器材状态等。

  11. 用户充值:给用户钱包进行充值操作,查看所有用户的充值记录。

  12. 公告管理:新增、编辑、查看公告详情,对公告进行启用、停用操作,控制公告的展示状态。

3.2 教练功能

  1. 个人信息管理:查看和修改个人信息,包括姓名、联系方式、从业经验、擅长项目等基本信息。
  2. 密码管理:修改登录密码,保障账号安全。
  3. 健身知识查看:查看管理员发布的健身知识文章。
  4. 健身课程管理:查看自己的课程信息,包括课程名称、时间、地点、难度等信息;查看课程的预约情况,对预约申请进行审核(同意/拒绝预约、同意/拒绝取消预约);查看课程的点赞、收藏数据;查看并删除课程评论。
  5. 健身器材查看:查看健身房内的器材信息和状态。
  6. 公告查看:查看管理员发布的公告信息。

3.3 会员功能

  1. 注册和登录:通过账号密码注册和登录会员端系统。

  2. 个人信息管理:查看和修改个人信息,包括姓名、联系方式等基本信息,支持上传个人头像。

  3. 密码管理:修改登录密码,保障账号安全。

  4. 首页 :查看健身房的基本信息,包括健身房名称、会员数量、教练数量、联系方式及详细地址等。

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

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

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

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

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

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

  11. 个人中心

    • 我的钱包 :查看钱包余额、查看充值记录和消费记录。

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

四、课程预约流程说明

课程预约是系统的核心功能之一,流程如下:

  1. 预约前检查

    • 判断该课程是否需要预约(如果不需要预约,直接可参与课程)
    • 判断用户是否已预约过该课程,避免重复预约
    • 判断用户钱包余额是否足够支付课程费用
    • 判断课程预约名额是否已满
    • 判断是否超过最迟预约时间
  2. 预约状态流转

    • 已预约:用户预约课程并付款成功后,订单进入"已预约"状态
    • 预约成功:管理员或教练同意预约后,订单进入"预约成功"状态
    • 已拒绝:管理员或教练拒绝预约后,订单进入"已拒绝"状态,费用原路退还
    • 已取消:用户取消预约或教练同意取消后,订单进入"已取消"状态,费用原路退还
    • 线下处理:教练不同意取消预约时,订单进入"线下处理"状态

五、数据库设计

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 后端部署

  1. 使用 Navicat 或其他工具,在 MySQL 中创建对应名称的数据库,并执行项目的 SQL 文件
  2. 使用 IntelliJ IDEA 导入 gym-server 项目
  3. 配置 Maven 信息,等待依赖下载完成
  4. 修改 application.yml 里面的数据库配置以及文件下载地址等配置
  5. 运行 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 技术实现

系统采用前后端分离架构:

  1. 用户在前端界面(由 Vue.js 构建)进行操作
  2. 前端通过 HTTP 请求将数据发送到后端
  3. Spring Boot 接收请求并执行对应的处理方法
  4. 处理方法与 MySQL 数据库进行交互
  5. 处理完成后,Spring Boot 创建并返回响应对象
  6. 前端接收响应并通过 Vue.js 动态渲染页面内容及数据可视化结果

九、文件路径配置

如果需要迁移文件路径,可使用以下 SQL 脚本:

sql 复制代码
-- 统一路径分隔符
UPDATE tbl_file SET file_path = REPLACE(file_path, "\\", "/");

-- 替换文件路径前缀(根据实际情况修改)
UPDATE tbl_file SET file_path = 
    REPLACE(file_path, "旧路径", "新路径");

十、系统特点

  1. 前后端分离:采用前后端分离架构,提高开发效率和系统可维护性
  2. 角色权限清晰:管理员、教练、会员三大角色权限明确,功能完整
  3. 业务流程规范:课程预约流程规范化,减少纠纷和冲突
  4. 数据可视化:通过 ECharts 图表展示统计数据,直观清晰
  5. 用户体验优化:界面简洁美观,操作流程顺畅

需要源码或者定制的小伙伴可私信联系哦~

相关推荐
程序员爱钓鱼7 小时前
Python编程实战 - 面向对象与进阶语法 - 异常类型与捕获
后端·python·ipython
程序员爱钓鱼7 小时前
Python编程实战 - 面向对象与进阶语法 - 类方法与静态方法
后端·python
鬼火儿8 小时前
MySQL系列之数据类型(String)
java·后端
程序新视界8 小时前
MySQL的隔离级别及其工作原理详解
数据库·后端·mysql
IT_陈寒8 小时前
Redis 7.0的这个新特性让我处理百万级QPS轻松了50%,你可能还不知道!
前端·人工智能·后端
蓝-萧8 小时前
【Java】如何使用jdbc连接并操作MySQL,一文读
java·后端
qianbailiulimeng8 小时前
【MySQL】mysqldump使用方法
java·后端
李慕婉学姐8 小时前
Springboot微信小程序在线考试系统w47h61gy(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·微信小程序
Victor3568 小时前
Redis(102)Redis的单线程性能为什么这么高?
后端