【计算机毕设】基于Spring_Boot_Vue的马拉松报名与选手成绩追踪系统05445

摘 要

  随着全民健身热潮的兴起,马拉松赛事在国内呈现爆发式增长,传统的人工报名与成绩管理模式已难以满足大规模赛事的运营需求。为解决报名信息混乱、成绩查询滞后、赛事管理效率低下等问题,本研究设计并实现了一套马拉松报名与选手成绩追踪系统。

  系统采用前后端分离架构,后端基于SpringBoot框架搭建,利用其快速开发与便捷集成的特性处理业务逻辑;前端使用Vue框架构建用户界面,提升交互体验;数据存储采用MySQL数据库,确保赛事信息、报名记录、成绩数据的安全性与一致性。系统面向观众、选手、管理员、报名审核员及成绩录入员五类角色,开发了赛事资讯浏览、在线报名缴费、成绩查询与证书下载、异议反馈处理、退费转让申请等核心功能模块。通过智能推荐算法为用户推送个性化赛事,采用协同过滤技术提升用户体验;在关键业务环节引入异步通知与事务机制,保障数据准确性与流程可靠性。

  实际应用表明,系统实现了马拉松赛事从报名到赛后成绩追踪的全流程数字化管理,有效减轻了运营人员的工作负担,提升了选手的参赛体验与信息获取效率。系统的实施为赛事组织者提供了高效的管理工具,也为同类体育赛事信息化建设提供了可参考的解决方案。

**关键词:**马拉松报名;成绩追踪;SpringBoot;Vue;协同过滤

Abstract

  With the rise of the nationwide fitness trend, marathon events have experienced explosive growth in China. Traditional manual registration and score management models have become inadequate to meet the operational needs of large-scale events. To address issues such as chaotic registration information, delayed score inquiries, and inefficient event management, this study has designed and implemented a marathon registration and athlete score tracking system.

  The system adopts a front-end and back-end separation architecture. The back-end is built based on the SpringBoot framework, leveraging its rapid development and convenient integration features to handle business logic. The front-end uses the Vue framework to build the user interface, enhancing the interactive experience. Data is stored in a MySQL database to ensure the security and consistency of event information, registration records, and performance data. The system caters to five roles: spectators, participants, administrators, registration reviewers, and score inputters. It has developed core functional modules such as event information browsing, online registration and payment, score inquiry and certificate download, objection feedback handling, and refund and transfer applications. Personalized events are pushed to users through intelligent recommendation algorithms, and collaborative filtering technology is employed to enhance user experience. Asynchronous notifications and transaction mechanisms are introduced in key business processes to ensure data accuracy and process reliability.

  Practical application has shown that the system has achieved full-process digital management of marathon events, from registration to post-race results tracking. It effectively reduces the workload of operational staff and enhances the participants' experience and information acquisition efficiency. The implementation of the system provides efficient management tools for event organizers and offers a reference solution for the informatization construction of similar sports events.

**Keywords:**marathon registration; performance tracking; SpringBoot; Vue;collaborative filtering

目 录

