Files
toolbox/README.md
2025-10-24 12:53:22 +08:00

6.0 KiB
Raw Permalink Blame History

学生课程批量退选工具

🚀 功能概述

本工具提供用户友好的 Web 界面来帮助管理员批量退选学生的课程,支持文件上传、数据预览和可视化操作,让批量退课更加直观便捷。

🏗️ 项目架构

deleclass_副本2/
├── src/                    # 后端 API 服务
│   └── main.py            # Flask API 服务器
├── toolbox-app/           # 前端 Web 应用
│   ├── src/               # Vue.js 源代码
│   ├── public/            # 静态资源
│   └── package.json       # 前端依赖配置
├── requirements.txt       # Python 依赖
├── generate_template.py   # Excel 模板生成工具
├── .env.example          # 环境变量模板
└── README.md             # 项目文档

🛠️ 技术栈

后端

  • Python 3.x - 主要编程语言
  • Flask - Web 框架,提供 API 服务
  • openpyxl - Excel 文件处理
  • requests - HTTP 请求库
  • python-dotenv - 环境变量管理

前端

  • Vue.js 3 - 现代化前端框架
  • Vite - 快速构建工具
  • Element Plus - UI 组件库
  • Axios - HTTP 客户端

🎯 核心功能

系统会处理 Excel 文件中的学生 ID 和课程班 ID 列表,执行以下操作:

  1. 获取学生课程:通过 GET 请求获取每个学生当前已选的课程班列表
  2. 匹配与退课:在学生的已选课程中匹配需要退选的课程班 ID并通过 DELETE 请求发起退课操作
  3. 结果反馈:提供详细的处理结果和统计报告

🛡️ 安全第一:为了防止误操作,本工具采用 先预览,后确认 的安全执行模式。


🚀 快速开始

1. 启动后端服务

# 安装 Python 依赖
pip3 install -r requirements.txt

# 配置环境变量(创建 .env 文件)
cp .env.example .env
# 编辑 .env 文件,填入您的 API 配置

# 启动 Flask 后端服务
python3 src/main.py

2. 启动前端应用

# 进入前端目录
cd toolbox-app

# 安装 Node.js 依赖
npm install

# 启动开发服务器
npm run dev

3. 使用 Web 界面

  1. 打开浏览器访问 http://localhost:5173
  2. 上传包含学生 ID 和课程班 ID 的 Excel 文件
  3. 预览退课数据,确认无误后执行批量退课
  4. 查看详细的操作结果和统计信息

📋 数据格式要求

Excel 文件应包含以下列:

学生ID 课程班ID
3831629 1820221, 1820210
3831630 1820456
  • 学生ID: 学生的唯一标识符
  • 课程班ID: 需要退选的一个或多个课程班 ID多个 ID 之间用英文逗号 , 分隔

⚙️ 环境配置

创建 .env 文件并配置以下参数:

# --- API 配置 ---
BASE_URL=https://api.seiue.com

# --- 身份认证 ---
# ⚠️ 请将 <你的Token> 替换为有效的 Bearer Token
AUTHORIZATION="Bearer <你的Token>"
X_ROLE="shadow"
X_SCHOOL_ID="665"
X_REFLECTION_ID="969269"
SEMESTER_ID=61626

⚠️ 重要提醒:

  • 必须将 AUTHORIZATION 中的 <你的Token> 替换为您的有效令牌
  • .env 文件包含敏感信息,请勿提交到公共代码仓库

🔧 开发指南

本地开发环境搭建

  1. 克隆项目

    git clone https://git.vcck.cn/nvex/toolbox.git
    cd toolbox
    
  2. 后端开发

    # 安装 Python 依赖
    pip3 install -r requirements.txt
    
    # 配置环境变量
    cp .env.example .env
    # 编辑 .env 文件
    
    # 启动后端服务(开发模式)
    python3 src/main.py
    
  3. 前端开发

    cd toolbox-app
    
    # 安装依赖
    npm install
    
    # 启动开发服务器
    npm run dev
    
    # 构建生产版本
    npm run build
    

项目结构说明

├── src/main.py              # Flask API 服务器
├── toolbox-app/
│   ├── src/
│   │   ├── components/      # Vue 组件
│   │   ├── views/          # 页面视图
│   │   ├── router/         # 路由配置
│   │   └── store/          # 状态管理
│   ├── public/             # 静态资源
│   └── vite.config.js      # Vite 配置
├── requirements.txt         # Python 依赖
├── generate_template.py     # Excel 模板生成工具
└── .env.example            # 环境变量模板

📦 部署指南

生产环境部署

  1. 后端部署

    # 使用 gunicorn 部署 Flask 应用
    pip install gunicorn
    gunicorn -w 4 -b 0.0.0.0:5000 src.main:app
    
  2. 前端部署

    cd toolbox-app
    npm run build
    # 将 dist/ 目录部署到 Web 服务器
    
  3. 使用 Docker可选

    # 示例 Dockerfile
    FROM python:3.9-slim
    WORKDIR /app
    COPY requirements.txt .
    RUN pip install -r requirements.txt
    COPY . .
    EXPOSE 5000
    CMD ["python", "src/main.py"]
    

🤝 贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🆘 常见问题

Q: 如何生成 Excel 模板?

A: 运行 python3 generate_template.py 生成标准格式的 Excel 模板文件。

Q: API 认证失败怎么办?

A: 请检查 .env 文件中的 AUTHORIZATION 配置,确保 Token 有效且格式正确。

Q: 前端无法连接后端?

A: 确保后端服务已启动(默认端口 5000检查前端配置中的 API 基础 URL。

Q: Excel 文件格式错误?

A: 确保 Excel 文件包含 "学生ID" 和 "课程班ID" 列,且数据格式符合要求。


📞 技术支持

如有问题或建议,请通过以下方式联系: