# AI实训教学交付台 **Repository Path**: embodi-ai/ai-train-delivery ## Basic Information - **Project Name**: AI实训教学交付台 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-13 - **Last Updated**: 2026-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python实训交付台 Django 服务端页面 + SQLite + 本地文件 + Nginx + 单 Worker。仅供校内课程使用。 ## 使用 1. 课程负责人登录,创建任课教师和班级,发放班级邀请码。 2. 在任务管理中填写五张任务的说明和时间;配置评分规则并发布。 3. 学生用邀请码注册。邮箱是登录标识,不发送SMTP验证或重置邮件。 4. 学生上传草稿并最终确认,原文件和身份快照锁定;教师确认通过才完成任务。 5. 如使用AI,由课程负责人在模型配置页填写服务商URL、Key和模型并测试连接。 6. 课程负责人在“下载资源”上传安装包或文档,学生在首页“软件下载与学习资料”中下载;可配置版本、适用系统、顺序和上下架。大文件部署见 `docs/下载资源运维说明.md`。 7. 原始资料无自动删除;需删除时由负责人核实,运维执行默认只预览的删除工具。 课程负责人可在“账号管理”查询学生和教师账号、修改登录邮箱、启用或停用账号、重置密码;学生资料通过“学生资料”入口核对更正。停用保留已有资料和提交记录。密码统一为至少6个字符,不限制字符组合,重置后可直接登录,不强制学生修改密码。 账号与初始密码只在本地 `.local-secrets/首次登录.txt` 中交付,不进入发布包。首次登录请修改密码。 ## 本地开发与测试 实际验证环境:本地 Python 3.12,服务器 Python 3.10;依赖固定在 `requirements.lock`。 ```bash python3 -m venv .venv .venv/bin/python -m pip install -r requirements.lock mkdir -p .local-data PYDELIVERY_DEBUG=1 .venv/bin/python manage.py migrate PYDELIVERY_DEBUG=1 .venv/bin/python manage.py test tests PYDELIVERY_DEBUG=1 .venv/bin/python manage.py runserver 127.0.0.1:8000 ``` 独立文件SQLite并发/规模测试: ```bash .venv/bin/python tests/concurrency_check.py ``` 浏览器测试单独安装 Playwright(不属于生产依赖);`tests/browser_check.py` 使用临时数据库,产生三种尺寸的截图。不要把 `production_smoke.py` 当普通单元测试运行,它会在真实实例创建已登记测试对象,且仅允许尚无学生数据的初始化场景。 ## 目录 - `delivery/`:账号/班级、固定任务、版本化提交、权限、文件检查、AI、批量与导出。 - `py_delivery/`:环境设置、URL、HTTPS安全配置。 - `templates/`、`static/`:原型样式和真实业务页面。 - `tests/`:功能、安全、浏览器、并发和部署验收。 - `deploy/`:白名单打包、版本发布、systemd、Nginx、备份恢复、回滚、数据删除与监测。 - `docs/`:需求基线、确认决策、上线记录和验收证据。 ## 关键边界 - 只有教师通过才解锁下一任务,AI只提供静态建议。 - 评分发布后不可覆盖;文件、快照、教师决定和审计有数据库不可变保护。 - API Key加密主密钥保存在服务器环境中,不进入数据库备份。 - 模型HTTPS连接固定到已验证公网IP,TLS按原域名验证,不跟随重定向。 - Worker不执行学生代码。处理中断的模型请求不确定是否已计费,标为需人工重试。 - 暂未启用病毒扫描;页面如实标明。 - 不提供公开下载目录,原文件必须经过登录权限校验。 部署与日常维护详见 `docs/上线与运维说明.md`。原基础设施敏感文档已忽略,发布严格采用白名单,禁止直接打包项目目录。