|  |  |  | @ -0,0 +1,135 @@ | 
			
		
	
		
			
				
					|  |  |  |  | # UniLife 软件体系结构设计文档 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 1. 项目概述 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - **项目名称**:UniLife 学生论坛平台 | 
			
		
	
		
			
				
					|  |  |  |  | - **设计目标**:构建一个面向大学生的集社交、学习资源管理、课程规划与 AI 辅助学习为一体的综合性论坛系统,具备良好的可扩展性、可维护性和高并发响应能力。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 2. 架构设计原则 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - **模块化**:系统划分为多个功能清晰、职责单一的模块,便于维护与扩展。 | 
			
		
	
		
			
				
					|  |  |  |  | - **前后端分离**:使用 RESTful API 进行前后端通信,提高开发效率和系统灵活性。 | 
			
		
	
		
			
				
					|  |  |  |  | - **高内聚低耦合**:模块之间通信通过接口完成,避免强依赖。 | 
			
		
	
		
			
				
					|  |  |  |  | - **可扩展性**:为 AI 功能、个性化推荐等提供预留拓展接口。 | 
			
		
	
		
			
				
					|  |  |  |  | - **安全性**:用户权限管理、数据加密、操作审计等策略保障数据安全。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 3. 系统架构模式与选择理由 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 3.1 架构模式:MVC 模式 + 客户端/服务器模式 + 发布/订阅模式 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - ✅ **MVC 模式(Model-View-Controller)** | 
			
		
	
		
			
				
					|  |  |  |  |   - 用于组织后端服务的内部结构。 | 
			
		
	
		
			
				
					|  |  |  |  |   - 后端采用 Controller - Service - Repository 三层结构,符合 MVC 设计思想。 | 
			
		
	
		
			
				
					|  |  |  |  |   - Controller 负责处理请求和响应,Service 层承担业务逻辑,Repository 负责数据库交互,结构清晰,易于维护。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - ✅ **客户端/服务器模式(Client/Server)** | 
			
		
	
		
			
				
					|  |  |  |  |   - 前端 Vue 应用作为客户端,后端 Spring Boot 应用作为服务器,二者通过 REST API 进行通信。 | 
			
		
	
		
			
				
					|  |  |  |  |   - 前后端职责分离,支持并行开发和部署灵活性,结构典型符合 C/S 模式。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - ✅ **发布/订阅模式(Publish/Subscribe)** | 
			
		
	
		
			
				
					|  |  |  |  |   - 系统中的通知功能采用发布/订阅模式。 | 
			
		
	
		
			
				
					|  |  |  |  |   - 用户行为如发帖、评论、点赞、任务提醒等事件被发布后,通知模块订阅并推送相应消息(如站内信、提醒标记等)。 | 
			
		
	
		
			
				
					|  |  |  |  |   - 可通过 Kafka 或 RabbitMQ 等消息中间件实现解耦通信与异步处理,提升系统响应能力。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 3.2 架构模式优势 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - **关注点分离**:MVC 提高系统可维护性和可测试性。 | 
			
		
	
		
			
				
					|  |  |  |  | - **开发协同效率高**:C/S 模式支持前后端分离开发,提高并行开发效率。 | 
			
		
	
		
			
				
					|  |  |  |  | - **高扩展性**:发布/订阅模式便于异步通知机制和功能拓展(如将通知扩展为邮件、站内信等)。 | 
			
		
	
		
			
				
					|  |  |  |  | - **性能优化能力强**:通过异步事件处理减轻主业务压力,适应高并发场景。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 4. 系统架构总览 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 4.1 技术选型 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 前端框架:Vue.js + Vite + pnpm + Element Plus | 
			
		
	
		
			
				
					|  |  |  |  | - 后端框架:Spring Boot (Java) | 
			
		
	
		
			
				
					|  |  |  |  | - 数据库:MySQL | 
			
		
	
		
			
				
					|  |  |  |  | - 缓存系统:Redis | 
			
		
	
		
			
				
					|  |  |  |  | - AI 支持:GPT-4 API / LLaMA2 13B(可选) | 
			
		
	
		
			
				
					|  |  |  |  | - 接口通信:REST API + gRPC(AI 流式通信) | 
			
		
	
		
			
				
					|  |  |  |  | - 部署方式:Docker 容器化,未来支持 Kubernetes 弹性扩展 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 4.2 逻辑架构图(简要说明) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ``` | 
			
		
	
		
			
				
					|  |  |  |  | [前端 UI] <-> [API 网关] <-> [认证服务 | 论坛服务 | 资源服务 | 日程服务 | AI 服务] <-> [数据库 / 缓存 / 对象存储] | 
			
		
	
		
			
				
					|  |  |  |  | ``` | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 5. 模块划分与职责 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | | 模块         | 主要职责                                                     | | 
			
		
	
		
			
				
					|  |  |  |  | | ------------ | ------------------------------------------------------------ | | 
			
		
	
		
			
				
					|  |  |  |  | | 用户服务     | 注册/登录/权限认证/用户信息管理                              | | 
			
		
	
		
			
				
					|  |  |  |  | | 论坛服务     | 发帖、评论、点赞、话题分类、私信功能(含历史记录、2分钟内撤回) | | 
			
		
	
		
			
				
					|  |  |  |  | | 资源共享服务 | 上传/下载资料,资料分类、搜索、权限管理、人工审核            | | 
			
		
	
		
			
				
					|  |  |  |  | | 日程管理服务 | 课程表导入、日程整合、自定义提醒与修改                       | | 
			
		
	
		
			
				
					|  |  |  |  | | AI 辅助服务  | 生成学习计划、智能提醒、个性化推荐、GPT对话支持(gRPC流式接口) | | 
			
		
	
		
			
				
					|  |  |  |  | | 通知服务     | 作业提醒、系统通知、点赞/回复消息通知(建议通过消息队列异步处理) | | 
			
		
	
		
			
				
					|  |  |  |  | | 积分系统     | 行为打分、积分兑换、资源下载权限控制                         | | 
			
		
	
		
			
				
					|  |  |  |  | | 管理后台服务 | 审核资源与帖子、用户管理与封禁                               | | 
			
		
	
		
			
				
					|  |  |  |  | | 搜索服务     | 支持关键词搜索,课程、资源、帖子全局搜索(推荐使用 ElasticSearch) | | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 6. 通信与数据流 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 前端通过 HTTP/HTTPS 与 API 网关通信 | 
			
		
	
		
			
				
					|  |  |  |  | - 后端模块间采用 REST 或 RPC(gRPC)协议交互 | 
			
		
	
		
			
				
					|  |  |  |  | - Redis 缓存热点数据 | 
			
		
	
		
			
				
					|  |  |  |  | - 消息通知系统推荐采用 Kafka 或 RabbitMQ 解耦模块间消息 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 7. 数据存储结构概览 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - MySQL:用户、帖子、评论、资源元数据、积分、日程等 | 
			
		
	
		
			
				
					|  |  |  |  | - Redis:Token缓存、热门资源、课程提醒 | 
			
		
	
		
			
				
					|  |  |  |  | - OSS:资源上传文件存储(PDF、PPT、ZIP 等) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 8. 安全与权限设计 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 用户角色:游客、普通用户、管理员 | 
			
		
	
		
			
				
					|  |  |  |  | - 所有管理员权限相同,无权限等级划分 | 
			
		
	
		
			
				
					|  |  |  |  | - JWT Token 进行身份认证 | 
			
		
	
		
			
				
					|  |  |  |  | - RBAC 权限控制 | 
			
		
	
		
			
				
					|  |  |  |  | - 日志记录所有敏感操作 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 9. 部署架构(初期) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 后端单体服务运行于 Docker 容器 | 
			
		
	
		
			
				
					|  |  |  |  | - Nginx 反向代理并负载均衡 | 
			
		
	
		
			
				
					|  |  |  |  | - 前端由 Nginx 提供静态服务 | 
			
		
	
		
			
				
					|  |  |  |  | - AI 模块调用第三方 GPT API 或本地部署模型(gRPC) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 10. 可扩展与演化方向 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 服务拆分为独立微服务 | 
			
		
	
		
			
				
					|  |  |  |  | - 搜索系统引入 ElasticSearch | 
			
		
	
		
			
				
					|  |  |  |  | - 使用 Kafka 实现通知和任务调度解耦 | 
			
		
	
		
			
				
					|  |  |  |  | - AI 服务升级为自主模型训练与部署 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 11. 设计思考说明 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 11.1 私信系统设计建议 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 建议采用 WebSocket 实现实时通信,结合 Redis 存储会话状态,MySQL 持久化聊天记录 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 11.2 AI 模块设计建议 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 推荐前期使用 GPT-4 API 提供对话与推荐功能;长期可将 LLaMA2 本地化部署,通过 gRPC 提供流式学习建议与任务规划接口 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 11.3 搜索系统建议 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 推荐使用 ElasticSearch 实现全文检索,支持关键词模糊匹配、标签过滤、结果高亮等高级功能,提升搜索体验 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ### 11.4 积分系统建议 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 建议制定如下规则:发帖+2分,上传资料+5分,评论+1分;下载资源需 5-20 积分不等,帖子置顶需 30 积分等,便于引导用户行为。 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 12. UML 架构图建议模型 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | - 用例图:展示不同角色可访问的功能模块 | 
			
		
	
		
			
				
					|  |  |  |  | - 组件图:描述系统模块划分与接口依赖 | 
			
		
	
		
			
				
					|  |  |  |  | - 部署图:说明各模块运行在哪些物理/虚拟节点上 | 
			
		
	
		
			
				
					|  |  |  |  | - 顺序图(可选):如 AI 计划生成流程、消息通知流程等交互细节 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ## 13. 结语 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 本设计文档为 UniLife 项目的体系结构设计版本,依据当前需求分析形成。在开发推进过程中,系统结构将持续优化,确保系统稳定、高效、可维护与可扩展。 |