# Thesis Project Generator

> 毕业设计项目生成器。使用此skill当需要：(1)从Word/PDF/图片文档中提取项目需求 (2)生成完整的项目设计方案（数据库设计、模块设计、API设计）(3)按照阿里巴巴Java开发规范生成Spring Boot + Vue3项目代码。适用于从需求文档到完整项目的全流程开发。

- Skill: `majiayu000/thesis-project-generator` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/thesis-project-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/thesis-project-generator/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/thesis-project-generator

---


# 毕业设计项目生成器

从需求文档自动生成完整的毕业设计项目，包括设计方案和代码实现。

## 工作流程

```
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  1. 读取文档     │ ──▶ │  2. 生成设计     │ ──▶ │  3. 生成代码     │
│  Word/PDF/图片   │     │  用户确认设计    │     │  阿里巴巴规范    │
└─────────────────┘     └─────────────────┘     └─────────────────┘
```

**重要原则**：每个阶段完成后需用户确认，再进入下一阶段。

## 阶段一：读取需求文档

### 支持的文件格式

| 格式 | 读取方式 | 适用内容 |
|------|----------|----------|
| Word (.docx) | 直接读取 | 需求说明书、开题报告 |
| PDF | 直接读取 | 需求文档、参考资料 |
| 图片 (.png/.jpg) | 直接读取 | 原型图、流程图、ER图 |
| Markdown | 直接读取 | 需求描述 |

### 执行步骤

1. 询问用户需求文档所在目录
2. 列出目录中的所有相关文件
3. 依次读取每个文件
4. 提取并汇总关键信息

### 信息提取清单

从文档中提取以下信息：

- **项目名称**：系统的完整名称
- **项目背景**：为什么要做这个系统
- **用户角色**：系统有哪些使用者（如管理员、普通用户）
- **功能模块**：系统包含哪些功能模块
- **功能需求**：每个模块的具体功能点
- **业务流程**：关键业务的流程描述
- **技术要求**：指定的技术栈或框架
- **非功能需求**：性能、安全等要求

### 输出格式

```markdown
## 需求分析报告

### 1. 项目概述
- 项目名称：XXX系统
- 项目背景：...

### 2. 用户角色
- 管理员：...
- 普通用户：...

### 3. 功能模块
| 模块 | 功能点 | 说明 |
|------|--------|------|
| ... | ... | ... |

### 4. 业务流程
...

### 5. 技术栈
- 后端：Spring Boot + MyBatis-Plus + MySQL
- 前端：Vue3 + Element Plus
```

完成后询问用户：**"需求分析是否正确？是否需要补充或修改？"**

## 阶段二：生成项目设计

用户确认需求后，生成完整的项目设计方案。

### 2.1 数据库设计

根据功能需求，设计数据库表结构。

**设计原则**：
- 表名使用小写下划线命名
- 主键统一使用 `id`，类型 `BIGINT AUTO_INCREMENT`
- 外键格式：`关联表_id`
- 必须包含 `create_time` 和 `update_time`
- 金额使用 `DECIMAL(10,2)`
- 状态使用 `TINYINT`

**输出格式**：

```markdown
## 数据库设计

### 表清单
| 表名 | 说明 | 主要字段 |
|------|------|----------|
| user | 用户表 | id, username, password, ... |
| ... | ... | ... |

### 表结构详情

#### user 用户表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | BIGINT | 主键 |
| username | VARCHAR(50) | 用户名 |
| ... | ... | ... |

### ER关系图（文字描述）
- user 1:N order（一个用户有多个订单）
- ...
```

### 2.2 模块设计

设计系统的模块结构和分层架构。

**标准分层**：
```
Controller → Service → Mapper → Database
     ↓           ↓
    VO         Entity
     ↑
    DTO
```

**输出格式**：

```markdown
## 模块设计

### 后端模块
| 模块 | 包名 | 说明 |
|------|------|------|
| 用户模块 | com.xxx.user | 用户注册、登录、信息管理 |
| ... | ... | ... |

### 前端模块
| 模块 | 目录 | 说明 |
|------|------|------|
| 用户中心 | views/user | 登录、注册、个人中心 |
| ... | ... | ... |
```

### 2.3 API接口设计

设计RESTful风格的API接口。

**设计原则**：
- URL使用小写，单词用短横线分隔
- 使用HTTP方法表示操作：GET查询、POST创建、PUT更新、DELETE删除
- 统一响应格式：`{code, message, data}`

**输出格式**：

```markdown
## API接口设计

### 用户模块
| 方法 | URL | 说明 |
|------|-----|------|
| POST | /api/user/register | 用户注册 |
| POST | /api/user/login | 用户登录 |
| GET | /api/user/info | 获取用户信息 |
| ... | ... | ... |
```

### 设计确认

完成设计后，询问用户：

**"以上是项目设计方案，包括数据库设计、模块设计和API设计。请确认：**
1. **数据库表结构是否满足需求？**
2. **模块划分是否合理？**
3. **API接口是否完整？**

**确认后我将按照阿里巴巴Java开发规范生成代码。"**

## 阶段三：生成代码

用户确认设计后，按照阿里巴巴规范生成代码。

### 代码规范

遵循阿里巴巴Java开发手册，详见 [references/alibaba-java.md](references/alibaba-java.md)

**核心规范摘要**：

#### 命名规范
| 类型 | 规范 | 示例 |
|------|------|------|
| 类名 | 大驼峰 | UserController |
| 方法名 | 小驼峰 | getUserById |
| 常量 | 全大写下划线 | MAX_PAGE_SIZE |
| 包名 | 全小写 | com.example.user |

#### 分层规范
| 层 | 命名规则 | 职责 |
|---|---------|------|
| Controller | XxxController | 接收请求、参数校验 |
| Service | XxxService / XxxServiceImpl | 业务逻辑 |
| Mapper | XxxMapper | 数据库操作 |
| Entity | Xxx | 数据库映射 |
| DTO | XxxDTO | 接收前端参数 |
| VO | XxxVO | 返回前端数据 |

### 代码生成顺序

1. **项目结构** - 创建目录和配置文件
2. **实体类** - Entity、DTO、VO
3. **数据层** - Mapper接口和XML
4. **业务层** - Service接口和实现
5. **控制层** - Controller
6. **前端页面** - Vue组件

### 生成策略

- 询问用户想先生成哪个模块
- 每生成一个模块后确认是否继续
- 复杂功能分步骤生成

## 使用示例

### 示例对话

**用户**：帮我做毕业设计，需求文档在 `/path/to/docs` 目录

**助手**：
1. 读取目录下的所有文档
2. 输出需求分析报告
3. 询问确认

**用户**：需求分析正确，继续

**助手**：
1. 生成数据库设计
2. 生成模块设计
3. 生成API设计
4. 询问确认

**用户**：设计没问题，先生成用户模块

**助手**：
1. 生成用户模块的Entity、Mapper、Service、Controller
2. 生成对应的前端页面
3. 询问是否继续其他模块

## 技术栈默认配置

除非用户指定，默认使用以下技术栈：

### 后端
- Spring Boot 2.7.x
- MyBatis-Plus 3.5.x
- MySQL 8.0
- Maven

### 前端
- Vue 3.x
- Vite
- Element Plus
- Pinia
- Axios

## 注意事项

1. **循序渐进**：每个阶段完成后等待用户确认
2. **不要假设**：需求不明确时主动询问
3. **模块化生成**：不要一次性生成所有代码
4. **解释设计**：说明为什么这样设计
5. **可调整**：用户可以随时要求修改设计或代码

