# 学生课程批量退选工具 ## 🚀 功能概述 本工具提供用户友好的 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. 启动后端服务 ```bash # 安装 Python 依赖 pip3 install -r requirements.txt # 配置环境变量(创建 .env 文件) cp .env.example .env # 编辑 .env 文件,填入您的 API 配置 # 启动 Flask 后端服务 python3 src/main.py ``` ### 2. 启动前端应用 ```bash # 进入前端目录 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` 文件并配置以下参数: ```dotenv # --- 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. **克隆项目** ```bash git clone https://git.vcck.cn/nvex/toolbox.git cd toolbox ``` 2. **后端开发** ```bash # 安装 Python 依赖 pip3 install -r requirements.txt # 配置环境变量 cp .env.example .env # 编辑 .env 文件 # 启动后端服务(开发模式) python3 src/main.py ``` 3. **前端开发** ```bash 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. **后端部署** ```bash # 使用 gunicorn 部署 Flask 应用 pip install gunicorn gunicorn -w 4 -b 0.0.0.0:5000 src.main:app ``` 2. **前端部署** ```bash cd toolbox-app npm run build # 将 dist/ 目录部署到 Web 服务器 ``` 3. **使用 Docker(可选)** ```dockerfile # 示例 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](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" 列,且数据格式符合要求。 --- ## 📞 技术支持 如有问题或建议,请通过以下方式联系: - 📧 提交 Issue: [项目 Issues](https://git.vcck.cn/nvex/toolbox/issues) - 💬 项目讨论: [项目讨论区](https://git.vcck.cn/nvex/toolbox/discussions) ---