# 大学生交流学习网后端
**Repository Path**: xianzhiyong763/jishe
## Basic Information
- **Project Name**: 大学生交流学习网后端
- **Description**: 比赛项目。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-03-26
- **Last Updated**: 2025-10-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
大学生交流学习网
## 一、项目介绍
本项目是一个高校学生交流学习论坛
> 新式的信息交流的平台,帮助学生及时查阅校内实时信息,在此平台去获取或者发布自己的供需信息,学生也可以体验到当今发展迅速的人工智能AI科技。
Web 端使用 **Vue** + **ElementUi**。 后端使用 **SpringBoot** + **Mybatis-Plus**进行开发
- 接入AI智能聊天机器人,用户能跟AI聊天
- PC网页端完全响应式布局
支持电脑、平板、手机等所有主流设备
### 使用到的技术
- 前端
- Vue框架 --2.6.14
- ElementUI组件库 --2.15.6
- JavaScript脚本语言
- HTML超文本标记语言
- CSS层叠式样式表
- 后端
- Java语言 --1.8
- Spring框架 --5.3.20
- SpringMVC表现层框架 --2.5.14
- SpringSecurity认证授权 --2.5.14
- SpringBoot快速简化Spring开发 --2.5.14
- Mybatis-Plus简化持久层开发 --3.5.2
- Redis缓存加速读取 --7.2.4
- MySQL数据库 --8.0.36
- 阿里云OSS对象存储 --3.10.2
## 二、项目代码仓库地址
| | Gitee |
| :--------: | :-------------------------------------------: |
| 后端服务器 | |
| 用户web端 | |
| 管理web端 | |
## 三、开源代码与组件使用情况
### **开源代码**
1. **SpringBoot**
- **版本:**2.5.14
- **用途:**简化Spring开发,内嵌Tomcat服务器,加速开发效率。
2. **MyBatis-Plus**
- **版本:**3.5.2
- **用途:**简化后端服务器对数据库的操作。
3. **MySQL**
- **版本:**8.0.36
- **用途:**数据库。
4. **Redis**
- **版本:**7.2.4
- **用途:**缓存数据,减少数据库的访问压力,速度更快。
5. **Swagger**
- **版本:** 3.0.0
- **用途:** Swagger用于生成、描述、调试和可视化API文档。
6. **Fastjson**
- **版本:** 2.0.14
- **用途:** Fastjson是一个快速的Java JSON处理器,用于序列化和反序列化JSON数据。
7. **Hutool**
- **版本:** 5.8.8
- **用途:** Hutool是一个Java工具包,提供了许多实用的工具方法和类,用于简化开发任务。
8. **Apache Commons FileUpload**
- **版本:** 1.4
- **用途:** Commons FileUpload是Apache的一个项目,用于处理HTTP文件上传请求。
9. **MapStruct**
- **版本:** 1.5.3.Final
- **用途:** MapStruct是一个Java注解处理器,用于自动生成类型安全的对象映射代码。
10. **Axios**
- **版本:** ^0.26.0
- **用途:** Axios是一个基于Promise的HTTP客户端,用于发送异步请求。
11. **Clipboard**
- **版本:** ^2.0.10
- **用途:** Clipboard是一个用于复制文本到剪贴板的现代解决方案。
12. **Core-js**
- **版本:** ^3.19.3
- **用途:** Core-js是一个模块化的JavaScript标准库,提供了对ECMAScript新特性的兼容性支持。
13. **Cross-env**
- **版本:** ^7.0.3
- **用途:** Cross-env用于设置跨平台的环境变量,通常用于配置不同环境下的构建行为。
14. **Element UI**
- **版本:** ^2.15.6
- **用途:** Element UI是一套基于Vue.js的桌面端UI组件库。
15. **File Saver**
- **版本:** 2.0.5
- **用途:** File Saver用于在浏览器中保存文件。
16. **JS Cookie**
- **版本:** ^3.0.1
- **用途:** JS Cookie用于操作和管理浏览器中的Cookie。
17. **Nuxt**
- **版本:** ^2.15.8
- **用途:** Nuxt.js是一个基于Vue.js的通用应用框架,用于快速开发服务端渲染的Web应用。
18. **Video.js**
- **版本:** ^7.17.0
- **用途:** Video.js是一个开源的HTML5视频播放器,提供了丰富的自定义和扩展功能。
19. **Vue**
- **版本:** ^2.6.14
- **用途:** Vue.js是一个流行的JavaScript框架,用于构建用户界面。
20. **Vue Cropper**
- **版本:** ^0.5.10
- **用途:** Vue Cropper是一个基于Vue.js的图片裁剪组件。
21. **Vue Server Renderer**
- **版本:** ^2.6.14
- **用途:** Vue Server Renderer用于在服务器端渲染Vue.js应用。
22. **Vue Template Compiler**
- **版本:** ^2.6.14
- **用途:** Vue Template Compiler用于编译Vue.js模板。
23. **Webpack**
- **版本:** ^4.46.0
- **用途:** Webpack是一个模块打包工具,用于构建现代Web应用。
### **组件使用情况**
1. **阿里云 SDK OSS (Aliyun SDK OSS)**
- **版本:** 3.10.2
- **用途:** 阿里云 SDK OSS用于与阿里云对象存储服务进行集成,实现文件存储和管理功能。
2. **SVG Sprite Loader**
- **版本:** ^6.0.11
- **用途:** SVG Sprite Loader用于将SVG文件打包为雪碧图。
## 四、作品演示图
### 用户端
**主页**

