【计算机毕设/任务书-免费领取源码】基于SpringBoot的甘肃非物质文化遗产网站设计与实现

一、研究目的
甘肃作为中华民族的重要发祥地之一,拥有丰富而独特的非物质文化遗产资源,包括敦煌艺术、河西宝卷、陇东道情、花儿、皮影戏、剪纸、刺绣等众多国家级和省级非遗项目。然而,当前甘肃非遗文化的传播和传承面临着数字化程度低、展示形式单一、互动性不足、年轻群体关注度不高等问题。传统的线下展示和纸质资料难以满足现代社会的传播需求,亟需通过数字化手段实现非遗文化的保护、传承和创新。
本课题旨在设计并实现一个基于SpringBoot的甘肃非物质文化遗产网站,主要目的如下:
-
构建数字化非遗展示平台:通过图文、音视频、VR/AR等多种形式,全面展示甘肃非遗项目的文化内涵、历史渊源、技艺特点、传承人故事等,打破时空限制,让更多人了解和认识甘肃非遗文化。
-
实现非遗资源的系统化管理:建立完善的非遗数据库,对非遗项目、传承人、保护单位、活动信息等进行数字化管理,实现资源的分类、检索、统计和分析,为非遗保护工作提供数据支撑。
-
促进非遗文化的互动传播:提供在线学习、虚拟体验、互动交流等功能,增强用户的参与感和体验感,激发公众对非遗文化的兴趣和认同感。
-
打造可扩展、高可用的非遗平台:采用微服务架构和前后端分离技术,确保系统能够应对高并发访问和海量数据处理,为未来业务扩展奠定技术基础。
-
推动非遗文化的创新性发展:通过数字化手段,探索非遗文化与现代科技、创意设计、文化旅游等领域的融合,为非遗文化的活态传承和创新发展提供新路径。
通过本系统的设计与实现,旨在为甘肃非物质文化遗产的保护、传承和传播提供一个功能完备、性能稳定、安全可靠的数字化平台,推动非遗文化在新时代焕发新的生机与活力。
二、研究要求
a. 需求分析
1. 用户角色分析
-
普通用户:系统的主要使用者,需求包括:浏览非遗项目、搜索非遗信息、观看视频、参与互动、在线学习、收藏内容等。
-
传承人/保护单位:非遗项目的传承主体,需求包括:发布非遗动态、展示作品、分享经验、与用户互动、管理个人/单位信息等。
-
系统管理员:负责系统整体运维,需求包括:用户管理、内容审核、数据统计、系统配置、安全审计等。
-
研究人员/学者:需求包括:查阅非遗资料、下载资源、参与学术讨论、发表研究成果等。
2. 功能性需求
-
非遗展示模块:支持非遗项目的分类展示、详情展示、图文介绍、音视频播放、VR/AR体验等。
-
资源管理模块:支持非遗项目、传承人、保护单位、活动信息、文献资料等资源的增删改查、分类管理、标签管理。
-
搜索与检索模块:支持全文检索、多条件组合搜索、高级检索、智能推荐等功能。
-
互动交流模块:支持评论、点赞、收藏、分享、在线留言、论坛讨论等功能。
-
在线学习模块:支持非遗课程、教学视频、在线测试、学习进度跟踪等功能。
-
活动管理模块:支持非遗活动发布、报名、签到、直播、回放等功能。
-
数据统计模块:支持访问量统计、用户行为分析、内容热度排行、运营报表等功能。
-
系统管理模块:支持用户管理、权限管理、内容审核、系统配置、日志管理等功能。
3. 非功能性需求
-
性能需求:系统响应时间应快速流畅,核心操作响应时间低于2秒,支持高并发访问。页面加载时间应控制在3秒以内,音视频播放应流畅无卡顿。
-
安全性需求:用户数据、敏感信息需加密存储和传输。系统需防范SQL注入、XSS攻击、CSRF攻击等常见安全威胁。建立完善的权限控制机制,防止越权访问。对上传文件进行安全检测,防止恶意文件上传。
-
可用性与可靠性需求:系统需保证7×24小时稳定运行,核心服务需高可用部署,数据多副本备份。系统应具备容错能力,在部分服务故障时仍能提供基本服务。
-
扩展性需求:采用微服务架构,便于独立扩展不同业务模块,支持未来业务增长。系统应支持插件化扩展,便于集成第三方服务。
-
用户体验需求:界面设计应体现甘肃地域文化特色,操作流程顺畅,符合用户使用习惯。提供良好的移动端体验,支持响应式布局。音视频播放应支持多种格式和清晰度选择。
4. 业务流程分析
核心业务流程包括:
-
用户注册与认证流程:用户填写注册信息 → 系统验证信息 → 注册成功 → 用户登录 → 系统验证身份 → 登录成功。
-
内容浏览流程:用户进入网站 → 浏览首页推荐内容 → 选择分类或搜索 → 查看内容详情 → 观看视频/图片 → 参与互动(评论、点赞、收藏)。
-
内容发布流程:传承人/保护单位登录 → 发布内容 → 填写内容信息 → 上传图片/视频 → 提交审核 → 管理员审核 → 审核通过后发布 → 审核不通过退回修改。
-
在线学习流程:用户选择课程 → 观看教学视频 → 完成在线测试 → 获得学习证书 → 记录学习进度。
-
活动参与流程:用户查看活动列表 → 选择感兴趣的活动 → 在线报名 → 参加活动(线上/线下) → 活动结束后评价。
b. 系统功能设计
系统采用前后端分离的微服务架构,主要包含以下10个功能模块:
1. 用户管理模块
-
功能点:
-
用户注册与登录:支持手机号、邮箱、第三方登录(微信、QQ)等多种方式注册和登录。
-
个人信息管理:用户可修改个人信息,包括头像、昵称、联系方式、个人简介等。
-
密码管理:支持密码修改、密码重置、密保问题设置。
-
实名认证:传承人/保护单位需进行实名认证,上传相关证明材料。
-
用户状态管理:管理员可冻结、解冻用户账号,查看用户登录记录。
-
用户分组管理:管理员可创建用户组,将用户分配到不同组别,便于权限管理。
2. 非遗项目管理模块
-
功能点:
-
项目分类:建立多级非遗项目分类体系,按地域、类型、级别等维度分类。
-
项目发布:管理员/传承人发布非遗项目信息,包括项目名称、分类、级别、历史渊源、文化内涵、技艺特点、传承人、保护单位等。
-
项目审核:管理员审核非遗项目信息的真实性和合规性,审核通过后方可发布。
-
项目管理:管理员/传承人管理已发布项目,支持编辑、上下架、删除等操作。
-
项目展示:以图文、音视频、VR/AR等多种形式展示非遗项目详情。
-
项目收藏:用户收藏感兴趣的非遗项目,方便后续查看。
-
项目推荐:根据用户的浏览历史、收藏记录等推荐相关非遗项目。
3. 传承人管理模块
-
功能点:
-
传承人信息管理:管理员/传承人维护传承人信息,包括姓名、性别、年龄、传承项目、技艺特点、代表作品、联系方式等。
-
传承人认证:传承人需提交相关证明材料进行认证,认证通过后方可发布内容。
-
传承人展示:展示传承人详细信息,包括个人简介、代表作品、传承故事、活动动态等。
-
传承人互动:用户可与传承人进行在线交流、留言、提问等。
-
传承人推荐:根据用户的兴趣偏好推荐相关传承人。
4. 资源管理模块
-
功能点:
-
资源分类:建立多级资源分类体系,按类型(图片、视频、音频、文档)、主题、地域等维度分类。
-
资源上传:管理员/传承人上传非遗资源,包括图片、视频、音频、文档等,支持批量上传。
-
资源审核:管理员审核资源内容的真实性和合规性,审核通过后方可发布。
-
资源管理:管理员/传承人管理已上传资源,支持编辑、删除、设置封面等操作。
-
资源展示:以列表、缩略图、详情页等多种形式展示资源内容。
-
资源下载:用户可下载公开的资源文件(需登录)。
-
资源统计:统计资源数量、下载量、浏览量等。
5. 搜索与检索模块
-
功能点:
-
全文检索:基于Elasticsearch实现非遗内容全文检索,支持中文分词、拼音检索、同义词扩展。
-
高级检索:支持多条件组合检索,包括按项目名称、分类、地域、级别、传承人、关键词等。
-
检索结果排序:支持按相关度、发布时间、浏览量、收藏量等多种方式排序。
-
检索历史:记录用户的检索历史,方便快速复用。
-
热门检索:展示热门检索关键词,引导用户检索。
-
智能推荐:基于用户的浏览历史、收藏记录、搜索行为,利用协同过滤算法推荐相关内容。
6. 互动交流模块
-
功能点:
-
评论管理:用户可对非遗项目、传承人、资源等内容进行评论,支持回复、点赞、举报等。
-
点赞收藏:用户可对内容进行点赞、收藏操作,记录用户的兴趣偏好。
-
分享功能:用户可将内容分享到微信、微博、QQ等社交平台。
-
在线留言:用户可向传承人、管理员发送留言,支持私信和公开留言。
-
论坛讨论:建立非遗主题论坛,用户可发布帖子、参与讨论、回复评论。
-
互动统计:统计内容的评论数、点赞数、收藏数、分享数等。
7. 在线学习模块
-
功能点:
-
课程管理:管理员/传承人发布非遗课程,包括课程名称、简介、封面、教学视频、课件、测试题等。
-
课程分类:建立课程分类体系,按项目、难度、时长等维度分类。
-
课程学习:用户选择课程,观看教学视频,完成在线测试,记录学习进度。
-
学习证书:用户完成课程学习并通过测试后,可获得电子学习证书。
-
学习记录:记录用户的学习历史、学习时长、测试成绩等。
-
课程推荐:根据用户的学习记录和兴趣偏好推荐相关课程。
8. 活动管理模块
-
功能点:
-
活动发布:管理员/传承人发布非遗活动,包括活动名称、时间、地点、内容、参与方式、报名要求等。
-
活动分类:建立活动分类体系,按类型(展览、讲座、体验、比赛)、地域、时间等维度分类。
-
活动报名:用户查看活动列表,选择感兴趣的活动进行在线报名。
-
活动签到:支持线上活动签到和线下活动扫码签到。
-
活动直播:支持活动在线直播,用户可观看直播、参与互动。
-
活动回放:活动结束后,可生成回放视频供用户观看。
-
活动评价:用户可对活动进行评价,包括评分、文字评价、图片评价。
-
活动统计:统计活动的参与人数、报名人数、签到率、评价分数等。
9. 数据统计与分析模块
-
功能点:
-
访问数据统计:统计网站访问量、独立访客、页面浏览量、平均停留时长等。
-
用户行为分析:统计用户的浏览行为、搜索行为、互动行为、学习行为等。
-
内容热度排行:按浏览量、评论数、点赞数、收藏数等维度生成内容排行。
-
用户画像:基于用户行为数据,构建用户画像,包括用户兴趣、活跃度、学习偏好等。
-
运营报表:生成日报、周报、月报等运营报表,支持图表展示。
-
数据导出:支持统计数据的导出,导出格式包括Excel、PDF等。
-
数据可视化:通过图表、仪表盘等方式可视化展示数据。
10. 系统管理模块
-
功能点:
-
用户管理:管理员管理用户账号、权限、状态。
-
内容审核:管理员审核非遗项目、传承人、资源、课程、活动等内容,处理违规内容。
-
权限管理:管理员管理用户角色和权限,设置不同角色的操作权限。
-
系统配置:配置系统参数,如站点名称、Logo、联系方式、SEO设置、邮件配置等。
-
日志管理:查看系统操作日志、访问日志、错误日志等。
-
数据备份:定期备份系统数据,确保数据安全。
-
系统监控:监控系统运行状态,包括CPU、内存、磁盘、网络等资源使用情况。
c. 系统实现
1. 技术架构设计
采用基于Spring Cloud的微服务架构,确保系统的高可用性和可扩展性。
-
前端:
-
Web端:Vue 3 + TypeScript + Element Plus构建的管理后台。
-
移动端:微信小程序或Uni-app,提供移动端访问。
-
后端:
-
核心框架:Spring Boot 2.7.x。
-
微服务组件:Spring Cloud Alibaba(Nacos-服务注册与配置中心,Sentinel-流量控制与熔断降级)。
-
安全认证:Spring Security + JWT,网关统一鉴权。
-
数据访问:MyBatis-Plus + Druid。
-
数据层与中间件:
-
关系数据库:MySQL 8.0,主从分离,核心表分库分表。
-
缓存:Redis Cluster,缓存热点数据(非遗项目信息、用户信息)、会话管理。
-
消息队列:Apache RocketMQ,解耦异步任务(如发送通知、记录日志、更新索引)。
-
搜索引擎:Elasticsearch,用于非遗内容全文检索和复杂查询。
-
对象存储:阿里云OSS/腾讯云COS,存储图片、视频、音频、文档等资源文件。
-
第三方服务集成:
-
音视频处理:集成FFmpeg进行音视频转码、截图、水印等处理。
-
VR/AR体验:集成Three.js或A-Frame实现Web端VR/AR体验。
-
直播服务:集成第三方直播服务(如腾讯云直播、阿里云直播)。
-
短信服务:阿里云短信、腾讯云短信。
-
邮件服务:集成邮件发送服务,用于通知、验证等。
-
部署与运维:
-
容器化:所有服务Docker化。
-
编排:Kubernetes,实现弹性伸缩、服务发现、负载均衡。
-
CI/CD:GitLab CI,自动化构建、测试、部署。
-
监控:Prometheus + Grafana(指标监控),SkyWalking(链路追踪),ELK Stack(日志分析)。
2. 核心功能实现方案
-
非遗内容搜索实现:
-
数据同步:非遗内容变更时,通过消息队列异步同步到Elasticsearch。
-
检索服务:前端请求检索服务,检索服务构造Elasticsearch查询,支持多条件组合、排序、分页等。
-
中文分词:使用IK Analyzer或jieba分词器进行中文分词,支持同义词扩展、拼音检索。
-
音视频处理实现:
-
上传处理:用户上传音视频文件后,系统调用FFmpeg进行转码、截图、生成缩略图等处理。
-
多清晰度支持:生成多种清晰度的视频文件,根据用户网络环境自动选择合适清晰度。
-
播放器集成:集成Video.js或DPlayer等播放器,支持多种格式和功能。
-
VR/AR体验实现:
-
模型加载:使用Three.js加载3D模型,支持glTF、OBJ等格式。
-
交互控制:实现模型的旋转、缩放、平移等交互操作。
-
场景构建:构建虚拟场景,添加灯光、材质、动画等效果。
-
在线学习实现:
-
视频播放:集成视频播放器,支持进度条、倍速播放、字幕等功能。
-
学习进度:记录用户的观看进度,支持断点续播。
-
在线测试:实现单选题、多选题、判断题等题型,自动评分。
-
学习证书:生成PDF格式的电子证书,支持下载和分享。
3. 数据库设计核心表举例
-
user(用户表) -
user_profile(用户信息表) -
intangible_cultural_heritage(非遗项目表) -
inheritor(传承人表) -
resource(资源表) -
resource_category(资源分类表) -
comment(评论表) -
like(点赞表) -
favorite(收藏表) -
course(课程表) -
course_video(课程视频表) -
course_test(课程测试表) -
activity(活动表) -
activity_application(活动报名表) -
system_config(系统配置表)
4. 部署方案
-
开发环境:本地Docker Compose。
-
测试环境:独立的Kubernetes集群,用于集成测试、性能测试。
-
生产环境:
-
云上托管K8s服务(如阿里云ACK)。
-
使用云数据库RDS、云Redis、云Elasticsearch、消息队列RocketMQ版。
-
通过SLB+Ingress暴露服务,配置WAF和DDoS防护。
-
使用对象存储服务存放图片、视频、音频、文档等资源文件。
d. 系统测试
1. 测试目标
确保系统功能正确、性能稳定、数据一致、安全可靠,能够满足非遗文化传播的高并发需求。
2. 测试策略
分层测试、持续测试,重点保障核心内容展示和互动功能。
3. 具体测试方案
单元测试:
-
范围:Service层业务逻辑,如内容审核、搜索算法、音视频处理等。
-
工具:JUnit 5, Mockito, Spring Boot Test。
-
重点:边界条件、异常情况处理、数据一致性。
-
覆盖率:核心业务模块行覆盖率 > 85%。
集成测试:
-
范围:微服务API集成、数据库事务、缓存同步、MQ消息消费、第三方服务回调模拟。
-
工具:Spring Boot Test, Testcontainers, RestAssured, WireMock。
-
重点:
-
内容发布-展示全链路测试:模拟完整的内容发布和展示流程,验证各服务的协同。
-
音视频处理测试:测试音视频上传、转码、播放的完整流程。
-
第三方服务集成测试:模拟直播服务、短信服务等第三方服务的调用和回调。
系统测试:
-
功能测试:
-
多场景端到端测试:覆盖用户注册、内容浏览、搜索、互动、学习、活动参与等所有业务场景。
-
兼容性测试:测试管理后台在不同浏览器下的表现,测试移动端在不同手机系统和微信版本下的兼容性。
-
性能测试:
-
工具:JMeter, Gatling。
-
场景:
-
稳定性测试:对系统进行48小时稳定性压力测试。
-
内容搜索压力测试:模拟大量用户同时搜索非遗内容,测试搜索服务的响应时间和吞吐量。
-
音视频播放压力测试:模拟多个用户同时观看音视频,测试媒体服务的并发处理能力。
-
高并发访问测试:模拟大量用户同时访问网站,测试系统的整体承载能力。
-
安全测试:
-
渗透测试:重点测试:1) 越权访问(查看他人数据、修改他人内容);2) SQL注入、XSS攻击;3) 文件上传漏洞;4) 音视频播放安全。
-
业务安全:测试恶意评论、虚假内容发布、刷量等场景。
-
用户体验测试:
-
可用性测试:邀请真实用户进行可用性测试,优化操作流程和界面设计。
-
VR/AR体验测试:测试VR/AR功能的流畅性和交互性。
用户验收测试(UAT):
-
参与者:邀请普通用户、传承人、系统管理员、研究人员代表。
-
环境:搭建与生产环境相似的UAT系统。
-
周期:进行1-2周的试用期。
-
评估:根据业务符合度、操作效率、稳定性进行验收。
4. 自动化测试
-
API自动化回归:使用RestAssured + TestNG构建核心链路自动化测试套件,集成到CI。
-
核心流程UI自动化:使用Selenium或Cypress对管理后台核心流程进行自动化测试。
三、总体进度和安排
第一阶段:需求调研与设计 (第1-4周)
-
第1-2周:调研甘肃非遗文化现状,访谈传承人、保护单位、研究人员,完成需求规格说明书和产品原型。
-
第3周:完成系统微服务架构设计、技术选型、数据库ER设计。
-
第4周:完成详细设计文档、核心接口定义,搭建基础开发环境。
第二阶段:核心服务开发 (第5-12周)
-
第5-6周:搭建微服务框架,开发用户管理、非遗项目管理服务。
-
第7-8周:开发传承人管理、资源管理服务。
-
第9-10周:开发搜索与推荐服务,集成Elasticsearch。
-
第11-12周:开发互动交流、在线学习服务,集成音视频处理。
第三阶段:前端开发与集成 (第13-16周)
-
第13-14周:开发管理后台Web端。
-
第15-16周:开发微信小程序移动端,前后端全面联调。
第四阶段:测试、优化与UAT (第17-20周)
-
第17-18周:全系统集成测试,修复BUG。
-
第19-20周:性能压测与安全测试,进行系统调优。
第五阶段:上线部署与论文 (第21-24周)
-
第21-22周:生产环境部署与试运行。
-
第23-24周:撰写毕业设计论文,准备答辩。
四、推荐参考文献
-
方志朋. 深入理解Spring Cloud与微服务构建[M]. 人民邮电出版社, 2021.
-
周志明. 深入理解Java虚拟机:JVM高级特性与最佳实践[M]. 机械工业出版社, 2019.
-
Martin Fowler. Patterns of Enterprise Application Architecture[M]. Addison-Wesley, 2002.
-
Kleppmann, Martin. Designing Data-Intensive Applications[M]. O’Reilly Media, 2017.
夜雨聆风
