一个基于 Python/Django 构建的题目共享与自测平台,支持用户注册登录、题目上传(OCR识别)、题组管理、小组协作、错题推荐及学习统计可视化等功能。
- 用户管理:注册、登录、个人资料管理(头像、简介等)
- 题目管理:创建、编辑、删除题目,支持文本和图片两种格式
- OCR 识别:通过上传图片自动识别文本,快速录入题目内容
- 题组管理:将题目整理为题单,支持分科目分类
- 题组共享:将题单分享给指定小组或公开发布
- 用户小组:创建和加入学习小组,成员可共享题单
- 题目搜索:搜索公开或小组内共享的题目和题单
- 错题回顾:根据错误频率和科目智能推荐复习题目
- 学习统计:可视化展示每日做题量、正确率及科目分布
- 敏感词过滤:基于 DFA 算法自动过滤题目中的敏感词
- 管理后台:自定义 Django 管理界面
- 后端:Python 3.8+、Django 4.2
- 前端:Tailwind CSS、原生 JavaScript
- 数据库:SQLite(开发)/ MySQL(生产可选)
- OCR:Tesseract + pytesseract + Pillow
- 机器学习:scikit-learn、scipy、numpy(用于错题推荐算法)
- 其他:django-markdownx(Markdown 支持)、django-widget-tweaks
- Python 3.8 或更高版本
- pip(Python 包管理器)
- Tesseract OCR 引擎(用于图片文字识别)
- (可选)Conda 环境管理器
git clone https://github.com/plhlalala/BUAA_python_summer_project.git
cd BUAA_python_summer_project使用 pip + venv:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate或使用 Conda:
conda create --name se python=3.8
conda activate se使用 pip(推荐):
pip install -r requirements-pip.txt使用 Conda + pip(Windows 平台):
conda install --file requirements-conda.txt
pip install django-markdownx==4.0.7 django-widget-tweaks==1.4.5OCR 功能依赖 Tesseract 引擎,请根据操作系统安装:
- Ubuntu/Debian:
sudo apt-get install tesseract-ocr tesseract-ocr-chi-sim
- macOS:
brew install tesseract tesseract-lang
- Windows:从 Tesseract 官方页面 下载安装包,并将安装路径添加到系统 PATH,或在
questions/views.py中ocr_image函数里指定实际安装路径(常见路径示例):# 64 位系统(常见) pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # 32 位系统 # pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserver在浏览器中访问 http://127.0.0.1:8000/ 即可使用平台。
管理员后台地址:http://127.0.0.1:8000/admin/
BUAA_python_summer_project/
├── core/ # 首页视图和学习能力模型
├── groups/ # 用户小组管理
├── questions/ # 题目、题组、答题记录管理
├── user/ # 用户注册、登录、个人资料
├── shareplatform/ # Django 项目配置(settings、urls等)
├── templates/ # 全局 HTML 模板
├── static/ # 静态文件(CSS、JS、图片)
├── media/ # 用户上传的媒体文件
├── sensitive_word_filter.py # 基于 DFA 的敏感词过滤器
├── sensitive_words_lines.txt # 敏感词列表
├── requirements-pip.txt # pip 依赖列表
├── requirements-conda.txt # Conda 依赖列表
└── manage.py
- 注册/登录:访问
/user/register/注册账号,然后登录。 - 创建题目:登录后进入题目管理页面,可手动输入或通过上传图片 OCR 识别录入题目。
- 整理题单:将题目添加到题单中,便于分类管理和练习。
- 加入小组:在小组页面搜索并加入感兴趣的学习小组,或创建自己的小组。
- 共享题单:将题单分享给小组成员或设置为公开,供他人练习。
- 练习题目:在题单详情页开始练习,系统会记录答题情况。
- 查看统计:在统计页面查看答题数据和学习曲线。
- 错题复习:在错题页面根据科目和数量获取智能推荐复习题目。
- 密钥安全:生产环境部署前,请将
shareplatform/settings.py中的SECRET_KEY替换为随机生成的密钥,并将DEBUG设置为False。 - 允许的主机:在
settings.py的ALLOWED_HOSTS中添加您的服务器域名或 IP 地址。 - 数据库:默认使用 SQLite,如需使用 MySQL,请修改
settings.py中的DATABASES配置,并确保已安装 PyMySQL。 - OCR 路径:Linux/macOS 下 Tesseract 通常安装在
/usr/bin/tesseract,Windows 下请参照第 4 步配置路径。