基于AI书写的一个基于Flask的Joint Teapot Web界面,为JI的TA提供图形化的课程管理工具。
- 🎓 学生管理: 从Canvas获取学生信息,导出学生列表
- 🗂️ 仓库管理: 批量创建个人和团队Git仓库
- 🐛 Issue管理: 批量创建和管理Git仓库的Issues
- 🔍 代码分析: 使用MOSS进行代码相似度分析
- 📊 图形化界面: 直观的Web界面,操作简单便捷
- 🚀 Docker部署: 支持Docker容器化部署
-
克隆项目
cd /Users/arthurcai/TA/Joint-Teapot-Online -
运行启动脚本
./start.sh
-
配置系统参数
- 访问 http://localhost:5000
- 点击"配置"菜单配置Canvas、Gitea等参数
-
构建并启动
docker-compose up -d
-
访问应用
CANVAS_DOMAIN_NAME: Canvas域名 (如: oc.sjtu.edu.cn)CANVAS_ACCESS_TOKEN: Canvas API访问令牌CANVAS_COURSE_ID: 课程ID
GITEA_DOMAIN_NAME: Gitea域名 (如: focs.ji.sjtu.edu.cn)GITEA_ACCESS_TOKEN: Gitea API访问令牌GITEA_ORG_NAME: 组织名称
MATTERMOST_DOMAIN_NAME: Mattermost域名MATTERMOST_ACCESS_TOKEN: Mattermost访问令牌MATTERMOST_TEAM: 团队名称
- 从Canvas自动获取学生列表
- 显示学生详细信息(姓名、邮箱、学号等)
- 导出学生信息为CSV文件
- 实时统计学生状态
- 批量为所有学生创建个人仓库
- 根据Canvas分组创建团队仓库
- 支持从模板仓库创建
- 仓库搜索和过滤功能
- 批量为多个仓库创建Issues
- 支持正则表达式匹配仓库名
- 支持设置里程碑和标签
- Markdown格式的Issue描述
- 集成MOSS代码相似度检测
- 支持多种编程语言
- 生成在线分析报告
- 自定义文件匹配规则
GET /api/status- 获取系统状态GET /export-students- 导出学生CSVGET /clone-repos- 批量克隆仓库
- Python 3.8+
- Git
- SSH密钥配置(用于Git操作)
# 设置生产环境变量
export FLASK_ENV=production
export SECRET_KEY=your-very-secure-secret-key
# 使用WSGI服务器
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:appserver {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}- 保护敏感信息: 确保.env文件不被提交到版本控制系统
- 使用HTTPS: 生产环境建议使用HTTPS协议
- 定期更新: 定期更新依赖包以修复安全漏洞
- 访问控制: 建议配置防火墙和访问控制
- 备份数据: 定期备份重要数据和配置
-
无法连接Canvas/Gitea
- 检查网络连接
- 验证API令牌是否正确
- 确认域名配置无误
-
Git操作失败
- 检查SSH密钥配置
- 验证Git主机连接
- 确认仓库权限
-
MOSS分析失败
- 确保已克隆所有仓库
- 检查文件匹配规则
- 验证网络连接
Joint-Teapot-Online/
├── app.py # 主应用文件
├── requirements.txt # Python依赖
├── Dockerfile # Docker构建文件
├── docker-compose.yml # Docker编排文件
├── start.sh # 启动脚本
├── templates/ # HTML模板
│ ├── base.html
│ ├── index.html
│ ├── config.html
│ └── ...
└── uploads/ # 文件上传目录
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 启动开发服务器
python app.py本项目基于原始Joint Teapot项目开发,遵循相同的开源许可证。
欢迎提交问题报告和功能建议!
如有问题或建议,请通过以下方式联系:
- 创建Issue
- 发送邮件
注意: 这是Joint Teapot的Web版本,原始命令行版本请访问原项目。