You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 months ago | |
|---|---|---|
| doc | 3 months ago | |
| src/cf | 3 months ago | |
| .gitignore | 3 months ago | |
| README.md | 3 months ago | |
README.md
校园论坛智能管理系统
面向校园场景的论坛与内容治理系统,提供发帖/评论/互动、站内私信与通知、搜索与排行榜,以及管理员侧内容审核与申诉处理;同时集成 AI 能力用于智能对话与辅助审核(可按需启用)。
目录
功能特性
- 用户端
- 注册/登录、个人主页、关注/粉丝
- 发帖/编辑/草稿、评论、点赞/收藏
- 搜索(含热搜/历史)、排行榜、浏览历史
- 站内私信、通知中心(含未读数)
- AI 智能助手(会话/上下文对话)
- 管理端
- 内容审核(文本/图片、敏感词、AI 辅助)
- 审核日志
- 申诉处理
技术栈
- 后端
- Spring Boot 2.7.x、Spring Web
- Spring Data JPA
- Redis(缓存/计数/验证码等)
- WebSocket(实时消息/通知推送)
- springdoc-openapi-ui(Swagger/OpenAPI)
- MySQL(默认),H2(可切换)
- 可选:Elasticsearch / Lucene
- 可选:对象存储(OBS)、邮件服务、第三方内容审核/大模型
- 前端
- Vue 3 + Vite
- Vue Router
- Element Plus
- TailwindCSS
- Axios
项目结构
src/cf/backend:后端工程(Maven / Spring Boot)src/cf/frontend:前端工程(Vite / Vue 3)doc:过程文档/周报
快速开始
环境要求
- JDK 8
- Maven 3.6+
- Node.js 16+(或更高)
- MySQL 8.x(或使用 H2)
- Redis(推荐;无 Redis 时部分能力会降级或不可用)
启动后端
在项目根目录执行:
cd src\cf\backend
mvn spring-boot:run
- 默认端口:
8081 - 首次启动会自动创建管理员账号(若不存在):
admin / admin123
启动前端
在项目根目录执行:
cd src\cf\frontend
npm install
npm run dev
前端开发服务器默认会将 /api 代理到 http://localhost:8081(见 src/cf/frontend/vite.config.js)。
配置与安全
后端配置文件:
src/cf/backend/src/main/resources/application.properties
重要提示:仓库中的示例配置可能包含开发阶段的连接信息与密钥。请在本地运行前完成以下处理:
- 替换为你自己的数据库/Redis/ES/邮件/对象存储等配置
- 将第三方 API Key、邮箱口令等敏感信息改为本地私有配置或环境变量注入
- 不要把真实密钥提交到仓库或复制到公开位置
常用配置点(以实际文件为准):
server.port:后端端口spring.datasource.*:数据库连接spring.redis.*:Redis 连接es.enabled与es.*:Elasticsearch 开关与连接python.ai.*/baidu.*/deepseek.*:AI/审核相关外部服务配置spring.mail.*:邮件服务(注册/找回密码验证码等)
接口文档
项目集成了 Swagger/OpenAPI(springdoc-openapi-ui),后端启动后可访问:
http://localhost:8081/swagger-ui.htmlhttp://localhost:8081/swagger-ui/index.htmlhttp://localhost:8081/v3/api-docs
WebSocket 实时推送
后端 WebSocket 端点:/ws
握手需要携带 userId 参数,例如:
ws://localhost:8081/ws?userId=1
用于消息/通知等实时推送;前端可根据服务端发送的 type 字段区分事件(具体字段以实现为准)。
常见问题
- 启动失败/连不上数据库:检查
spring.datasource.url/username/password是否指向本地可用数据库。 - Redis 未启动:验证码、热搜、未读数、缓存等能力可能异常;建议本地启动 Redis。
- 前端请求 404 或跨域:确认前端通过 Vite 代理访问
/api,且后端端口为8081。 - Swagger 页面打不开:确认后端已启动并监听
8081,再访问上面的文档地址。
贡献指南
欢迎提交 Issue / PR:
- 提交前确保能本地启动前后端并完成基本功能自测
- 保持代码风格一致(后端含 Checkstyle 配置)