# smart-coursor-platform-python **Repository Path**: dockeroschina/smart-coursor-platform-python ## Basic Information - **Project Name**: smart-coursor-platform-python - **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-08-12 - **Last Updated**: 2026-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 教育智能体平台 智能体驱动的教学管理平台,覆盖学校→专业→课程→教师→学生的完整业务链路,核心能力是工单上传后 AI 一键生成教案、课标、PPT。 ## 项目结构 ``` platform/ ├── backend/ # FastAPI 后端 │ ├── requirements.txt │ ├── edu_platform.db # SQLite 数据库(自动生成) │ └── app/ │ ├── main.py # FastAPI 入口 │ ├── seed.py # 种子数据初始化 │ ├── database.py # SQLAlchemy 连接 │ ├── models.py # 14 张数据模型 │ ├── auth.py # JWT + bcrypt 认证 │ ├── deps.py # 依赖注入(RBAC 权限) │ ├── schemas.py # Pydantic 请求/响应模型 │ ├── routers/ # 8 个路由模块 │ │ ├── auth.py # 认证(登录、获取当前用户) │ │ ├── org.py # 组织管理(学校/专业/课程 CRUD) │ │ ├── people.py # 人员管理(教师/学生 CRUD) │ │ ├── classes.py # 班级管理 │ │ ├── workorders.py # 工单与智能体生成(SSE 进度流) │ │ ├── assignments.py# 作业发布/提交/批改/AI批改 │ │ ├── teacher.py # 教师专属视图 │ │ └── student.py # 学生专属视图 │ └── services/ │ └── agent.py # 智能体文档生成(模拟 LangGraph) ├── frontend/ # Vite + React 前端 │ └── src/ │ ├── App.jsx # 路由 + 角色守卫 │ ├── auth.jsx # AuthContext │ ├── api.js # Axios API 客户端 │ ├── components.jsx # 共享 UI 组件库 │ ├── Layout.jsx # 侧边栏 + 头部布局 │ ├── Login.jsx # 登录页 │ └── pages/ │ ├── admin/ # 6 个管理员页面 │ ├── teacher/ # 5 个教师页面 │ └── student/ # 4 个学生页面 ├── start-backend.bat # 后端一键启动 └── start-frontend.bat # 前端一键启动 ``` ## 快速启动 ### 1. 启动后端 ```bash cd platform/backend/app # 首次运行初始化种子数据 python seed.py # 启动服务 python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` 或直接运行 `start-backend.bat` - API 地址:http://localhost:8000 - API 文档:http://localhost:8000/docs ### 2. 启动前端 ```bash cd platform/frontend npm install npm run dev ``` 或直接运行 `start-frontend.bat` - 前端地址:http://localhost:5173 ## 测试账号 | 角色 | 用户名 | 密码 | 说明 | |------|--------|------|------| | 管理员 | admin | admin123 | 系统管理员 | | 教师 | teacher1 | 123456 | 李明(副教授,计算机系) | | 教师 | teacher2 | 123456 | 王芳(讲师,人工智能系) | | 学生 | student1 | 123456 | 陈思远(计算机应用技术) | | 学生 | student3 | 123456 | 赵子轩(人工智能技术) | ## 业务关系 ### 数据层级 ``` 学校 School └── 专业 Major └── 课程 Course ──┐ │ │ │ 教师 Teacher ←──→ TeacherCourse (M:N) │ │ └── 班级 Class │ └── 班级学生 ClassStudent (M:N) ←──→ 学生 Student 课程 → 工单 WorkOrder → 生成文档 GeneratedDoc (教案/课标/PPT/工单) 课程 → 作业 Assignment → 提交 Submission → 批改 ``` ### 三端业务关系 **管理员(admin)** - 管理学校(含联系人信息)、专业(启停/删除)、课程(多选教师)、教师(含联系方式)、学生(含班级选择) - 搜索栏根据各实体新增字段动态调整 - 数据看板展示全局统计 **教师(teacher)** - 我的课程(上区:我负责的课程;下区:本专业其他课程) - 工单生成:选择课程 → 上传工单文件夹 → 教案/课标/PPT **独立生成**(各按钮触发对应智能体工作流,SSE 实时进度推送) - 我的文档:教案/课标/PPT 的**增删改查** - 班级管理:查看班级学生、**添加/修改/移出学生** - 作业管理:发布作业、查看学生提交、批改(含**AI 辅助批改**) **学生(student)** - 我的课程:通过班级关联获取已选课程 - 课程资料:查看工单和PPT(**类型仅含工单和PPT**) - 我的作业:**浏览/修改/提交**作业 - 成绩查询:查看成绩明细、**浏览已提交作业**详情 ### 智能体文档生成工作流 ``` 工单上传(文件夹多文件) ↓ 工单解析(提取教学目标、知识点) ↓ RAG 知识检索(匹配课程知识库) ↓ ├── 生成教案(Markdown 教学过程) ← 独立触发 ├── 生成课标(能力要求、考核标准) ← 独立触发 └── 生成PPT(大纲 → 模板渲染) ← 独立触发 ↓ 质量校验 → 入库 → SSE 推送完成通知 ``` 后端使用线程模拟异步生成(实际项目替换为 Celery + LangGraph)。前端通过 EventSource 连接 SSE 端点实时展示生成进度。 ## 技术栈 | 层 | 技术 | 说明 | |----|------|------| | 前端 | React 18 + Vite + Tailwind CSS | 单页应用,角色路由守卫 | | 路由 | React Router v6 | 角色隔离路由 | | HTTP | Axios | 统一拦截器,JWT 自动注入 | | 后端 | FastAPI + SQLAlchemy | 异步框架 + ORM | | 认证 | JWT (python-jose) + bcrypt | 无状态鉴权 + RBAC | | 数据库 | SQLite(开发)/ PostgreSQL(生产) | 14 张表 | | 智能体 | LangGraph 模拟(services/agent.py) | 工单→文档生成工作流 | | 进度推送 | SSE (Server-Sent Events) | 实时生成进度 | ## API 接口概览 | 模块 | 端点 | 方法 | |------|------|------| | 认证 | /api/auth/login | POST | | | /api/auth/me | GET | | 学校 | /api/schools | GET/POST | | | /api/schools/{id} | GET/PUT/DELETE | | 专业 | /api/majors | GET/POST | | | /api/majors/{id} | GET/PUT/DELETE | | | /api/majors/{id}/status | PATCH | | 课程 | /api/courses | GET/POST | | | /api/courses/{id} | GET/PUT/DELETE | | 教师 | /api/teachers | GET/POST | | | /api/teachers/{id} | GET/PUT/DELETE | | 学生 | /api/students | GET/POST | | | /api/students/{id} | GET/PUT/DELETE | | 班级 | /api/classes | GET/POST | | | /api/classes/{id}/students | GET | | 工单 | /api/work-orders | GET/POST | | | /api/work-orders/{id}/progress | GET (SSE) | | | /api/work-orders/{id}/regenerate | POST | | 文档 | /api/work-orders/docs/{id} | PUT/DELETE | | 作业 | /api/assignments | GET/POST | | | /api/assignments/{id}/submit | POST | | | /api/submissions/{id}/grade | POST | | | /api/submissions/{id}/ai-grade | POST | | 教师端 | /api/teacher/courses | GET | | | /api/teacher/docs | GET | | | /api/teacher/classes | GET | | 学生端 | /api/student/courses | GET | | | /api/student/courses/{id}/materials | GET | | | /api/student/assignments | GET | | | /api/student/grades | GET | ## 开发说明 - 后端使用 SQLite 作为开发数据库,生产环境切换 PostgreSQL(修改 database.py 中的连接串即可) - 智能体服务为模拟实现,实际项目需接入 LangGraph + LLM API(替换 services/agent.py) - 文件上传目前仅记录元数据,实际项目需接入 MinIO/OSS 存储