# 大学生交流学习网后端 **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文件打包为雪碧图。 ## 四、作品演示图 ### 用户端 **主页** ![Snipaste_2024-03-25_20-06-02](imgs/Snipaste_2024-03-25_20-06-02.png) **AI问答** ![Snipaste_2024-03-25_20-07-48](imgs/Snipaste_2024-03-25_20-07-48.png) **用户个人主页** ![Snipaste_2024-03-25_20-10-18](imgs/Snipaste_2024-03-25_20-10-18.png) **用户文内容管理** ![Snipaste_2024-03-25_20-10-58](imgs/Snipaste_2024-03-25_20-10-58.png) **用户发布内容** ![Snipaste_2024-03-25_20-11-45](imgs/Snipaste_2024-03-25_20-11-45.png) **用户登录** ![Snipaste_2024-03-25_20-12-43](imgs/Snipaste_2024-03-25_20-12-43.png) **用户注册** ![Snipaste_2024-03-25_20-12-55](imgs/Snipaste_2024-03-25_20-12-55.png) **用户找回密码** ![Snipaste_2024-03-25_20-13-06](imgs/Snipaste_2024-03-25_20-13-06.png) ### 管理端 **首页** ![Snipaste_2024-03-26_15-13-47](imgs/Snipaste_2024-03-26_15-13-47.png) **登录** ![Snipaste_2024-03-26_15-16-30](imgs/Snipaste_2024-03-26_15-16-30.png) **系统管理-用户管理** ![Snipaste_2024-03-26_15-13-58](imgs/Snipaste_2024-03-26_15-13-58.png) **系统管理-角色管理** ![Snipaste_2024-03-26_15-14-09](imgs/Snipaste_2024-03-26_15-14-09.png) **系统管理-菜单管理** ![Snipaste_2024-03-26_15-14-30](imgs/Snipaste_2024-03-26_15-14-30.png) **系统管理-字典管理** ![Snipaste_2024-03-26_15-14-40](imgs/Snipaste_2024-03-26_15-14-40.png) **系统管理-参数设置** ![Snipaste_2024-03-26_15-14-48](imgs/Snipaste_2024-03-26_15-14-48.png) **系统管理-日志管理-操作日志** ![Snipaste_2024-03-26_15-14-58](imgs/Snipaste_2024-03-26_15-14-58.png) **系统管理-日志管理-登录日志** ![Snipaste_2024-03-26_15-15-08](imgs/Snipaste_2024-03-26_15-15-08.png) **学生论坛-内容管理** ![Snipaste_2024-03-26_15-15-20](imgs/Snipaste_2024-03-26_15-15-20.png) **学生论坛-类别管理** ![Snipaste_2024-03-26_15-15-36](imgs/Snipaste_2024-03-26_15-15-36.png) **学生论坛-标签管理** ![Snipaste_2024-03-26_15-15-50](imgs/Snipaste_2024-03-26_15-15-50.png) **学生论坛-评论管理** ![Snipaste_2024-03-26_15-16-00](imgs/Snipaste_2024-03-26_15-16-00.png) **个人中心** ![Snipaste_2024-03-26_15-16-18](imgs/Snipaste_2024-03-26_15-16-18.png) ## 五、设计思路 ### 用户功能 ​ 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`目录下,并且生成了随机数据以便测试