**AI问答**

**用户个人主页**

**用户文内容管理**

**用户发布内容**

**用户登录**

**用户注册**

**用户找回密码**

### 管理端
**首页**

**登录**

**系统管理-用户管理**

**系统管理-角色管理**

**系统管理-菜单管理**

**系统管理-字典管理**

**系统管理-参数设置**

**系统管理-日志管理-操作日志**

**系统管理-日志管理-登录日志**

**学生论坛-内容管理**

**学生论坛-类别管理**

**学生论坛-标签管理**

**学生论坛-评论管理**

**个人中心**

## 五、设计思路
### 用户功能
1.**注册登录**:用户可以注册账号并登录,以便参与论坛的各项活动。
2.**找回密码**:用户忘记密码时,可以使用自己的 **邮箱接收验证码** 重新设置密码。
3.**AI问答**:用户生活学习中遇到问题时,可以向 **AI提问** ,获取到合理的建议。
4.**学习交流**:用户可以在专门板块分享学习心得、提问问题,互相学习交流。
5.**组团旅游**:用户可以组织或参加组团旅游活动,分享旅行经验和计划。
6.**闲置买卖**:用户可以发布闲置物品信息,进行买卖交易。
7.**实习就业**:提供实习和就业信息发布板块,帮助用户寻找实习和工作机会。
8.**内容管理**:用户可以管理自己发布的内容,对其进行删除等操作。
### 管理员功能
1.**注册登录**:使用管理员身份账户登录,管理用户。
2.**管理用户:**对用户发表的文章可以进行审核和增删改查等操作,包括新增和修改用户个人信息,如账户状态(是否封号)等等。
3.**新增分类:**管理员可以对用户端的分类进行新增修改等操作,便于管理和更新。
4.**评论管理:**管理用户发表的评论信息
5.**角色管理:**管理员可以对账户进行操作,为用户**授权**(超级管理员、管理员、审核员、普通用户、浏览用户),不同角色有不同的操作权限。
6.**日志查看:**管理员可以查看用户的使用情况(登录日志、操作日志)。
### AI问答功能
1.整合**AI技术**,为用户提供智能问答服务,帮助解决问题和提供个性化建议。
2.AI可以针对用户提出的问题进行**智能分析和回答**,提高用户体验和问题解决效率。
### 界面设计
1.清晰简洁的界面设计,方便用户浏览和操作。
2.页面对于不同的设备,如手机、平板、电脑等有兼容性,合理调整页面大小。
3.分模块展示各功能板块,使用户能够快速找到所需信息。
4.设计友好的交互元素,提升用户体验。
### 安全性和隐私保护
1.采取安全措施保护用户信息安全,加密存储用户密码。
2.用户头像和发表的图片视频文件采用了值得信赖的 **阿里云OSS存储服务** ,比本地存储更安全。
3.遵守隐私政策,保护用户隐私,不泄露个人信息。
4.记录了用户的 **操作日志** ,提高系统的可维护性和安全性。
### 社区管理
1.设立管理员端,提供论坛内容审核和用户管理功能。
2.制定社区规范,维护论坛秩序,确保良好的交流氛围。
### 持续改进
1.定期收集用户反馈,不断改进论坛功能和体验。
2.跟踪技术发展,及时更新AI问答功能,保持论坛的创新性和竞争力。
## 六、设计重点难点
**AI问答功能**
1. API认证和安全性:确保安全地存储和传输AI API密钥,以避免信息泄露和滥用。
2. 数据处理和格式转换:将项目数据转换为AI API所需的Json格式,确保数据的准确性和完整性。
3. 请求限制和成本控制:AI API可能有请求限制和费用计算,需要合理规划和控制请求频率和成本。
4. 结果解析和处理:有效解析和处理AI API返回的结果,以便在项目中进行合适的展示和应用。
5. 性能优化:确保项目在调用AI API时具有良好的性能和响应速度,避免因API调用导致的延迟问题。
6. 错误处理和异常情况:处理AI API调用过程中可能出现的错误和异常情况,保证项目的稳定性和可靠性。
7. 语言理解和模型选择:根据项目需求选择合适的AI语言模型,并理解不同模型之间的差异和适用场景
8. 数据隐私和合规性:确保项目在使用AI API时遵守数据隐私和合规性规定,保护用户数据和隐私信息。
**阿里云OSS对象存储**
1. 访问控制:需要正确配置访问权限,避免数据泄露或未经授权的访问,允许只允许本项目的前端服务器地址跨域访问。
2. 数据安全:需要保证数据在传输和存储过程中的安全性,防止数据被篡改或泄露。
## 七、运行项目
### 用户端、管理端
> 前端项目运行之前需要先配置好前端node环境
运行用户端:进入到用户端的目录`nuxt_campus_example-master`,执行命令下载依赖,node使用的版本是16.16.0
```
npm install
```
启动项目
```
npm run dev
```
运行管理端:进入到目录`vue_campus_admin`执行上面同样的操作即可
### 后端
进入Intellij IDEA 开发工具,将maven仓库地址和设置文件设置为自己的路径,在配置文件 MySQL 和 Redis 的账号密码内容设置为自己的,点击运行项目即可
### 数据库
提供的数据库SQL文件位于`campus-example-master/sql/campus_example-1.1.7.sql`目录下,并且生成了随机数据以便测试