OpenJudge是一个用于Python教学的综合学习系统,提供练习、考试、AI聊天等功能,帮助学生更有效地学习Python编程。
- 练习模式:随机抽取题目,学生可以反复练习直到掌握
- 考试模式:支持限时考试,系统自动评分
- AI聊天:学生可提问Python学习相关问题,获得AI辅助
- 多题型支持:单选题、多选题、判断题、填空题、问答题
- IP绑定:防止同一账号多地登录
- 数据统计:记录学生练习和考试数据,提供分析报告
- 管理后台:题库管理、用户管理、数据导出等
-
Web应用:基于FastAPI构建的Web服务,提供学习系统核心功能
- 练习模式界面
- 考试模式界面
- AI聊天界面
- 登录和用户管理
- 题库系统
-
桌面管理工具:基于PyQt5和QFluentWidgets构建的GUI应用
- 服务器控制
- 配置管理
- 题库管理
- 数据管理
-
后端:
- FastAPI (Web框架)
- SQLAlchemy (ORM)
- JWT (认证)
- Uvicorn (ASGI服务器)
- DeepSeek API (AI聊天)
-
前端:
- HTML/CSS/JavaScript
- 响应式设计
-
桌面工具:
- PyQt5
- QFluentWidgets (UI组件)
-
数据存储:
- SQLite数据库
- JSON文件 (题库存储)
- Python 3.8+
- pip包管理工具
- 安装依赖项
pip install -r requirements.txt
- 启动Web服务
python app.py
或使用管理工具启动:
python main.py
- 访问系统
Web界面:http://localhost:8000
系统使用config.json
进行配置,主要配置项包括:
- admin: 管理员账户信息
- database: 数据库配置
- deepseek: AI聊天服务配置
- features: 功能开关
- rate_limit: 请求限流配置
- system: 系统参数设置
- token: 认证相关配置
第一次运行时会自动创建默认配置文件。
系统附带GUI管理工具,提供以下功能:
- 服务器控制:启动/停止Web服务
- 配置管理:修改系统设置
- 题库管理:添加/编辑/删除题目
- 数据管理:查看用户数据、导出统计信息
项目支持使用PyInstaller打包为独立可执行文件:
pyinstaller --onefile --add-data "static:static" --add-data "templates:templates" --icon=logo.ico --noconsole --name my_app --version-file=version_info.rc main.py
- 主要开发者:laysath
详见LICENSE文件