Skip to content

4rthurCai/Joint-Teapot-GUI

Repository files navigation

Joint Teapot Online

基于AI书写的一个基于Flask的Joint Teapot Web界面,为JI的TA提供图形化的课程管理工具。

功能特性

  • 🎓 学生管理: 从Canvas获取学生信息,导出学生列表
  • 🗂️ 仓库管理: 批量创建个人和团队Git仓库
  • 🐛 Issue管理: 批量创建和管理Git仓库的Issues
  • 🔍 代码分析: 使用MOSS进行代码相似度分析
  • 📊 图形化界面: 直观的Web界面,操作简单便捷
  • 🚀 Docker部署: 支持Docker容器化部署

快速开始

方法1:本地运行

  1. 克隆项目

    cd /Users/arthurcai/TA/Joint-Teapot-Online
  2. 运行启动脚本

    ./start.sh
  3. 配置系统参数

方法2:Docker部署

  1. 构建并启动

    docker-compose up -d
  2. 访问应用

配置说明

必需配置

Canvas配置

  • CANVAS_DOMAIN_NAME: Canvas域名 (如: oc.sjtu.edu.cn)
  • CANVAS_ACCESS_TOKEN: Canvas API访问令牌
  • CANVAS_COURSE_ID: 课程ID

Gitea配置

  • 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: 团队名称

主要功能

1. 学生管理

  • 从Canvas自动获取学生列表
  • 显示学生详细信息(姓名、邮箱、学号等)
  • 导出学生信息为CSV文件
  • 实时统计学生状态

2. 仓库管理

  • 批量为所有学生创建个人仓库
  • 根据Canvas分组创建团队仓库
  • 支持从模板仓库创建
  • 仓库搜索和过滤功能

3. Issue管理

  • 批量为多个仓库创建Issues
  • 支持正则表达式匹配仓库名
  • 支持设置里程碑和标签
  • Markdown格式的Issue描述

4. 代码分析

  • 集成MOSS代码相似度检测
  • 支持多种编程语言
  • 生成在线分析报告
  • 自定义文件匹配规则

API接口

  • GET /api/status - 获取系统状态
  • GET /export-students - 导出学生CSV
  • GET /clone-repos - 批量克隆仓库

部署到生产环境

1. 环境要求

  • Python 3.8+
  • Git
  • SSH密钥配置(用于Git操作)

2. 生产配置

# 设置生产环境变量
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:app

3. Nginx代理配置

server {
    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;
    }
}

安全注意事项

  1. 保护敏感信息: 确保.env文件不被提交到版本控制系统
  2. 使用HTTPS: 生产环境建议使用HTTPS协议
  3. 定期更新: 定期更新依赖包以修复安全漏洞
  4. 访问控制: 建议配置防火墙和访问控制
  5. 备份数据: 定期备份重要数据和配置

故障排除

常见问题

  1. 无法连接Canvas/Gitea

    • 检查网络连接
    • 验证API令牌是否正确
    • 确认域名配置无误
  2. Git操作失败

    • 检查SSH密钥配置
    • 验证Git主机连接
    • 确认仓库权限
  3. 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版本,原始命令行版本请访问原项目。

About

GUI for Joint Teapot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors