本系统是基于 Django 5.2 开发的智能影像计算实验室综合管理平台。它全面覆盖实验室信息维护、科研成果管理、成员协作社区及智能问答助手四大核心场景。系统支持多角色分级权限,涵盖普通用户、三级管理员、二级管理员和一级管理员。借助富文本编辑、向量检索等先进技术,实现了实验室从基础信息到成果沉淀的全流程数字化管理。
- 用户体系:提供注册、登录功能,支持个人信息编辑,包括头像上传和联系方式修改。用户可随时查看自己的角色(普通用户/三级/二级/一级管理员)。
- 权限分级:
- 普通用户:拥有浏览系统内各类内容的权限,可自由发布帖子和回复,申请加入话题,还能查看新闻。
- 三级/二级管理员:负责审核帖子和话题,可查看拒绝原因,及时删除违规内容,并对新闻进行初审。
- 一级管理员:拥有最高权限,可管理实验室概况(如成立背景、发展历程)、成员信息、科研成果(论文、专利、项目),对新闻进行终审,还能配置轮播图。
- 实验室概况:一级管理员可更新实验室的成立背景、发展历程、组织架构,系统支持字数统计。同时,可上传实验室手册(仅支持 ≤10MB 的 PDF 文件),并配置实验室图片轮播,支持多图上传和删除。
- 成员管理:能够添加和修改成员信息,包括研究方向、学术履历、联系方式。可关联成员的学术成果(论文、专利、项目),支持按角色(教授、副教授、研究生等)分类展示成员,在成员详情页可查看其学术成果列表。
- 论文管理:支持添加论文标题、DOI 链接、发表日期(使用日期选择器)、发表媒介(期刊、会议、研讨会)。可关联参与成员,上传论文 PDF(支持下载),并进行分类管理(一级分类:综述、医学影像处理论文、自然图像处理论文;二级分类:期刊、会议、研讨会)。
- 专利管理:记录专利标题、技术领域、转化状态、专利号,支持上传专利图片(多图展示)。
- 项目管理:跟踪项目周期(开始和结束日期)、核心成员、进度里程碑、阶段性成果,标记项目状态(进行中、已完成),关联 GitHub 项目链接。
- 话题与帖子:用户可以创建话题(需审核)、发布帖子(使用 CKEditor 5 富文本编辑器),支持帖子回复(嵌套回复)、折叠/展开历史回复。
- 审核机制:管理员可审核未通过的话题和帖子,查看拒绝原因(需填写至少 10 字说明)。
- 互动功能:具备用户卡片(点击头像查看详细信息)、分页导航,帖子和回复仅作者或管理员可删除。
- 新闻发布:支持新闻在草稿、待初审、初审通过、终审通过、已发布、已拒绝等状态间流转,可上传封面图,使用 CKEditor 5 编辑内容,支持按状态、关键词、日期范围筛选新闻。
- 轮播图配置:可绑定静态图片、论文、项目、专利或新闻,支持排序和启用状态管理,可自定义标题和描述。
- 知识库构建:支持加载 PDF、Word、网页等文档,通过 DashScope API 生成文本向量,存储至 Chroma 向量数据库。
- 智能检索:用户提问时,自动检索知识库相关内容,结合上下文生成回答,支持本地知识库与通用模型融合。
| 分类 | 技术/工具 | 说明 |
|---|---|---|
| 后端框架 | Django 5.2 | Python Web 框架,提供 MVC 架构支持 |
| 数据库 | MySQL 8.0+ | 存储用户、实验室、成果等数据 |
| 前端样式 | Tailwind CSS | 响应式布局,快速实现设计风格 |
| 富文本编辑 | CKEditor 5 | 新闻、帖子、话题内容编辑(支持图片上传) |
| 向量数据库 | Chroma | 存储实验室知识库向量数据 |
| 嵌入模型 | DashScope(text-embedding-v3) | 文本向量化,支持 1024 维向量生成 |
| 图标库 | Font Awesome 6.7.2 | 提供界面图标支持(如 fas fa-comments) |
- Python:3.13+(推荐 3.13.0)
- Django:5.2+
- MySQL:8.0+(或 SQLite 3 用于开发)
- Node.js:可选(用于 Tailwind CSS 构建)
- 依赖库:
requirements.txt包含 Django、django-ckeditor-5、Pillow(图像处理)、langchain(知识库管理)等核心库。 - 环境变量:需配置
DASHSCOPE_API_KEY(用于智能助手的向量生成)。
git clone <项目仓库地址>
cd IIC_Djangopython -m venv venv
source venv/bin/activatepython -m venv venv
.\venv\Scripts\activatepip install -r requirements.txt修改 IIC_Django/settings.py 中的数据库配置(以 MySQL 为例):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'iic_lab', # 数据库名
'USER': 'root', # 数据库用户名
'PASSWORD': 'your_pass', # 数据库密码
'HOST': '127.0.0.1',
'PORT': '3306',
}
}python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserexport DASHSCOPE_API_KEY="your_api_key"set DASHSCOPE_API_KEY=your_api_keypython manage.py runserver访问 http://127.0.0.1:8000/ 进入系统首页。
IIC_Django/
├── IIC_Django/ # Django 核心配置
│ ├── settings.py # 全局配置(数据库/应用/静态文件)
│ ├── urls.py # 全局路由
│ └── wsgi.py # WSGI 入口
├── apps/ # 业务应用
│ ├── club/ # 社区模块(话题/帖子/回复)
│ │ ├── models.py # 话题/帖子/回复模型
│ │ ├── forms.py # 富文本表单(CKEditor 5)
│ │ └── admin.py # 后台管理配置
│ ├── news/ # 新闻模块(发布/审核)
│ │ ├── models.py # 新闻模型(含状态字段)
│ │ └── views.py # 新闻审核视图(支持状态筛选)
│ ├── lab_overview/ # 实验室概况管理
│ │ ├── models.py # 实验室概况模型(含手册文件字段)
│ │ └── forms.py # 手册文件验证(PDF≤10MB)
│ └── ... # 其他模块(member/paper/project等)
├── templates/ # 前端模板
│ ├── base.html # 基础模板(导航/页脚)
│ ├── club/ # 社区页面(wall.html/topics.html)
│ ├── news/ # 新闻页面(news_detail.html/review_news_list.html)
│ └── ... # 其他模块模板
├── static/ # 静态文件
│ ├── css/ # Tailwind 样式
│ ├── js/ # 交互脚本(帖子折叠/轮播图切换)
│ └── avatar/ # 默认头像
├── media/ # 用户上传文件(头像/专利图片/论文PDF)
├── chroma_db/ # 智能助手知识库(Chroma向量数据库)
├── IICRobot.py # 智能问答助手主程序
├── manage.py # Django 管理脚本
└── README.md # 项目说明文档
- CatStatic(李润杰)👏
- Liu Zhixiong(刘志雄)👏
- okok-meme(张曼)👏
- gaga511(邓嘉芯)👏
- xufang71(余可馨)👏
- Fork 本仓库到个人账号。
- 创建特性分支:
git checkout -b feature/new-feature。 - 提交代码并添加清晰的提交说明。
- 推送分支到远程仓库:
git push origin feature/new-feature。 - 提交 Pull Request,描述功能或修复的细节。
如有问题或建议,欢迎联系:18181274603@shu.edu.cn
本项目采用 MIT 许可证,欢迎开源贡献!