# Essay Correction **Repository Path**: maniacratt/essay-correction ## Basic Information - **Project Name**: Essay Correction - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-13 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📝 Essay Correction 一个基于 FastAPI + 通义千问的智能作文批改 Web 应用,支持移动端访问。 ## ✨ 功能特性 - 🔐 **用户认证**:支持老师注册和登录 - 🏫 **班级管理**:创建和管理多个班级 - 👨‍🎓 **学生管理**:支持单个添加和批量导入学生 - 📄 **作文上传**:支持文本输入和图片上传,支持批量处理 - 🤖 **智能批改**:集成通义千问 API 进行智能批改(待实现) - 📱 **响应式设计**:完美支持手机端访问 - 💾 **数据持久化**:使用 SQLite 存储数据 ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 复制 `.env.example` 为 `.env` 并填写配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件,填入你的通义千问 API Key: ```env OPENAI_API_KEY=your_api_key_here ``` > 获取 API Key: https://dashscope.console.aliyun.com/ ### 3. 启动应用 ```bash python run.py ``` 访问地址: - Web 界面:http://localhost:8000 - API 文档:http://localhost:8000/docs ## 📁 项目结构 ``` essay-correction/ ├── app/ # 应用主目录 │ ├── api/ # API 路由 │ │ ├── auth.py # 认证接口 │ │ ├── classes.py # 班级管理接口 │ │ ├── students.py # 学生管理接口 │ │ └── essays.py # 作文管理接口 │ ├── auth/ # 认证模块 │ │ ├── security.py # 密码加密和 JWT │ │ └── deps.py # 认证依赖 │ ├── config/ # 配置模块 │ │ └── settings.py # 应用配置 │ ├── db/ # 数据库模块 │ │ ├── database.py # 数据库连接 │ │ └── models.py # 数据模型 │ ├── static/ # 静态文件 │ │ ├── css/ # 样式文件 │ │ └── js/ # JavaScript 文件 │ ├── templates/ # HTML 模板 │ │ ├── base.html # 基础模板 │ │ ├── login.html # 登录页 │ │ ├── dashboard.html # 仪表盘 │ │ ├── students.html # 学生管理 │ │ └── upload.html # 作文上传 │ ├── utils/ # 工具模块 │ │ └── logger.py # 日志工具 │ └── main.py # 应用入口 ├── data/ # 数据库文件目录 ├── uploads/ # 上传文件目录 ├── .env # 环境变量配置 ├── .env.example # 环境变量示例 ├── requirements.txt # Python 依赖 ├── run.py # 启动脚本 └── qwen_client.py # 通义千问客户端 ``` ## 🎯 使用说明 ### 第一步:注册账号 访问 http://localhost:8000,点击"注册"标签,填写信息完成注册。 ### 第二步:创建班级 登录后进入仪表盘,点击右上角"+ 新建班级"按钮创建班级。 ### 第三步:添加学生 在班级卡片上点击进入学生管理页面,可以: - 点击"+ 添加学生"逐个添加 - 点击"批量导入"使用 JSON 格式批量导入 ### 第四步:上传作文 在学生管理页面点击"上传作文",可以: - **单个上传**:选择学生,输入作文内容或上传图片 - **批量上传**:选择多个学生,一次性上传多篇作文 ## 🔧 技术栈 - **后端框架**:FastAPI - **数据库**:SQLite + SQLAlchemy (异步) - **认证**:JWT + bcrypt - **前端**:原生 HTML/CSS/JavaScript - **AI 集成**:通义千问 API - **模板引擎**:Jinja2 ## 📱 移动端适配 应用采用响应式设计,在手机端也能获得良好的使用体验: - ✅ 自适应布局 - ✅ 触摸友好的按钮大小 - ✅ 优化的表单输入 - ✅ 流畅的动画效果 ## 🔌 API 接口 ### 认证接口 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/me` - 获取当前用户信息 ### 班级管理 - `POST /api/classes` - 创建班级 - `GET /api/classes` - 获取班级列表 - `GET /api/classes/{id}` - 获取班级详情 - `PUT /api/classes/{id}` - 更新班级 - `DELETE /api/classes/{id}` - 删除班级 ### 学生管理 - `POST /api/students` - 添加学生 - `POST /api/students/batch` - 批量导入学生 - `GET /api/students/class/{class_id}` - 获取班级学生列表 - `GET /api/students/{id}` - 获取学生详情 - `PUT /api/students/{id}` - 更新学生 - `DELETE /api/students/{id}` - 删除学生 ### 作文管理 - `POST /api/essays` - 上传作文 - `POST /api/essays/batch` - 批量上传作文 - `GET /api/essays` - 获取作文列表 - `GET /api/essays/{id}` - 获取作文详情 - `PUT /api/essays/{id}/correction` - 更新批改结果 - `DELETE /api/essays/{id}` - 删除作文 ## 📝 后续开发计划 - [ ] 集成通义千问 API 实现智能批改 - [ ] 批改历史记录 - [ ] 成绩统计分析 - [ ] 导出功能(PDF/Excel) - [ ] 作文对比查看 - [ ] 评语模板管理 ## ⚠️ 注意事项 1. **首次运行**会自动创建数据库文件 `data/essays.db` 2. **上传的图片**保存在 `uploads/` 目录 3. **生产环境**请修改 `.env` 中的密钥和配置 4. **定期备份** `data/` 目录下的数据库文件 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! --- **开发于 2026 | 让作文批改更高效 🚀**