[摘 要](#摘 要)
Abstract
[第1章 绪论](#第1章 绪论)
[1.1 选题背景](#1.1 选题背景)
[1.2 研究目的及意义](#1.2 研究目的及意义)
[1.3 国内外研究现状](#1.3 国内外研究现状)
[1.3.1 国外研究现状](#1.3.1 国外研究现状)
[1.3.2 国内研究现状](#1.3.2 国内研究现状)
[1.3.3 国内外研究小结](#1.3.3 国内外研究小结)
[1.4 研究内容](#1.4 研究内容)
[第2章 相关技术介绍](#第2章 相关技术介绍)
[2.1 系统开发及运行环境](#2.1 系统开发及运行环境)
[2.2 开发技术](#2.2 开发技术)
[2.2.1 Java语言](#2.2.1 Java语言)
[2.2.2 SpringBoot框架](#2.2.2 SpringBoot框架)
[2.2.3 JavaScript](#2.2.3 JavaScript)
[2.2.4 MySQL数据库](#2.2.4 MySQL数据库)
[2.3 开发工具](#2.3 开发工具)
[2.3.1 Navicat](#2.3.1 Navicat)
[2.3.2 IntelliJ IDEA](#2.3.2 IntelliJ IDEA)
[第3章 系统分析](#第3章 系统分析)
[3.1 需求分析](#3.1 需求分析)
[3.1.1 业务需求分析](#3.1.1 业务需求分析)
[3.1.2 功能需求分析](#3.1.2 功能需求分析)
[3.1.3 性能需求分析](#3.1.3 性能需求分析)
[3.2 系统可行性](#3.2 系统可行性)
[3.2.1 技术可行性](#3.2.1 技术可行性)
[3.2.2 操作可行性](#3.2.2 操作可行性)
[3.2.3 经济可行性](#3.2.3 经济可行性)
[第4章 系统设计](#第4章 系统设计)
[4.1 系统架构设计](#4.1 系统架构设计)
[4.2 总体功能设计](#4.2 总体功能设计)
[4.3 系统流程设计](#4.3 系统流程设计)
[4.3.1 智能推荐模块](#4.3.1 智能推荐模块)
[4.3.2 选手报名模块](#4.3.2 选手报名模块)
[4.3.3 在线支付与退费模块](#4.3.3 在线支付与退费模块)
[4.3.4 成绩录入与发布模块](#4.3.4 成绩录入与发布模块)
[4.3.5 异议反馈处理模块](#4.3.5 异议反馈处理模块)
[4.4 数据库设计](#4.4 数据库设计)
[4.4.1 数据库概念设计](#4.4.1 数据库概念设计)
[4.4.2 数据库逻辑设计](#4.4.2 数据库逻辑设计)
[第5章 系统实现](#第5章 系统实现)
[5.1 系统实现环境](#5.1 系统实现环境)
[5.2 观众用户功能实现](#5.2 观众用户功能实现)
[5.2.1 赛事资讯浏览实现](#5.2.1 赛事资讯浏览实现)
[5.2.2 赛事信息查看实现](#5.2.2 赛事信息查看实现)
[5.3 选手用户功能实现](#5.3 选手用户功能实现)
[5.3.1 在线报名实现](#5.3.1 在线报名实现)
[5.3.2 成绩查询实现](#5.3.2 成绩查询实现)
[5.3.3 异议反馈实现](#5.3.3 异议反馈实现)
[5.4 管理员功能实现](#5.4 管理员功能实现)
[5.4.1 赛事信息管理实现](#5.4.1 赛事信息管理实现)
[5.4.2 退费转让管理实现](#5.4.2 退费转让管理实现)
[5.5 报名审核员功能实现](#5.5 报名审核员功能实现)
[5.5.1 报名审核实现](#5.5.1 报名审核实现)
[5.6 成绩录入员功能实现](#5.6 成绩录入员功能实现)
[5.6.1 成绩录入实现](#5.6.1 成绩录入实现)
[5.6.2 异议反馈回复实现](#5.6.2 异议反馈回复实现)
[第6章 系统测试](#第6章 系统测试)
[6.1 测试目的](#6.1 测试目的)
[6.2 测试方法](#6.2 测试方法)
[6.3 测试内容](#6.3 测试内容)
[6.4 测试结论](#6.4 测试结论)
[结 论](#结 论)
参考文献
[致 谢](#致 谢)
第1章 绪论

1.1 选题背景

  这两年国内马拉松赛事真是火得一塌糊涂。在2024年,全国路跑赛事数量超过六百场,参赛人次逼近七百万,北京上海武汉无锡这些热门马拉松报名人数动不动就突破十万,中签率屡创新低。马拉松早已不再是专业运动员的小众项目,而是成了大众健身社交的新潮流,朋友圈晒完赛奖牌、跑步打卡成了不少人的日常1。可赛事规模上去了,问题也跟着来了。我身边就有跑友吐槽过,有的比赛报名还得填纸质表现场缴费,跑完几个月成绩查不到,证书下载链接都失效了。更别提那些临时变更路线、领物通知发短信漏人的情况2。说白了,赛事组织还停留在靠人盯人、打电话、发邮件的传统方式上,碰上几万人的大赛,工作人员累得够呛,跑友体验也打折扣。移动支付早就普及了,大家也习惯手机上办各种事,可马拉松报名这块,好多小赛事连个像样的线上系统都没有。这就好比大家都开上新能源车了,你还在用马车拉货,明显跟不上节奏3。开发一套好用的报名和成绩追踪系统,已经不是锦上添花,而是赛事组织者的刚需。

1.2 研究目的及意义

  这套系统的意义,往大了说,是给国内马拉松赛事组织提供一套能直接拿来用的数字化工具。以前赛事公司想搞信息化,要么花大价钱找外包定制,要么用通用活动报名平台凑合,功能跟马拉松场景根本不搭边。我们这套系统从实际需求出发,覆盖了从选手报名、缴费、审核到成绩录入、证书下载的全过程,等于把赛事前后台打通了。对跑友来说,最直观的好处就是省心省力,手机上点几下就能搞定报名,跑完第一时间查到成绩晒朋友圈,有异议还能在线申诉,不用来回打电话扯皮。对赛事组织方,系统带来的价值更实在。报名审核员不用再对着Excel表格一个个核对身份证和体检报告,成绩录入员也不用熬夜敲键盘录入几千条数据,系统批量导入自动校验,出错率低得多。管理员在后台看一眼图表,就能掌握报名进度、退费情况、异议处理状态,心里有底。往长远看,这套系统积累下来的数据更有想象空间。哪类赛事最受欢迎,选手来自哪些地区,完赛率跟天气有什么关系,这些以前凭感觉猜的东西,现在有了数据支撑,赛事运营就能做得更精细。说到底,这套系统不是要搞什么高大上的黑科技,而是踏踏实实帮跑友和组织者解决实际问题,让办赛更顺畅,让参赛更舒心。

1.3 国内外研究现状

1.3.1 国外研究现状

  国外马拉松赛事信息化起步较早,已经形成相当成熟的商业模式和技术体系。美国跑友报名平台RunSignup就是典型代表,这个成立于2010年的平台服务超过三万个赛事,年处理参赛者超过一千一百万人次,从报名缴费、慈善募捐到现场计时全套搞定。他们开发的RaceDay实时追踪技术,让跑友家人朋友能在手机上实时查看选手跑到哪个位置,预估完赛时间,这技术连芝加哥马拉松这样的顶级赛事都在用。欧洲那边也不甘落后,像柏林马拉松的线上平台,除了基础报名功能,还整合了历年成绩数据库,跑友可以把自己不同年份的成绩拉出来对比分析4。

  更前沿的是学术圈的探索,有研究提出了RunX跨赛事排名系统,尝试把选手在不同比赛的成绩放到一起比较,考虑赛道难度、参赛密度、认证级别这些因素,给业余跑者一个更公平的横向对比维度。日本在社区跑团数字化方面走得挺远,东京很多跑团用专门的管理平台,教练能实时看队员训练数据,谁偷懒了谁练过头了一目了然,还能自动提醒补水防中暑5。牙买加的Sigma Run今年刚升级了MyLaps技术,选手冲线瞬间就有视频回放,输入号码布就能看自己冲线的英姿,发朋友圈素材都不用自己拍6。还有大麦网把人脸识别技术用到了马拉松领物环节,刷个脸就能进场,再也不用担心号码布被别人冒用。总的来说,国外已经从单一的报名工具,进化到覆盖训练、参赛、社交、数据分析的完整生态,技术成熟度确实高。

1.3.2 国内研究现状

  国内马拉松赛事信息化这些年发展也很快,但整体还在追赶阶段。北京马拉松、上海马拉松这些头部赛事,报名系统已经挺像样了,上马App能查成绩下载证书,还能看赛道拥堵热力图,哪个路段人多心里有数。武汉马拉松2025年报名人数干到四十五万,系统扛住了瞬时流量冲击,说明技术架构确实下功夫了。杭州马拉松在风险治理上做了不少探索,利用数字技术监控赛道安全,选手出现心率异常或者长时间不动,后台能及时预警7。但问题也很明显,除了这几个头部赛事,大量中小城市马拉松还在用通用活动平台凑合,或者干脆外包给个小公司做个简陋网站,报名填表体验差,查成绩得等半个月8。跑团数字化更是刚起步,很多俱乐部还在用微信群接龙报名,教练发训练计划靠截图,跑友打卡靠发朋友圈然后截屏汇报,数据都散落在各个聊天记录里,没法系统分析9。智能推荐方面,国内赛事平台基本还停留在按热度排序的阶段,真正基于用户行为做个性化推荐的很少。成绩数据分析更是空白,跑友跑完只能看到自己的枪声成绩和排名,至于配速曲线怎么样、后半程掉没掉速、跟同龄人比处在什么水平,这些都没法知道10。像国外那种把基普乔格的分段数据拿出来分析,帮业余跑者找差距的做法,国内还很少见。不过这几年也在进步,无锡马拉松开始尝试区块链存证成绩证书,防伪防篡改;厦门马拉松搞了虚拟跑,线上赛和线下赛联动。但总体而言,国内赛事信息化存在明显的两极分化,头部越来越强,腰部以下差距拉大,训练和赛后数据分析这两个环节尤其薄弱。

1.3.3 国内外研究小结

  国内外马拉松赛事信息化呈现出不同发展路径:国外从报名工具起步,已构建起覆盖训练、参赛、社交、数据分析的完整生态,技术成熟且商业化程度高;国内头部赛事快速追赶,在报名系统、风险监控等方面取得突破,但大量中小赛事仍处于信息化初级阶段,训练数字化和赛后数据分析尤为薄弱。本系统聚焦报名与成绩追踪核心环节,既借鉴国外成熟经验,又立足国内实际需求,填补中小赛事数字化空白,具有现实应用价值。

1.4 研究内容

  本文首先概述马拉松报名与选手成绩追踪系统的开发背景,深入剖析当前马拉松赛事中报名流程繁琐、成绩查询滞后、审核效率低下以及多角色协同混乱等实际痛点,并简要介绍系统选用的SpringBoot、Vue及MySQL等核心技术栈。在此基础上,针对观众、选手、管理员、报名审核员、成绩录入员五类角色展开详尽的用户需求分析,明确各角色的功能边界与业务流程,完成系统架构设计与数据库建模,确保数据结构的规范性与扩展性。随后,重点论述系统实现的具体方法,依据业务需求将整体架构划分为前台用户端与后台多级管理端两大核心板块。在前期准备就绪后,对核心功能模块进行二次细分,拆解为智能推荐、在线报名、支付退费、成绩录入、异议反馈、审核流转等业务清晰的子模块。最后,通过集成组装各子模块,开展单元测试、集成测试与压力测试,验证各部分功能的稳定性、逻辑正确性及模块间的低耦合性,确保系统能够高效稳定运行,真正为赛事组织者减负增效,为参赛选手提供便捷可靠的数字化参赛体验。

第2章 相关技术介绍

2.1 系统开发及运行环境

  系统基于SpringBoot框架进行开发,为确保系统开发、测试及稳定运行,需满足以下软硬件环境要求:

  系统部署与运行环境为Windows 10操作系统,处理器采用Intel Core i5-13600KF,配备16GB内存,硬盘可用空间不低于500GB。开发阶段需配置JDK 1.8 及以上版本,数据库采用MySQL 5.6以上,开发工具选用IntelliJ IDEA。系统前端页面兼容主流浏览器,推荐使用Google Chrome 浏览器进行访问与测试,同时需保持稳定的网络连接,具体开发及运行环境配置如下表所示。

表2-1 环境配置表表

配置项 环境要求
操作系统 Windows 10(64位)
处理器 Intel Core i5-13600KF
内存 16GB RAM 或更高
硬盘空间 500GB 可用空间
Java开发环境 JDK 1.8 或以上版本
技术框架 springboot
数据库系统 MySQL 5.6以上
数据库管理工具 Navicat
开发工具 IntelliJ IDEA
浏览器 Google Chrome(最新版本)
网络环境 稳定的互联网连接

2.2 开发技术

  该系统采用当前主流的B/S(Browser/Server)架构模式进行设计与开发,整体技术栈以Java语言为核心,结合SpringBoot框架构建稳定高效的后端服务,利用JavaScript实现灵活的前端交互,借助MySQL保障数据持久化存储,配合IntelliJ IDEA与Navicat等专业工具,形成了一套成熟、可靠的技术实现方案,能够快速构建一个功能完整、结构清晰、易于维护的Web应用系统,全面支撑系统的各项功能需求。

2.2.1 Java语言

  Java最为一种广泛应用于企业级系统开发的面向对象编程语言,具备良好的跨平台能力、清晰的语法结构以及强大的生态系统,得益于其"一次编写,随处运行"的特性,Java能够在不同操作系统上稳定执行,极大提升了软件的可移植性。同时,Java拥有成熟的开发框架、丰富的类库支持以及活跃的技术社区,为复杂系统的构建提供了有力保障11。由于在安全性、稳定性和并发处理能力方面的突出表现,Java特别适用于对可靠性要求较高的后端服务开发。在本系统中,Java作为基础编程语言,主要用于实现核心业务逻辑的编码、数据对象的封装以及异常情况的统一处理,有效支撑了系统的模块化设计与长期可维护性,为整体架构的稳健运行提供了坚实的技术基础12。

2.2.2 SpringBoot框架

  SpringBoot是基于Spring生态的现代化轻量级框架,旨在提升企业级 Java 应用的开发效率,降低项目初始化与配置的复杂度。该框架通过自动配置机制、起步依赖以及内嵌式 Web 服务器(如 Tomcat)等特性,有效减少了传统 Spring 项目中大量冗余的 XML 配置文件,使开发者能够更专注于业务逻辑的实现,实现应用的快速搭建、开发与部署13。在本系统中,SpringBoot 作为后端核心框架,承担了整体服务的构建与集成任务为系统的稳定性、可维护性与可扩展性提供了有力支撑。基于其模块化特性,系统实现了RESTful风格的接口设计,统一管理项目依赖,并集成了用户认证、安全控制、业务逻辑处理、数据访问等多个功能组件,同时通过整合Spring Security框架,系统完成了用户身份认证、权限分级控制等安全机制的实现;在数据持久化方面,结合Spring Data JPA或 MyBatis技术,高效完成数据库的增删改查操作,提升了数据交互的灵活性与可维护性14。

2.2.3 JavaScript

  JavaScript是一种轻量级的脚本语言,通常用于网页开发,使开发者能够为网页增添动态效果和用户交互功能,配合前端框架(如jQuery、Vue.js或React)使用,可以构建现代的响应式网页应用15。它运行在浏览器端,能够响应用户操作、操作DOM元素、发送异步请求(AJAX),实现页面无刷新更新。在本系统中,JavaScript用于表单验证、页面跳转控制、数据动态加载等功能,增强用户操作体验。前端页面通过HTTP请求与后端API进行数据交互,实现前后端分离或半分离的开发模式,保证系统的可扩展性与响应速度16。

2.2.4 MySQL数据库

  MySQL遵循标准SQL语言规范,支持事务处理(ACID特性)、数据完整性约束以及多用户并发访问控制,能够有效支撑复杂的数据查询、更新操作与业务逻辑处理,是当前后端数据持久化存储的主流技术之一17。在本系统中,MySQL承担核心数据的存储与管理功能,用于持久化保存包括用户账户信息、项目数据及系统配置等关键业务数据。通过合理的表结构设计、索引优化与事务管理机制,确保了数据在读写过程中的准确性、一致性和安全性,为系统的稳定运行提供了可靠的数据支撑18。

2.3 开发工具

  Navicat是一款强大的数据库管理和开发工具,支持MySQL、Oracle、SQL Server等多种数据库,能够提供直观的图形化界面,可用于数据库设计、SQL编辑、数据同步、备份与恢复等操作19。在本系统开发过程中,Navicat用于数据库建模、数据调试和日常维护,提升数据库操作效率。

2.3.2 IntelliJ IDEA

  IntelliJ IDEA是由JetBrains公司开发的Java集成开发环境,被誉为"最智能的IDE",具备强大的代码提示、重构、调试、版本控制集成(Git/SVN)和插件扩展能力,特别适合SpringBoot等现代Java项目的开发20。在本系统中,IntelliJ IDEA作为主要开发工具,提供了从项目创建、编码、测试到部署的全流程支持,极大提升了开发效率与代码质量。

第3章 系统分析

3.1 需求分析

3.1.1 业务需求分析

  系统旨在构建一个高效、透明的马拉松赛事全流程管理平台,解决传统模式下报名繁琐、成绩发布滞后及互动缺失等痛点。业务核心覆盖"赛前报名、赛中追踪、赛后服务"全生命周期,连接观众、选手、管理员、审核员及录入员五类角色。

  通过系统实现赛事信息的精准推送与智能推荐,优化选手从注册、缴费到成绩查询的一站式体验。同时,建立严格的分级权限体系,规范报名审核与成绩录入流程,确保数据真实公平。此外,集成异议反馈与退费转让机制,提升赛事服务满意度。最终,通过可视化数据统计辅助运营决策,推动马拉松赛事管理的规范化、智能化与服务化升级,打造充满活力的体育生态圈。

3.1.2 功能需求分析

  选手用户功能需求

  选手用户端专注于赛事参与与成绩追踪,支持在线报名、缴费、成绩查询及异议反馈,实现从报名参赛到赛后复盘的系统化管理。

  前台首页:作为与系统交互的窗口,展示通知中心、热门赛事推荐及互动入口,方便选手快速获取关键信息。

  赛事信息:提供赛事检索、详情浏览、互动收藏及智能填单报名功能,支持选手全流程在线参赛。

  个人中心:集成个人资料修改(含健康证明上传)、密码管理、收藏记录、点赞记录及评论管理,维护账号安全与互动痕迹。

  报名记录:查看历史及当前的报名申请状态(待审核/已通过/未通过),支持发起退费转让申请,查看审核进度。

  成绩信息:查询已完赛赛事的个人成绩、排名及证书信息,直观呈现参赛成果。

  异议反馈:针对存疑的比赛成绩提交异议反馈申请,填写具体申诉理由,并查看管理员或录入员的回复结果。

  退费转让:管理因故无法参赛产生的退费或名额转让业务,提交申请并跟踪处理状态。

  选手用户角色用例图如图3-2所示。

  

图3-2 选手用户用例图

  管理员功能需求

  管理员端作为系统核心枢纽,负责全局资源调度、用户权限分配及业务流程管控,涵盖系统用户、赛事资源、报名审核及数据统计等,保障系统运营有序规范。

  后台首页:通过可视化图表展示访问总数、轮播图数、收藏/评论/点赞数及赛事报名人数统计等关键运营数据,提供功能快捷入口。

  系统用户管理:统一管理管理员账号,并负责添加和配置"报名审核员"与"成绩录入员"账号,执行基础用户的增删改查与权限分配。

  赛事信息管理:发布与维护赛事信息(添加新赛事、编辑详情),管理赛事分类,确保前台展示数据的准确性。

  报名记录管理:监控全平台报名列表,审核选手提交的报名申请(通过/驳回),管理报名备注及支付状态。

  成绩信息管理:拥有最高权限,可录入或修正选手的比赛成绩与排名,处理成绩数据的最终校验。

  异议反馈管理:审核并回复选手提交的对成绩的异议,解决赛事争议,维护公平性。

  退费转让管理:审核选手提交的退报名费申请,处理名额转让请求,确保资金与名额流转合规。

  系统与资源管理:配置前台轮播图内容、发布与维护通知公告、管理赛事资讯文章,保障平台内容的时效性。

  管理员角色用例图如如图3-3所示。

  

图3-3管理员用例图

  报名审核员功能需求

  报名审核员端专注于报名流程的规范化处理,负责核实选手报名信息,确保参赛资格符合赛事要求。

  后台首页:展示待办审核任务数量及简要统计,提供快捷入口。

  赛事信息管理:仅拥有查看权限,可查阅赛事详细规则与要求,辅助审核判断。

  报名记录管理:核心业务模块,查看选手提交的报名列表,执行"审核"操作(通过或驳回),并可查看报名备注与选手详细信息。

  报名审核员角色用例图如图3-4所示。

  

图3-4报名审核员用例图

3.1.3 性能需求分析

  在开发系统时,性能需求是确保系统高效、可靠的重要组成部分,可以为系统的设计、开发和后期维护提供指导,确保系统在实际运行中具有良好的性能表现,满足用户需求。下面是针对该系统的性能需求详细分析。

  响应时间

  用户请求响应时间:系统对用户的请求(如页面加载、搜索查询)应在2秒内完成,以保证用户能够快速获得所需信息,提升用户体验。

  数据处理时间:对于较为复杂的数据处理或计算,如报告生成,系统应在10秒内完成。

  并发用户处理能力

  并发访问负载:系统应能够支持至少1000个并发用户同时在线访问,能够有效处理高峰时期的访问需求。

  会话维持能力:系统在高负载情况下应能够保持稳定的会话状态,确保用户不会因超时而被迫重新登录。

  数据存取性能

  数据库查询性能:系统的数据库查询平均响应时间不应超过1秒,对于频繁查询的数据,应使用缓存机制,以减少数据库负担。

  数据上传与下载速度:用户在上传和下载文件(如图片、视频等)时,数据传输速度应至少达到每秒1MB,以提高用户体验。

  稳定性与可用性

  系统稳定性:在正常负载情况下,系统应保持99.9%的可用性,确保大多数情况下用户能够顺利访问。

  故障恢复时间:系统在发生故障后的恢复时间应不超过30分钟,以最大限度减少对用户的影响。

3.2 系统可行性

3.2.1 技术可行性

  系统采用了当前成熟且广泛应用的技术栈,开发资源丰富具备良好的技术可行性。后端基于Java语言和SpringBoot框架构建,SpringBoot具有自动配置、内嵌服务器、简化依赖管理等优势,能够快速搭建稳定高效的Web应用服务,支持RESTful API设计,便于前后端分离开发。数据库选用MySQL,作为开源的关系型数据库,具备高可靠性、良好的事务支持和成熟的生态。前端利用JavaScript结合HTML/CSS实现用户界面交互,兼容主流浏览器,提升用户体验。系统采用B/S架构,用户仅需通过浏览器即可访问,无需安装额外客户端,部署和维护成本低。

3.2.2 操作可行性

  系统在设计过程中充分考虑了用户的操作习惯与使用便捷性,面向不同角色提供差异化功能界面,操作流程简洁明了。系统界面采用适配PC端主流浏览器(如Chrome、Firefox),确保操作流畅。此外,系统提供清晰的导航结构、提示信息和操作引导,能够降低用户学习成本。对于管理员,后台配备可视化数据看板与批量处理功能,提升管理效率。整体系统无需复杂培训即可上手使用,符合各类用户的实际操作需求,具备较强的操作可行性。

3.2.3 经济可行性

  系统在开发与运行过程中具有较高的经济可行性。开发阶段所采用的技术组件,如Java、SpringBoot及MySQL等技术均为开源免费资源,开发工具IntelliJ IDEA社区版、Navicat基础功能等也可满足基本开发需求,大幅降低了软件授权成本。服务器部署可选择如阿里云、腾讯云等云服务商的中低配ECS实例,结合CDN与数据库服务,初期投入较小,且支持按需扩展,避免资源浪费。系统上线后可通过接受广告投入等多种方式实现可持续运营,具备潜在的收益来源。因此,从投入产出比来看,系统建设成本可控,后期运维费用合理,具备良好的经济可行性。

第4章 系统设计

4.1 系统架构设计

  从技术实现的角度来看,系统的整体架构设计对于系统的稳定性、可维护性与功能扩展具有决定性作用。本系统采用经典的MVC(Model-View-Controller)分层架构模式,将系统划分为三个核心层次:表现层、业务逻辑层与数据访问层,实现各模块之间的职责分离与松耦合。其中,表现层主要负责用户界面的呈现与前端交互,接收用户请求并返回响应结果,业务逻辑层作为系统的核心处理单元,数据访问层则专注于与数据库进行交互,完成数据的持久化存储、查询与更新操作。通过这种分层设计,系统在结构上更加清晰,有利于代码的组织与维护,同时提升了模块的独立性与可重用性,为后续功能迭代和性能优化提供了良好的技术基础。系统整体架构如图4-1所示。

  

图4-1 系统架构图

4.2 总体功能设计

  系统基于角色权限划分为观众、选手、管理员、审核员及录入员五类核心用户。观众端聚焦赛事体验,提供首页资讯浏览、公告查看、赛事检索筛选及互动评论,个人中心集成收藏与记录管理。选手端以参赛全流程为核心,支持智能填单报名、在线缴费、健康证明上传,实现报名状态追踪、成绩证书查询及异议反馈,并涵盖退费转让申请。管理员端作为调度中枢,后台首页集成多维度运营数据统计;功能覆盖全局用户权限分配、赛事资源发布、报名与成绩终审、争议处理及系统资源配置。审核员与录入员分别专注于报名资格核验与比赛成绩精准录入。系统总体功能结构图如图4-2所示。

  图4-2 系统功能结构图

4.3 系统流程设计

4.3.1 智能推荐模块

  该模块基于用户行为提供个性化赛事推荐。系统通过前端埋点收集用户的浏览、收藏及历史报名数据,发送至UserBehaviorService服务层构建用户画像。算法引擎分析用户对赛事类型、距离、地域等标签的偏好权重,利用协同过滤算法计算匹配度。结果存入race_recommendations推荐表,并通过GET接口反馈至前端首页"赛事推荐"模块。前端渲染推荐列表,用户点击可直达详情页。系统定期更新推荐模型,确保推荐内容的实时性与准确性,提升用户转化率。智能推荐时序图如图4-3所示。

  图4-3智能推荐时序图

4.3.2 选手报名模块

  该模块实现选手从检索到完成报名的全流程。用户在前端检索目标赛事,点击报名后,系统通过RESTful API将赛事ID、用户ID及身份信息封装传输至RaceRegisterController控制层。控制层校验赛事状态及用户资格,调用RaceRegisterService业务层进行逻辑处理,包括健康证明格式校验与库存锁定。校验通过后,数据写入registration_records数据库表,并生成待支付订单。后端返回成功状态码,前端跳转至支付页面。若校验失败则返回具体错误提示。报名成功后,系统异步发送确认短信通知用户。选手报名时序图如图4-4所示。

  图4-4选手报名时序图

4.3.3 在线支付与退费模块

  该模块处理报名费用的支付及特殊情况的退费。用户确认订单后,调用第三方支付接口发起支付请求,支付回调信息经PaymentController接收并验证签名。验证无误后,OrderService更新订单状态为"已支付",并扣减赛事名额。针对退费申请,用户提交理由至后台,经管理员审批通过后,系统调用退款接口原路退回资金,并释放被占用的参赛名额。所有资金流水记录存入payment_transactions表,确保财务数据一致性与可审计性,完成后通知用户处理结果。在线支付与退费时序图如图4-5所示。

  图4-5在线支付与退费时序图

4.3.4 成绩录入与发布模块

  该模块负责比赛成绩的精准录入与公示。录入员登录后台,选择对应赛事批次,通过Excel批量导入或手动录入选手枪声时间、净时间及排名。数据提交至ResultEntryController,经由ResultAuditService进行逻辑校验(如时间合理性、重复性检查)。审核员在后台对异常数据进行复核确认。审核通过后,系统自动更新race_results成绩表,触发证书生成服务,并将状态同步至前端选手个人中心。选手可实时查询成绩并下载电子证书,同时数据推送至排行榜模块。成绩录入与发布时序图如图4-6所示。

  图4-6成绩录入与发布时序图

4.4 数据库设计

4.4.1 数据库概念设计

  根据系统需求分析,确立观众用户、选手用户、赛事信息、报名记录、成绩信息、退费转让、异议反馈等核心实体。观众用户与选手用户作为系统主体,分别关联赛事浏览与报名参赛行为;选手用户与报名记录呈一对多关系,一次报名对应一条记录;报名记录向下关联退费转让申请,向上关联赛事信息与成绩信息;赛事信息作为业务核心,关联多条报名记录与成绩记录;成绩信息与异议反馈呈一对多关系,一条成绩可引发多次申诉。各实体通过主外键紧密耦合,构建了从报名参赛到成绩追踪的完整业务闭环,确保数据一致性与操作可追溯性。系统总体E-R图如图4-8所示。

  图4-8系统总体E-R图

4.4.2 数据库逻辑设计

  系统选用MySQL作为核心数据库管理系统,负责实现各类业务数据的持久化存储与高效访问。数据库由多个数据表构成,各表之间通过外键约束建立关联,完整反映系统中实体间的逻辑关系。根据前期概念设计阶段所构建的E-R模型,系统将各个实体转化为对应的数据表结构,确保数据组织的规范性与一致性。由于系统涉及的功能模块较多,数据表数量较为庞大,为便于说明,下面仅选取其中若干核心业务表进行结构展示与字段说明,以体现数据库设计的关键细节与实现思路。

  观众用户表主要存储浏览赛事资讯、查看公告、进行点赞收藏等互动行为的普通观众信息。该表与系统用户表关联,记录观众的基本资料及账号审核状态,为前台个性化推荐和用户行为分析提供基础数据支撑,如表4-1所示。

表 4-1audience_users(观众用户)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 audience_users_id int 是 是 观众用户ID
2 user_name varchar 64 否 否 用户姓名
3 user_gender varchar 64 否 否 用户性别
4 contact_phone varchar 16 否 否 联系电话
5 examine_state varchar 16 是 否 审核状态
6 user_id int 是 否 用户ID
7 create_time datetime 是 否 创建时间
8 create_by int 是 否 创建用户ID
9 update_time timestamp 是 否 更新时间

  选手用户表用于存储实际参与马拉松报名的核心用户信息,包含选手姓名、性别、年龄、联系电话等基本资料,特别增设健康证明字段用于报名资格审核。该表是连接报名记录、成绩信息、异议反馈等业务模块的关键纽带,如表4-2所示。

表 4-2player_user(选手用户)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 player_user_id int 是 是 选手用户ID
2 name_of_player varchar 64 否 否 选手姓名
3 players_gender varchar 64 否 否 选手性别
4 age_of_players varchar 64 否 否 选手年龄
5 player_phone varchar 16 否 否 选手电话
6 health_certificate varchar 255 否 否 健康证明
7 examine_state varchar 16 是 否 审核状态
8 user_id int 是 否 用户ID
9 create_time datetime 是 否 创建时间
10 create_by int 是 否 创建用户ID
11 update_time timestamp 是 否 更新时间

  报名审核员表记录负责审核选手报名资格的后台管理人员信息。该表与系统用户表关联,存储审核员的基本资料和账号状态,为报名审核模块提供权限控制和操作追踪的基础,如表4-3所示。

表 4-3enrollment_auditor(报名审核员)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 enrollment_auditor_id int 是 是 报名审核员ID
2 user_name varchar 64 否 否 用户姓名
3 user_gender varchar 64 否 否 用户性别
4 contact_phone varchar 16 否 否 联系电话
5 examine_state varchar 16 是 否 审核状态
6 user_id int 是 否 用户ID
7 create_time datetime 是 否 创建时间
8 create_by int 是 否 创建用户ID
9 update_time timestamp 是 否 更新时间

  成绩录入员表存储负责比赛成绩录入与核验的后台工作人员信息。该表关联系统用户表,记录录入员基本资料,确保成绩录入、异议回复等操作的可追溯性,保障成绩数据的准确性与权威性,如表4-4所示。

表 4-4performance_entry_clerk(成绩录入员)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 performance_entry_clerk_id int 是 是 成绩录入员ID
2 user_name varchar 64 否 否 用户姓名
3 user_gender varchar 64 否 否 用户性别
4 contact_phone varchar 16 否 否 联系电话
5 examine_state varchar 16 是 否 审核状态
6 user_id int 是 否 用户ID
7 create_time datetime 是 否 创建时间
8 create_by int 是 否 创建用户ID
9 update_time timestamp 是 否 更新时间

  赛事信息表是系统的核心数据表,完整存储赛事名称、分类、日期、起终点、里程、报名费用等基本信息,同时记录赛事路线、封面图片、详细描述等内容。表中还包含点击数、点赞数、收藏数、评论数等互动指标,以及智能推荐标志,为前台展示和个性化推荐提供数据支持,如表4-5所示。

表 4-5event_information(赛事信息)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 event_information_id int 是 是 赛事信息ID
2 event_name varchar 64 否 否 赛事名称
3 event_class_nameification varchar 64 否 否 赛事分类
4 event_date date 否 否 赛事日期
5 event_starting_point varchar 64 否 否 赛事起点
6 race_end varchar 64 否 否 赛事终点
7 event_mileage varchar 64 否 否 赛事里程
8 registration_fee double 否 否 报名费用
9 cover_image varchar 255 否 否 封面图片
10 race_route text 65535 否 否 赛事路线
11 grade_ranking text 65535 否 否 成绩排名
12 event_description longtext 4294 否 否 赛事描述
13 hits int 是 否 点击数
14 praise_len int 是 否 点赞数
15 collect_len int 是 否 收藏数
16 comment_len int 是 否 评论数
17 recommend int 是 否 智能推荐
18 registration_record_limit_times int 是 否 报名限制次数
19 create_time datetime 是 否 创建时间
20 create_by int 是 否 创建用户ID
21 update_time timestamp 是 否 更新时间

  报名记录表详细记录选手的每一次报名行为,包含赛事基本信息、选手信息、报名日期、报名人数及备注等内容。表中设置审核状态、审核回复、支付状态等关键字段,完整追踪报名从提交到审核再到支付的完整流程,同时预留退费转让和成绩录入的限制次数控制字段,如表4-6所示。

表 4-6registration_record(报名记录)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 registration_record_id int 是 是 报名记录ID
2 event_name varchar 64 否 否 赛事名称
3 event_class_nameification varchar 64 否 否 赛事分类
4 event_date date 否 否 赛事日期
5 event_starting_point varchar 64 否 否 赛事起点
6 race_end varchar 64 否 否 赛事终点
7 registration_fee double 否 否 报名费用
8 competitor_user int 否 否 选手用户
9 name_of_player varchar 64 否 否 选手姓名
10 player_phone varchar 64 否 否 选手电话
11 registration_date date 否 否 报名日期
12 number_of_registrations varchar 64 否 否 报名人数
13 registration_notes text 65535 否 否 报名备注
14 examine_state varchar 16 是 否 审核状态
15 examine_reply varchar 255 否 否 审核回复
16 pay_state varchar 16 是 否 支付状态
17 pay_type varchar 16 否 否 支付类型
18 achievement_information_limit_times int 是 否 录入成绩限制次数
19 transfer_of_refund_limit_times int 是 否 退费转让限制次数
20 create_time datetime 是 否 创建时间
21 create_by int 是 否 创建用户ID
22 update_time timestamp 是 否 更新时间
23 extra text 65535 否 否 额外信息
24 source_table varchar 255 否 否 来源表
25 source_id int 否 否 来源ID
26 source_user_id int 否 否 来源用户

  退费转让表管理选手因故无法参赛而发起的退费或名额转让申请。该表记录申请对应的赛事信息、选手信息、申请内容及日期,通过审核状态和审核回复字段跟踪处理进度,确保资金和名额流转过程合规透明、有据可查,如表4-7所示。

表 4-7transfer_of_refund(退费转让)

编号 字段名 类型 长度 是否非空 是否主键 注释
1 transfer_of_refund_id int 是 是 退费转让ID
2 event_name varchar 64 否 否 赛事名称
3 event_class_nameification varchar 64 否 否 赛事分类
4 event_date date 否 否 赛事日期
5 event_starting_point varchar 64 否 否 赛事起点
6 race_end varchar 64 否 否 赛事终点
7 registration_fee double 否 否 报名费用
8 competitor_user int 否 否 选手用户
9 name_of_player varchar 64 否 否 选手姓名
10 player_phone varchar 64 否 否 选手电话
11 application_date date 否 否 申请日期
12 application_content text 65535 否 否 申请内容
13 examine_state varchar 16 是 否 审核状态
14 examine_reply varchar 255 否 否 审核回复
15 create_time datetime 是 否 创建时间
16 create_by int 是 否 创建用户ID
17 update_time timestamp 是 否 更新时间
18 extra text 65535 否 否 额外信息
19 source_table varchar 255 否 否 来源表
20 source_id int 否 否 来源ID
21 source_user_id int 否 否 来源用户

第5章 系统实现

5.1 系统实现环境

  系统前端开发工具为VS Code,前端框架采用Vue,运行环境依赖Node.js v14.19.1。前端在main.js中全局挂载Vue Router路由、Vuex状态管理和Axios请求库,使用npm管理依赖包,webpack进行项目打包。后端基于Java JDK11,开发工具为IntelliJ IDEA,集成Spring Boot框架,配置Spring Web、Spring Data JPA和MySQL数据库。系统使用Java语言实现业务逻辑,通过Maven管理项目依赖,确保系统稳定高效运行。

5.2 观众用户功能实现

5.2.1 赛事资讯浏览实现

  该组件实现观众浏览马拉松资讯、行业动态和科普知识的功能。前端通过Axios调用后端资讯接口,获取资讯列表数据并在页面渲染展示。用户在资讯详情页可进行点赞、收藏等互动操作,操作数据实时同步至后端数据库。系统根据用户浏览行为记录热度数据,为热门资讯推荐提供依据。赛事资讯浏览效果图如下图5-1所示。

  

图5-1赛事资讯浏览界面

5.2.2 赛事信息查看实现

  该组件实现观众查看所有可报名赛事详情的功能。前端调用后端赛事接口,获取赛事名称、分类、日期、起终点、里程等信息,支持按名称搜索和按分类筛选。用户点击赛事卡片可进入详情页,查看赛事路线和描述,并进行点赞、收藏、评论操作。赛事信息查看效果图如下图5-2所示。

  

图5-2赛事信息查看界面

5.3 选手用户功能实现

5.3.1 在线报名实现

  该组件实现选手从选择赛事到提交报名的全流程功能。前端在报名页面收集选手身份信息、健康证明等资料,调用后端报名接口提交数据。系统校验赛事资格和库存后生成待支付订单,返回支付状态码,前端跳转至支付页面。报名成功后选手收到确认短信通知。在线报名效果图如下图5-3所示。

  

图5-3在线报名界面

5.3.2 成绩查询实现

  该组件实现选手查询个人完赛成绩和下载证书的功能。前端调用后端成绩接口,获取选手历史参赛记录及对应的成绩、排名信息。页面以列表形式展示赛事名称、日期、成绩、排名等数据,选手点击可查看详细成绩证书,支持证书图片下载和分享。成绩查询效果图如下图5-4所示。

  

图5-4成绩查询界面

5.3.3 异议反馈实现

  该组件实现选手对存疑成绩提交申诉的功能。选手在成绩详情页点击异议反馈,填写申诉理由后提交。前端调用后端异议接口,将申诉数据存入数据库并置为待处理状态。选手可在个人中心查看申诉处理进度和审核员回复内容。异议反馈效果图如下图5-5所示。

  

图5-5异议反馈界面

5.4 管理员功能实现

5.4.1 赛事信息管理实现

  该组件实现管理员发布和维护赛事信息的功能。管理员在后台填写赛事名称、分类、日期、起终点、里程、报名费用等信息,上传封面图片和赛事路线图,提交后前端调用后端接口将数据存入赛事信息表。已发布的赛事可在前台展示,支持编辑和下架操作。赛事信息管理效果图如下图5-6所示。

  

图5-6赛事信息管理界面

5.4.2 退费转让管理实现

  该组件实现管理员审核选手退费或名额转让申请的功能。后台以列表形式展示所有退费转让申请,包含选手姓名、赛事名称、申请日期、申请类型、审核状态等字段。管理员点击查看申请详情,核实理由后执行通过或驳回操作,通过退费申请将调用支付接口原路退款,转让申请则更新参赛名额信息。退费转让审核效果图如下图5-7所示。

  

图5-7退费转让审核界面

5.5 报名审核员功能实现

5.5.1 报名审核实现

  该组件实现报名审核员核实选手报名资格的功能。审核员登录后台进入待办审核列表,查看选手提交的健康证明和报名信息,依据赛事规则执行通过或驳回操作。驳回时需填写具体原因,系统将通知选手补充材料。所有审核操作记录日志备查。报名审核效果图如下图5-8所示。

  

图5-8报名审核界面

5.6 成绩录入员功能实现

5.6.1 成绩录入实现

  该组件实现成绩录入员发布比赛成绩的功能。录入员选择对应赛事,通过Excel批量导入或手动录入选手枪声时间、净时间及排名。系统对成绩数据进行合理性校验,确认无误后提交入库,自动触发证书生成服务,选手即可在前端查询成绩。成绩录入效果图如下图5-9所示。

  

图5-9成绩录入界面

第6章 系统测试

6.1 测试目的

  系统测试的主要目标是验证软件是否满足需求规格说明书中规定的功能、性能及业务要求,并评估其在实际应用环境中的可用性、稳定性和可靠性。通过系统的测试流程,可以识别程序中的缺陷、安全隐患和潜在运行风险,确保数据处理的准确性、完整性和安全性。

6.2 测试方法

  为全面评估系统的功能实现与性能表现,本研究采用了多元化的测试策略,结合不同测试方法的特点,从多个维度对系统进行验证。在功能验证方面,主要采用黑盒测试技术,依据需求规格设计具有代表性的测试用例,重点考察系统外部行为是否符合预期功能要求,而不依赖于其内部结构或代码实现。例如,在用户登录模块的测试中,通过构造包含有效凭证与无效输入(如错误密码、空字段、超长字符等)的测试数据,验证系统在各类场景下的响应机制与权限控制逻辑是否准确。

  在性能评估环节,综合运用压力测试与负载测试手段,模拟多用户并发操作及大规模数据交互的运行环境,以测量系统在高负载条件下的响应延迟、事务处理速率、资源占用情况及服务持续稳定性,进而判断其在实际应用中能否满足性能指标要求。

  兼容性验证则通过在多种操作系统平台(如Windows、macOS、Linux)、主流浏览器(如Chrome、Firefox、Safari)以及不同配置的硬件设备上部署系统,检验其运行一致性与界面适配性,确保用户在异构环境中均能获得良好的使用体验。

  此外,还实施了异常场景测试,针对输入边界值、非法数据格式及非正常操作流程设计测试用例,评估系统在面对异常输入或突发状况时的容错能力、错误提示机制及自我恢复能力。

6.3 测试内容

  系统测试围绕马拉松报名与选手成绩追踪系统核心业务展开,重点对用户登录注册、赛事资讯浏览、在线报名缴费、成绩查询、异议反馈、退费转让申请、后台赛事管理、报名审核、成绩录入等关键流程进行了验证。通过对各项功能的操作路径、输入边界及异常场景的全面测试,评估系统的稳定性与功能正确性,确保用户从赛事浏览到报名参赛、从成绩查询到异议申诉的闭环流程畅通无阻。具体测试用例的设计与执行情况如下所示。

  用户登录注册是系统访问的首要关口,该模块测试旨在验证账号创建的唯一性、密码加密存储及身份鉴权的准确性,确保只有合法用户才能进入系统。用户登录注册功能测试用例设计如表6-1所示。

表6-1 用户注册功能测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 正常用户注册 输入有效的用户名、密码、手机号并提交 用户注册成功,跳转至登录页面 符合预期
TC_02 注册时手机号已存在 使用已注册的手机号进行注册 提示"手机号已被占用" 符合预期
TC_03 密码强度不足 输入少于6位或纯数字密码 提示"密码强度不足,需包含字母和数字" 符合预期
TC_04 登录凭证错误 输入正确的用户名但错误的密码 提示"用户名或密码错误" 符合预期
TC_05 必填项为空提交 不填写用户名或密码直接提交登录 提示"请填写完整信息" 符合预期
TC_01 正常用户注册 输入有效的用户名、密码、手机号并提交 用户注册成功,跳转至登录页面 符合预期

  赛事资讯浏览与互动是观众用户获取信息的主要渠道,测试重点在于验证赛事列表加载的准确性、搜索筛选功能的有效性以及点赞收藏评论等互动操作的实时反馈。赛事资讯浏览功能测试用例设计如表6-2所示。

表6-2赛事资讯浏览功能测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 赛事列表加载 进入赛事信息页面查看列表 正确显示所有可报名赛事,分页正常 符合预期
TC_02 按名称搜索赛事 输入关键词搜索特定赛事 返回包含关键词的赛事列表 符合预期
TC_03 按分类筛选赛事 选择"全马"分类进行筛选 只显示全马类别的赛事 符合预期
TC_04 赛事详情查看 点击赛事卡片进入详情页 正确显示赛事路线、起终点、里程等信息 符合预期
TC_05 点赞收藏操作 对赛事执行点赞和收藏 点赞数和收藏数实时更新,个人中心可查 符合预期

  在线报名与支付模块是选手用户的核心业务环节,测试重点在于验证报名信息提交的完整性、资格校验的逻辑正确性、库存扣减的准确性以及支付状态同步的可靠性。在线报名与支付功能测试用例设计如表6-3所示。

表6-3在线报名与支付功能测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 正常提交报名 填写完整信息并上传健康证明提交 报名记录生成,状态为"待审核" 符合预期
TC_02 健康证明缺失 不上传健康证明直接提交报名 提示"请上传健康证明" 符合预期
TC_03 赛事名额已满 名额已满时点击报名按钮 按钮置灰,提示"该赛事名额已满" 符合预期
TC_04 正常支付流程 对审核通过的报名记录进行支付 支付成功,状态更新为"已支付" 符合预期
TC_05 支付回调异常 模拟支付成功但回调失败场景 系统通过定时任务补偿,订单状态最终一致 符合预期

  成绩查询是选手完赛后的核心需求,测试重点在于验证成绩数据的准确性、排名计算的正确性。成绩查询功能测试用例设计如表6-4所示。

表6-4 成绩查询测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 成绩列表查看 进入个人中心查看成绩记录 正确显示所有已完赛赛事及成绩 符合预期
TC_02 成绩详情展示 点击具体赛事查看详细成绩 显示枪声成绩、净成绩、排名等信息 符合预期
TC_03 电子证书下载 点击下载证书按钮 正确生成并下载PDF格式电子证书 符合预期
TC_04 成绩数据核验 核对前端显示与后台录入数据 两者完全一致,无数据错漏 符合预期

  异议反馈与退费转让是选手的售后保障功能,测试重点在于验证申诉提交的完整性、审核流程的规范性以及状态更新的实时性。异议反馈与退费转让功能测试用例设计如表6-5所示。

表6-5 异议反馈与退费转让功能测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 正常提交异议 选择赛事填写申诉理由并提交 异议记录生成,状态为"待处理" 符合预期
TC_02 异议回复查看 录入员回复后刷新个人中心 正确显示回复内容,状态更新为"已回复" 符合预期
TC_03 正常提交退费申请 选择报名记录填写退费理由提交 退费申请记录生成,状态为"待审核" 符合预期
TC_04 退费审核通过 管理员审核通过退费申请 调用退款接口,资金原路返回,名额释放 符合预期
TC_05 名额转让申请 填写受让人信息提交转让申请 审核通过后报名信息更新为受让人 符合预期

  后台赛事与报名管理是管理员的核心职能,测试旨在验证赛事发布的准确性、报名审核流程的规范性以及退费转让处理的及时性。后台管理功能测试用例设计如表6-6所示。

  表6-6 后台管理功能测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 新增赛事发布 填写完整赛事信息并提交 赛事在前台正确展示,数据存入数据库 符合预期
TC_02 报名审核通过 对选手报名记录执行"通过"操作 报名状态更新为"已通过",选手可支付 符合预期
TC_03 报名审核驳回 执行"驳回"操作并填写驳回原因 状态更新为"未通过",选手收到原因通知 符合预期
TC_04 退费转让审批 对退费申请执行"通过"操作 状态更新为"已通过",触发退款流程 符合预期

  报名审核员与成绩录入员功能测试旨在验证审核员对报名资格的判断能力和录入员对成绩数据的处理准确性。审核录入功能测试用例设计如表6-7所示。

表6-7 审核录入功能测试表

编号 测试描述 测试方法 预期结果 测试结果
TC_01 报名审核员查看待办 登录报名审核员账号进入后台 正确显示待审核报名任务列表 符合预期
TC_02 报名资格审核 查看选手健康证明,执行通过操作 报名状态更新为"已通过" 符合预期
TC_03 成绩录入员批量导入 下载模板填写成绩后上传Excel文件 系统批量解析并存入数据库 符合预期
TC_04 单条成绩录入 手动录入单个选手成绩和排名 成绩信息正确保存,前端可查 符合预期
TC_05 异议反馈回复 查看选手申诉,填写回复意见提交 异议状态更新为"已回复",选手可见 符合预期

6.4 测试结论

  通过对系统开展全面的功能验证、性能评估及可靠性检验,本系统在设定的测试环境中表现出良好的运行状态。用户登录注册、赛事资讯浏览、在线报名支付、成绩查询下载、异议反馈申诉、退费转让申请、后台赛事管理、报名审核、成绩录入等核心模块均实现了既定设计目标,关键业务流程运行稳定,未出现重大功能异常或导致流程中断的严重缺陷。测试结果表明,所有关键测试用例均已顺利通过,测试覆盖范围达到了预设标准,有效验证了系统在功能完整性、运行稳定性以及环境兼容性等方面的综合表现。整体测试结论表明,系统具备预期的可用性与可靠性,满足上线运行的基本要求,能够为用户提供安全、便捷的马拉松报名与成绩追踪服务体验。

结 论

  本研究成功设计并实现了一套基于SpringBoot+Vue前后端分离架构的马拉松报名与选手成绩追踪系统。系统面向观众、选手、管理员、报名审核员及成绩录入员五类角色,开发了赛事资讯浏览、在线报名缴费、成绩查询与证书下载、异议反馈处理、退费转让申请等核心功能模块。在技术实现上,后端采用SpringBoot框架处理业务逻辑与事务管理,前端使用Vue框架构建用户界面,MySQL数据库保障数据存储的安全性与一致性。系统引入协同过滤算法实现个性化赛事推荐,通过异步通知机制提升用户体验,在支付环节对接第三方接口确保资金流转安全。实际应用表明,该系统实现了马拉松赛事从报名到赛后成绩追踪的全流程数字化管理,有效减轻了运营人员的工作负担,提升了选手的参赛体验与信息获取效率,为同类体育赛事信息化建设提供了可参考的解决方案。

  尽管系统已实现预期功能,但仍存在一些待改进之处。首先,智能推荐算法目前仅基于用户浏览、收藏等基础行为数据,未充分结合赛事天气、赛道难度、历史完赛成绩等多元化因素,推荐精准度仍有提升空间。其次,系统在高并发场景下的性能表现有待验证,特别是报名高峰期可能出现瞬时流量激增,目前的架构设计尚未引入消息队列进行流量削峰填谷。第三,移动端适配主要以响应式设计为主,未开发原生应用,在部分交互体验上不如原生App流畅。最后,数据可视化分析功能较为基础,缺乏对赛事报名趋势、选手地域分布、完赛率统计等深度数据的挖掘与展示,难以为赛事运营决策提供更强有力的数据支撑。

  后续研究将从以下几个方面进行优化:一是引入深度学习算法,融合更多维度的用户特征与赛事属性,提升个性化推荐的精准度与用户转化率。二是引入消息队列与分布式缓存机制,优化系统在高并发场景下的响应能力,确保报名高峰期系统稳定运行。三是开发微信小程序或原生移动应用,提升移动端用户的操作体验与粘性。四是完善数据可视化分析平台,通过多维度数据挖掘为赛事组织者提供运营决策支持,助力马拉松赛事向更智能化、精细化的方向发展。

参考文献

1 姚远,王东,张雪莹. 基于"云技术"的校园体育赛事注册系统设计研究J.科技资讯,2025,23(23):249-252.DOI:10.16661/j.cnki.1672-3791.2507-5042-5380.

2 刘平,陆静. 地方马拉松赛事开展状况------以沈阳为例J.体育时空,2025,(13):24-26.

3 夏天通,徐金. 新疆赛马赛事微信小程序设计与实现J.现代信息科技,2025,9(11):168-171+178.DOI:10.19850/j.cnki.2096-4706.2025.11.031.

4 Jiang Z ,Lyu E ,Lin W , et al. Design of a Digital Personnel Management System for SwineFarmsJ.Computers,2025,14(12):556-556.DOI:10.3390/COMPUTERS14120556.

5 Cui Y . Design and Construction of Recruitment Screening Model in Personnel Management System Based on Decision TreeJ.Applied Mathematics and Nonlinear Sciences,2025,10(1):DOI:10.2478/AMNS-2025-0596.

6 Lu Z ,Zhaohui L . Designing an event management system for campus football using 3D images and machine visionJ.Signal, Image and Video Processing,2024,18(3):2965-2974.DOI:10.1007/S11760-023-02963-8.

7 张云驿.基于智能算法的全流程乒乓球赛事系统的设计与实现D.北京邮电大学,2025.DOI:10.26969/d.cnki.gbydu.2025.000506.

8 丁姝文.地域文化下的体育赛事导视系统设计研究D.四川师范大学,2025.DOI:10.27347/d.cnki.gssdu.2025.000802.

9 鄢丽丽. 大运会收录场记系统设计与应用J.电视技术,2024,48(07):67-71.DOI:10.16280/j.videoe.2024.07.015.

10 陈明敏.北京马拉松赛近几年发展态势及其影响研究D.山西大学,2021.DOI:10.27284/d.cnki.gsxiu.2021.001699.

11 汪泊.Java编程语言在计算机软件开发中的应用J.软件,2025,46(06):128-130.

12 于吉鹏.基于Java Web的办公自动化系统开发J.智能城市,2025,11(04):138-140.DOI:10.19301/j.cnki.zncs.2025.04.039.

13 陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计J.信息与电脑(理论版),2023,35(16):181-183.

14 温彩玲.基于Vue.js和SpringBoot的开放式实训基地管理平台的设计与开发J.太原城市职业技术学院学报,2025,(03):60-62.DOI:10.16227/j.cnki.tycs.2025.0163.

15 周春吟. JavaScript技术在Web前端开发中的应用研究 J. 软件, 2024, 45 (11): 175-177.

16 何勇,王瑶. HTML5+CSS3+JavaScript 网页设计基础与实战M. 人民邮电出版社: 202211: 262.

17 翟凌云.MySQL数据库在分布式系统架构设计中的应用J.软件,2025,46(04):100-102.

18 赵新平.MySQL数据库在高并发Web系统中的优化技术J.软件,2025,46(03):116-119.

19 王宇新,刘峰. 基于Navicat+Tableau的高校图书馆数据可视化应用实践J.电子世界,2020,(21):94-95+99.DOI:10.19353/j.cnki.dzsj.2020.21.042.

20 唐昭雯. 基于SQL Server与IDEA的大学寝室签到管理系统的设计J.现代计算机,2024,30(17):97-102.

致 谢

  此次毕业设计的顺利完成,得益于诸多师长、同窗及亲友在学术与生活上的鼎力支持。在此,我谨向所有给予我帮助的人致以最诚挚的谢意。

  首先,我要向我的导师致以最深切的感激。在整个毕业设计与论文撰写过程中,导师始终以深厚的学术素养、严谨的治学精神和高度的责任感为我提供悉心指导。从研究方向的确定、理论框架的构建,到数据的分析与文本的反复修改,每一个环节都凝聚着导师的心血。您不仅在学术层面为我指明方向,提出诸多富有建设性的意见,帮助我不断优化研究思路、提升论文质量,更以耐心细致的教诲引导我逐步掌握科学研究的基本方法。同时,我也衷心感谢在求学期间给予我关心与协助的同学及亲友。在毕业设计推进过程中,同学们积极与我交流观点、分享文献资料,并在讨论中提出宝贵建议,极大拓宽了我的研究视角。亲友们的陪伴与鼓励,使我在面对压力时能够保持积极心态,有效调节情绪,维持良好的状态,使我能够心无旁骛地投入学习与研究工作。

  正是在各方力量的支持与陪伴下,我才能克服研究过程中的种种挑战,最终完成本毕业设计。这段经历不仅是一次学术训练,更是一段充满成长与感悟的旅程。在此,向所有曾给予我帮助的人致以最真挚的感谢。

点赞+收藏+关注 → 私信领取本源代码、数据库

相关推荐
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】ChatServer HTTP接口模块实现总览
网络·c++·人工智能·网络协议·学习·http·架构
坤坤子吖1 小时前
Linux 线程概念与控制——线程创建、退出与等待
linux·开发语言·c++·笔记·学习
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(103):Dynamic Coding Memory——记忆为何让 Agent 更可靠,却可能更平庸
论文阅读·人工智能·学习·开源·github
Shaoshing1 小时前
消息类型
java
qq_284274051 小时前
间歇运动机构与机械设计概论:棘轮与槽轮机构运动系数、零件失效与强度刚度准则、结构工艺性清根及标准件(含考点)
笔记·学习·平面·自动化·制造
2301_32241428041 小时前
springboot学生课堂出勤统计系统15835-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·mysql·随机森林·微信小程序·uni-app·微信开发者工具·推荐算法
程序员夏洛2 小时前
VMware Workstation Pro 卸载失败:安装向导提前结束、错误 1603 的排查与解决
java
User_芊芊君子2 小时前
【JavaEE初阶 - 网络原理】网络分几层?从自定义协议聊到 DNS
java·网络·java-ee
聚美智数10 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库