# 毕业论文生成任务管理平台 - 使用说明书

> 🎓 覆盖全流程：新建任务 → 大纲解析 → 生成产物 → 迭代修改 → 在线预览 → 多任务管理

---

## 目录

1. [部署说明](#零部署说明)
2. [平台概述](#一平台概述)
3. [任务列表页](#二任务列表页)
4. [新建任务（上传大纲+AI解析）](#三新建任务)
5. [任务详情页](#四任务详情页)
6. [生成代码](#五生成代码)
7. [在线预览项目](#六在线预览项目)
8. [生成毕业论文](#七生成毕业论文)
9. [迭代修改](#八迭代修改)
10. [退出登录](#九退出登录)
11. [导出与备份](#十导出与备份)

---

## 零、部署说明

### 统一目录规划（服务器上只做一次）

```bash
mkdir -p /opt/coolify-projects
```

以后所有项目放这里：
```
/opt/coolify-projects/main-platform/    ← 主平台
/opt/coolify-projects/demo-001/         ← AI 生成的子项目 1
/opt/coolify-projects/demo-002/         ← AI 生成的子项目 2
```

---

### 方式一：Docker Compose 本地部署

**前置条件：** Docker 20.10+ 和 Docker Compose v2

**.env 文件（项目根目录）：**
```env
ANTHROPIC_API_KEY=sk-ant-xxxx
DEEPSEEK_API_KEY=sk-xxxx
MYSQL_PASSWORD=your_secure_password
```

```bash
cd /path/to/thesis-platform
docker compose up -d
# 浏览器打开 http://服务器IP
```

---

### 方式二：Coolify 部署（主平台 + 子项目通用流程）

> 核心思路：代码里用相对路径 `./backend`，部署时运行 `fix-for-coolify.sh` 一键转绝对路径，然后粘贴到 Coolify。

**① 准备修复脚本（服务器上只做一次）**

将项目自带的 `fix-for-coolify.sh` 复制到服务器并加执行权限：
```bash
cp fix-for-coolify.sh /opt/coolify-projects/
chmod +x /opt/coolify-projects/fix-for-coolify.sh
```

**② 每次部署流程（主平台和子项目完全一样）**

```bash
# 1. 代码放入项目目录
#    主平台：/opt/coolify-projects/main-platform/
#    子项目：/opt/coolify-projects/demo-xxx/

# 2. 进入项目目录，运行修复脚本（自动把 ./xxx 转绝对路径）
cd /opt/coolify-projects/demo-001
/opt/coolify-projects/fix-for-coolify.sh

# 3. 创建 .env（填真实密码和密钥）
vi .env
```
```env
MYSQL_PASSWORD=你的强密码
REDIS_PASSWORD=你的redis密码（如有）
ANTHROPIC_API_KEY=sk-xxx
DEEPSEEK_API_KEY=sk-xxx
```

**③ Coolify 操作**

| 步骤 | 操作 |
|------|------|
| ① | Coolify 项目 → "+ Add Resource" → "Docker Compose Empty" |
| ② | 把 **修复后** 的 `docker-compose.yml` 内容粘贴进去 |
| ③ | Environment Variables 区域填入 `.env` 的键值对 |
| ④ | Domains 填 `https://你的子域名.com` |
| ⑤ | 点击 "Deploy" |

**④ 项目域名规划**

| 项目 | 域名 | 备注 |
|------|------|------|
| 主平台 | `https://main.你的域名.com` | 配置一次 |
| 子项目 001 | `https://demo-001.你的域名.com` | 按需创建 |

**⑤ fix 脚本做了什么**

| 操作 | 效果 |
|------|------|
| `build: ./backend` → `build: /opt/coolify-projects/demo-001/backend` | build 路径变绝对路径 |
| `- ./backend/init.sql:...` → `- /opt/...backend/init.sql:...` | volumes 变绝对路径 |
| 删除 `container_name` | 避免多项目容器名冲突 |
| 保留 `docker-compose.yml.bak` | 可随时恢复原始文件 |

**⑥ 数据库初始化**

AI 生成的每个子项目 docker-compose.yml 都自带 `db-init` 一次性容器，会在 `db` 健康后自动执行 `init.sql` 建表，无需手动操作。

---

## 一、平台概述

本平台帮助你**从论文大纲一键生成全套毕设产物**，包括：

- 💻 **计算机类**：完整项目源码（含Dockerfile）+ 毕业论文（Word）

### 核心特点

| 特性 | 说明 |
|------|------|
| 🤖 双模型 | 支持 Claude Opus 4 / DeepSeek V4，导航栏随时切换 |
| 📋 并发管理 | 最多30个任务同时进行，超出自动排队（右上角实时显示） |
| ✏️ 迭代修改 | 输入具体需求，AI基于最新版精准修改，直接覆盖 |
| 🏷️ 论题标识 | 自动从大纲提取论题作为任务名称 |
| 📦 一键导出 | 打包代码+论文为ZIP下载 |
| 🐳 在线预览 | 计算机类项目自动Docker部署，生成后即可通过链接在线体验 |
| 🚪 退出登录 | 导航栏退出按钮，清除登录状态 |

### 切换模型

导航栏右上角下拉框：`[ Claude Opus 4 ▼ ]` → 选 DeepSeek V4 即时切换。

---

## 一-补充、模型选择建议

| 场景 | 推荐模型 | 原因 |
|------|---------|------|
| 最终生成论文/代码 | Claude Opus 4 | 质量最高 |
| 反复测试功能 | DeepSeek V4 | 成本低，够用 |
| 模板化内容 | DeepSeek V4 | 速度快 |

## 二、任务列表页

> 访问平台首页即为任务列表页

### 导航栏

```
┌─────────────────────────────────────────────────┐
│ 🎓 毕业论文管理平台  [📖使用文档] [模型▼] [任务] [🚪退出] │
└─────────────────────────────────────────────────┘
```

- **📖 使用文档**：查看平台操作说明
- **模型下拉框**：切换 Claude Opus 4 / DeepSeek V4
- **任务数 X/30**：显示当前排队+运行中的任务数，有任务时绿点闪烁
- **🚪 退出**：退出登录，返回登录页

### 界面说明

```
┌─────────────────────────────────────────────────┐
│  📋 任务列表                    [+ 新建任务]     │
├─────────────────────────────────────────────────┤
│  [全部状态 ▼] [全部专业 ▼] [🔍 搜索论题]       │
├─────────────────────────────────────────────────┤
│  ┌──────────────┐ ┌──────────────┐ ┌──────────┐ │
│  │ 基于Spring   │ │ 在线考试     │ │ 图书馆   │ │
│  │ Boot的图书   │ │ 系统设计与   │ │ 管理系统 │ │
│  │ 管理系统     │ │ 实现         │ │          │ │
│  │ ✅ 已完成    │ │ ⚙️ 生成中   │ │ ⏳ 排队中 │ │
│  │ 💻 计算机    │ │ 💻 计算机    │ │ 💻 计算机 │ │
│  │ [📥] [🗑]   │ │ [进度条]     │ │          │ │
│  └──────────────┘ └──────────────┘ └──────────┘ │
└─────────────────────────────────────────────────┘
```

### 操作说明

1. **筛选搜索**：按状态、专业筛选，或输入论题关键词搜索
2. **新建任务**：点击右上角 `+ 新建任务` 按钮
3. **查看详情**：点击任意卡片进入任务详情
4. **快速下载**：点击卡片右下角 📥 图标
   - 只有代码 → 下载最新代码ZIP
   - 只有论文 → 下载最新论文文件
   - 两者都有 → 一键打包导出（一个ZIP含代码+论文）
5. **删除任务**：点击卡片右下角 🗑 图标（需确认）

---

## 三、新建任务

### 流程图示

```
上传大纲文件 → AI自动解析 → 查看编辑解析结果 → 确认需求 → 开始生成
```

### 步骤详解

#### 3.1 上传大纲文件

- **支持格式**：`.doc` / `.docx` / `.pdf`
- **上传方式**：拖拽文件或点击「选择文件」
- **文件大小**：不超过50MB
- 上传后AI自动开始解析大纲

#### 3.2 查看AI解析结果

系统会自动提取以下内容并可视化展示：

| 解析项 | 说明 | 可编辑 |
|--------|------|--------|
| 📝 论文论题 | 任务唯一标识名称 | ✅ 可修改 |
| 🏷️ 论题 | 从大纲自动提取 | ✅ 可修改 |
| 🔧 技术栈 | 涉及的技术/框架（移动端/App/小程序等会被自动过滤，只保留Web技术栈） | ✅ 可增删 |
| 📑 章节结构 | 论文章节与小节 | ✅ 可编辑 |
| ⚙️ 核心功能 | 系统核心功能模块 | ✅ 可增删 |
| 💡 AI推荐 | AI建议补充内容 | ✅ 可勾选 |

#### 3.3 确认需求

1. 检查所有解析结果是否正确
2. 编辑修改不满意的内容
3. 点击底部 `✅ 确认需求并开始生成产物` 按钮

> ⚠️ 确认后任务进入生成队列，开始生成代码

---

## 四、任务详情页

### 页面布局

```
┌─────────────────────────────────────────────────┐
│ ← 返回列表  任务 #3                             │
├──────────────┬──────────────┬───────────────────┤
│ 论文论题     │ 专业分类     │ 创建时间           │
│ 在线考试系统 │ 💻 计算机    │ 2026/6/18 10:30   │
│ 当前状态     │ 📎 大纲文件  │ 技术栈: Spring... │
│ 🎉 已完成    │              │                   │
├──────────────┴──────────────┴───────────────────┤
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%  全部完成     │
│ 📋 运行日志: 解析→生成代码→生成论文...           │
├─────────────────────┬───────────────────────────┤
│ 💻 代码产物         │ 📄 论文文档               │
│ 📌 代码初稿         │ 📌 论文初稿               │
│ [下载] [✏️修改]     │ [下载] [✏️修改]           │
│ 🐳 在线预览         │                           │
│ 🔗 http://IP:9000   │                           │
│ [🔄重新部署][⏹停止] │                           │
├─────────────────────┴───────────────────────────┤
│ 📦 [一键打包导出全部产物]                       │
└─────────────────────────────────────────────────┘
```

### 运行日志

详情页中间的 **📋 运行日志** 实时显示任务执行过程：

| 日志项 | 说明 |
|--------|------|
| AI解析大纲 | 解析耗时 |
| 生成代码 | 生成耗时 |
| 🔧 修改代码 | 修改耗时 + 修改说明 |
| 📄 修改论文 | 修改耗时 |

---

## 五、生成代码

### 触发方式

在新建任务页确认需求后，系统自动提交生成任务。

### 生成过程

1. 任务进入队列（排队等待）
2. 获得执行权后开始生成
3. 实时显示进度条和阶段信息
4. 计算机类项目**自动Docker部署**（详见第六章）

### 生成内容（计算机类）

```
项目根目录/
├── frontend/          # 前端源码
├── backend/           # 后端源码
├── docker-compose.yml # 编排文件（含MySQL服务）
├── init.sql          # 数据库建表SQL
├── DEPLOY.md         # 部署说明文档
├── README.md         # 项目说明
└── ...
```

所有文件打包为一个 `.zip` 文件，同时保存在 `[下载]` 按钮中。

### 生成内容包含的数据库配置

对于需要数据库的计算机类项目，AI会自动使用以下配置生成代码：

| 配置项 | 值 |
|--------|-----|
| MySQL主机 | `mysql` (docker-compose服务名) |
| MySQL端口 | `3306` |
| MySQL用户名 | `root` |
| MySQL密码 | `.env`中配置 |
| 数据库名 | `project_db` |
| 初始化SQL | `init.sql`（建表语句） |

---

## 六、在线预览项目

> 🐳 仅计算机类项目支持。代码生成后系统自动用Docker部署，无需本地搭建即可在线体验。

### 自动部署流程

```
代码生成完成 → 解压ZIP → 分配独立端口 → docker compose up -d → 返回访问链接
```

### 查看在线预览

在任务详情页的「💻 代码产物」区域下方，有一个 **🐳 在线预览** 区块：

| 状态 | 显示内容 |
|------|---------|
| 🟢 部署成功 | 显示可点击的访问链接（如 `http://服务器IP:9001`） |
| 🔴 部署失败 | 显示失败原因，可手动重新部署 |
| ⏳ 生成中 | 提示生成后将自动部署 |

### 操作按钮

- **🔄 重新部署**：修改代码后或部署失败时，手动重新部署项目
- **⏹ 停止**：停止运行中的项目容器，释放端口

### 端口说明

系统为每个任务分配独立端口（范围 9000-14000），互不冲突。服务器公网IP自动检测，无需手动配置。

### 数据库

如果项目需要MySQL，docker-compose会自动创建独立的MySQL容器，`init.sql` 会自动建表。

> 💡 在线预览的项目和主平台完全隔离。删除任务时会自动清理对应的Docker容器。

---

## 七、生成毕业论文

### 前置条件

代码已生成完成（状态为「代码已生成」）。

### 操作步骤

1. 在任务详情页确认代码产物无误
2. 点击 `📝 生成毕业论文` 按钮
3. 等待AI撰写论文（通常2-5分钟）
4. 完成后自动保存为 `.docx` Word文档，点击 `下载` 获取

### 论文特点

- 章节结构严格匹配大纲
- 内容结合代码功能展开
- 篇幅符合本专科毕设标准
- 使用原创表述，降低查重率

---

## 八、迭代修改

> 修改基于**最新版产物** + **原始大纲**发给大模型，精准优化后直接覆盖原文件。

### 修改代码

1. 进入任务详情页
2. 在「代码产物」区域点击 `✏️ 修改` 按钮
3. 输入具体修改需求（例如："增加数据导出Excel功能"）
4. 点击确认提交
5. 系统将**最新代码 + 大纲**发给AI做局部优化
6. 完成后覆盖原文件，**自动重新部署**（在线预览同步更新）

### 修改论文

1. 在「论文文档」区域点击 `✏️ 修改` 按钮
2. 输入修改需求（例如："在第三章增加安全性分析"）
3. 系统将**最新论文 + 最新代码**发给AI精准修改
4. 完成后覆盖原文件，可重新下载

### 修改原则

| 原则 | 说明 |
|------|------|
| 基于最新版 | 始终以当前最新产物为修改基准 |
| 精准局部 | 只修改需求相关的部分 |
| 复用大纲 | 始终携带原始大纲 |
| 直接覆盖 | 修改结果覆盖原文件，保持简洁 |

---

## 九、退出登录

导航栏最右侧有 **🚪 退出** 按钮：

1. 点击退出按钮
2. 系统清除登录状态，返回登录页
3. 所有正在进行的后台任务不受影响

> 💡 退出登录不会中断已在队列中的生成任务，下次登录后仍可查看进度。

---

## 十、导出与备份

### 单任务导出

在详情页点击 `📦 一键打包导出全部产物`：

导出内容（一个ZIP）：
- 📁 最新代码ZIP
- 📁 最新论文Word
- 📁 原始大纲文件

### 列表页快速下载

在任务卡片右下角点击 📥 图标：

- 只有代码 → 下载代码ZIP
- 只有论文 → 下载论文文件
- 两者都有 → 一键打包导出（含代码+论文）

### 多任务管理建议

- 完成的任务可以导出备份后删除
- 平台支持最多30个任务同时生成
- 善用筛选和搜索功能管理大量任务

---

## 附录：状态说明

| 状态 | 图标 | 说明 |
|------|------|------|
| pending | ⏳ | 排队等待执行 |
| parsing | 🔍 | AI正在解析大纲 |
| awaiting_confirm | ✋ | 等待用户确认需求 |
| generating_code | ⚙️ | 正在生成代码 |
| code_generated | ✅ | 代码已生成 |
| generating_paper | 📝 | 正在生成论文 |
| modifying_code | 🔧 | 正在修改代码 |
| modifying_paper | 📄 | 正在修改论文 |
| completed | 🎉 | 全部完成 |
| failed | ❌ | 生成失败 |

---

**祝毕业论文顺利通过！🎓**
