# 综合设计 **Repository Path**: gethug/capstone-design ## Basic Information - **Project Name**: 综合设计 - **Description**: 《综合设计》课程教学资源 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-03-05 - **Last Updated**: 2026-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《综合设计》教学计划(12周/24次课) ## **一、课程基本信息** * **课程名称**:项目综合设计 * **面向对象**:具备SpringBoot与Vue.js入门基础的学生(了解基本语法、框架结构和简单CRUD操作) * **课程目标**:通过“做中学”完成一个完整的全栈Web应用,核心目标是**巩固基础、熟悉全流程、强化工程协作能力**,而非追求高难新技术。 * **最终产出**:一个部署上线的、具备核心业务功能的完整Web应用。 * **考核方式**: * **项目成果 (50%)**:可运行的系统、源代码、技术文档与用户手册。 * **过程评估 (40%)**:阶段评审、Git提交记录、课堂实践、小组协作表现。 * **个人报告 (10%)**:课程总结、贡献说明与技术反思。 --- ## **二、详细教学安排** ### **第一阶段:项目启动与系统设计 (第1-3周)** **目标**:完成组队、确定项目、掌握基础设计方法、搭建开发环境。 * **第1周-第1次课:课程导论与组队启动** * **教学目标**:明确课程要求,完成分组,激发项目创意。 * **授课内容 (1.5小时)**: 1. 课程介绍:目标、节奏、考核方式解读。 2. 展示往届优秀入门级项目案例(如图书管理系统、校园二手交易平台、简易博客系统、活动报名系统等)。 3. 技术栈确认与简化:明确使用 **SpringBoot + MyBatis-Plus(简化CRUD) + Vue3 + Element Plus(UI组件库)**。 * **课堂实践 (1.5小时)**: 1. 学生自由组队(3-4人/组),推选组长。 2. 小组头脑风暴,拟定2-3个候选项目idea,明确核心用户与核心功能。 3. 教师巡回指导,帮助筛选和收敛项目方向。 * **第1周-第2次课:需求分析与工具准备** * **教学目标**:学会编写简单需求说明,配置统一的团队开发环境。 * **授课内容 (2小时)**: 1. **需求分析入门**:用户角色、核心功能列表、绘制简易功能模块图。 2. **开发工具链统一**:Git工作流讲解(分支策略:main-dev-feature)、Maven依赖、IDE设置。 3. **项目管理入门**:介绍看板工具(如GitLab Issues)管理任务。 * **课堂实践 (1小时)**: 1. 创建小组Git仓库,初始化项目结构。 2. 撰写初步的《需求规格说明书》(模板由教师提供)。 3. 配置本地Java、Node.js、数据库(MySQL)环境。 * **第2周-第1次课:数据库设计与API规划** * **教学目标**:掌握数据库表设计基础,学会规划前后端交互接口。 * **授课内容 (2小时)**: 1. **数据库设计基础**:概念数据模型(CDM)到物理数据模型(PDM),使用工具(如PDManer)绘制ER图,讲解基础范式。 2. **MyBatis-Plus快速入门**:介绍其如何极大简化单表CRUD操作。 3. **RESTful API设计规范**:URL、方法、状态码的含义,使用**Markdown**编写简易API文档。 * **课堂实践 (1小时)**: 1. 根据项目需求,设计核心数据库表(至少5-6张),完成ER图。 2. 规划核心业务模块的API列表(URL、方法、请求/响应体格式)。 * **第2周-第2次课:系统架构与任务拆解** * **教学目标**:理解前后端分离架构,制定可行的开发计划。 * **授课内容 (1.5小时)**: 1. **系统架构图绘制**:前后端分离架构讲解,绘制技术架构图。 2. **项目脚手架介绍**:教师提供前后端基础模板(已整合基础依赖、配置、统一响应封装)。 3. **任务拆解与排期**:讲解如何使用“用户故事”或“功能点”拆解任务,估算工时,制定首个迭代计划。 * **课堂实践 (1.5小时)**: 1. 导入项目脚手架,确保能成功运行。 2. 基于看板工具,将第一阶段功能拆解为具体任务,分配并设定截至时间。 3. 完善《系统设计说明书》。 * **第3周-第1次课:阶段一评审与开发启动** * **教学目标**:通过评审确认设计合理性,正式开始编码。 * **授课内容 (1小时)**:**阶段评审标准讲解**:评审要点(需求明确、设计可行、计划具体)。 * **课堂实践 (2小时)**:**第一次小组评审会**。每组5分钟展示:项目简介、核心功能、ER图、API列表、任务看板。教师与其他组提问,教师给出调整建议。 * **第3周-第2次课:基础框架搭建实战** * **教学目标**:完成项目基础框架搭建,实现第一个前后端联调接口。 * **授课内容 (1小时)**: 1. **后端**:基于模板,使用MyBatis-Plus代码生成器,快速生成用户表的实体、Mapper、Service、Controller层代码。 2. **前端**:基于模板,配置Axios全局请求,创建用户管理页面路由和基础组件。 * **课堂实践 (2小时)**: 1. 各小组根据自身ER图,生成核心表的CRUD代码。 2. 实现一个最简单的查询接口(如获取用户列表)的前后端联调。 3. **核心目标**:在本节课结束时,每个小组的本地项目必须有一个接口能从前端请求到后端数据并在控制台或页面显示。 --- ### **第二阶段:核心技术巩固与基础开发 (第4-7周)** **目标**:完成用户系统和核心业务模块的开发,掌握前后端协同开发流程。 * **第4周-第1次课:用户系统开发(后端)** * **教学目标**:实现基于Session的登录、注册、权限控制。 * **授课内容 (1.5小时)**: 1. **身份验证**:Session-Cookie机制讲解,实现登录接口。 2. **密码安全**:使用BCrypt进行密码加密存储。 3. **权限拦截**:使用HandlerInterceptor实现登录状态检查。 * **课堂实践 (1.5小时)**:实现用户注册、登录、退出接口。 * **第4周-第2次课:用户系统开发(前端)与联调** * **教学目标**:实现前端登录交互,掌握跨域问题解决方案。 * **授课内容 (1.5小时)**: 1. **前端路由守卫**:设置页面访问权限。 2. **状态管理**:使用Pinia(Vue3)管理用户登录状态。 3. **跨域(CORS)**:讲解原理,并在后端配置CORS策略。 * **课堂实践 (1.5小时)**:开发登录/注册页面,与后端接口联调,实现完整的登录流程。 * **第5周-第1次课:核心业务模块开发(一)** * **授课内容 (1小时)**:**业务逻辑深化**:讲解事务管理(@Transactional)在增删改操作中的必要性。 * **课堂实践 (2小时)**:各小组开发第一个核心业务模块(如博客的文章发布、商品管理)。教师巡回指导,重点解决MyBatis-Plus复杂查询(条件构造器)的问题。 * **第5周-第2次课:Git协作实战与代码规范** * **授课内容 (1.5小时)**: 1. **Git高级操作**:分支合并、冲突解决流程演示。 2. **代码规范**:介绍Alibaba Java Coding Guidelines插件,强调代码可读性。 * **课堂实践 (1.5小时)**:模拟一次团队协作提交,在feature分支开发,合并到dev分支,处理可能出现的冲突。各组进行代码互审。 * **第6周-第1次课:核心业务模块开发(二)** * **教学目标**:实现涉及多表关联的业务功能。 * **授课内容 (1小时)**:**关联查询与VO/DTO**:讲解多表查询的几种方式(如MyBatis-Plus的`@TableField(select=false)`结合自定义SQL,或使用ResultMap),介绍VO(View Object)的使用。 * **课堂实践 (2小时)**:开发包含关联关系的核心功能(如文章详情页包含作者信息、订单页包含商品信息)。 * **第6周-第2次课:阶段二中期检查** * **课堂实践 (3小时)**:**中期答辩**。每组8分钟演示:1. 已实现的功能(需演示登录和至少一个核心业务模块);2. 展示Git提交记录和任务看板;3. 遇到的问题与解决方案。教师评估进度并给出后续开发建议。 * **第7周-第1-2次课:迭代开发与答疑** * **目标**:根据中期反馈进行修正和增量开发。 * **形式**:教师发布共性技术补充资料(如:文件上传、全局异常处理、前端组件封装技巧)。课堂以**小组封闭开发 + 教师一对一深度答疑**为主。 --- ### **第三阶段:进阶功能与系统集成 (第8-10周)** **目标**:完善系统功能,集成必要组件,提升系统实用性。 * **第8周-第1次课:前端体验优化与API管理** * **授课内容 (1.5小时)**: 1. **前端优化**:Loading状态、表单校验、操作反馈。 2. **API文档**:集成Knife4j(Swagger增强)自动生成后端API文档。 * **课堂实践 (1.5小时)**:为现有功能增加友好的交互反馈;为后端集成Knife4j并检查接口文档。 * **第8周-第2次课:基础业务进阶** * **授课内容 (1.5小时)**:**分页与模糊搜索**:讲解MyBatis-Plus分页插件配置,实现带搜索条件的分页查询。 * **课堂实践 (1.5小时)**:为所有列表类接口增加分页和搜索功能。 * **第9周-第1次课:简易仪表盘与数据可视化** * **教学目标**:引入图表库,实现简单的数据统计展示。 * **授课内容 (1小时)**:介绍ECharts或AntV等图表库的快速集成方法。 * **课堂实践 (2小时)**:基于业务数据,开发一个“数据统计”页面,包含1-2个图表(如柱状图、饼图)。 * **第9周-第2次课:系统集成与测试** * **授课内容 (1.5小时)**: 1. **单元测试入门**:使用JUnit + Mockito对Service层进行简单测试。 2. **集成测试**:使用Postman对主要API进行测试集归档。 * **课堂实践 (1.5小时)**:各组编写1-2个核心服务的单元测试;使用Postman创建完整的接口测试集合。 * **第10周-第1-2次课:系统收尾与集成测试** * **目标**:完成所有计划功能,进行系统集成和测试。 * **形式**:集中开发与测试。教师检查各组的**功能完成清单**和**Bug列表**,协助解决阻碍性技术问题。 --- ### **第四阶段:测试部署与项目交付 (第11-12周)** **目标**:将系统部署上线,完成项目总结与交付。 * **第11周-第1次课:部署与运维基础** * **教学目标**:掌握传统服务器部署流程。 * **授课内容 (2小时)**: 1. **前端部署**:`npm run build`生成静态文件,配置Nginx托管。 2. **后端部署**:打包Jar文件,在服务器通过`java -jar`命令运行。 3. **数据库部署**:在服务器安装MySQL,导入本地SQL脚本。 4. **进程守护**:简单介绍使用`systemd`或`nohup`保持后台运行。 * **课堂实践 (1小时)**:教师演示一次从零到一的部署过程。各组在本地模拟或使用学校提供的测试服务器进行部署尝试。 * **第11周-第2次课:最终完善与答辩准备** * **授课内容 (1小时)**:**最终交付物清单**说明:源代码、可执行程序、部署文档、用户手册、项目总结PPT。 * **课堂实践 (2小时)**:各组完善所有文档,准备最终答辩的演示脚本和PPT,进行最后调试。 * **第12周-第1次课:项目终期答辩** * **课堂实践 (3小时)**:**最终答辩会**。每组10分钟演示:1. 系统全面展示(从用户角度);2. 架构与技术亮点介绍;3. 团队协作与项目管理总结。教师与同学提问。 * **第12周-第2次课:课程总结与展望** * **授课内容 (2小时)**: 1. 优秀项目展示与点评。 2. 课程知识点回顾与梳理。 3. 后续学习路径建议(微服务、云原生、DevOps等概念简介)。 * **课堂实践 (1小时)**:学生提交个人总结报告,进行课程反馈交流。 --- ## **三、项目选题** 所有项目均预设已具备基础平台的**完整用户体系和权限管理框架**。学生的主要工作是**设计和实现其特有的业务实体、业务流程与前端界面**。 1. **智能图书借阅管理系统** * **核心业务**:图书信息管理(编目、分类)、借阅/归还/续借流程、逾期罚款计算、图书检索与预约、借阅排行榜。 * **权限扩展示例**:读者、图书管理员、系统管理员。读者可预约,管理员处理借还。 2. **校园二手商品交易平台** * **核心业务**:商品发布与审核、商品分类浏览、站内信沟通、收藏夹、订单管理、交易评价。 * **权限扩展示例**:卖家、买家、平台审核员。审核员审核商品信息。 3. **实验室设备预约与管理系统** * **核心业务**:设备信息管理、在线预约(支持按时间段)、预约审核与冲突检测、使用记录登记、设备状态(在用/故障/闲置)管理。 * **权限扩展示例**:学生、实验室管理员、设备负责人。管理员审核预约,负责人确认归还。 4. **校园活动发布与报名平台** * **核心业务**:活动创建与发布、在线报名(可设置人数上限)、报名审核、活动签到(二维码)、活动反馈与评分。 * **权限扩展示例**:活动主办方、普通学生。主办方可管理自己发布的活动。 5. **个性化校园食堂菜品推荐与点评系统** * **核心业务**:食堂/窗口/菜品信息管理、每日菜单更新、菜品评分与评论、基于评分的简单推荐、消费记录模拟。 * **权限扩展示例**:学生、食堂商户。商户可管理自家菜品和菜单。 6. **毕业生导师双向选择系统** * **核心业务**:导师信息展示(研究方向、名额)、学生志愿填报、导师选择学生、双向匹配结果公布与确认、消息通知。 * **权限扩展示例**:学生、导师、教学秘书。秘书管理流程和时间节点。 7. **个人健康与运动打卡系统** * **核心业务**:个人运动记录(类型、时长、卡路里)、饮食记录、目标设定、数据可视化图表(周/月统计)、成就徽章系统。 * **权限扩展示例**:个人用户、好友。可选择性向好友公开打卡数据,进行简单排名。 8. **在线考试系统** * **核心业务**:创建课程、知识点及其其题库,提供一个随机抽题考试的线上考试系统。 * **权限扩展示例**:老师可以创建课程,添加题目,发布考试,自动评分与结果统计和输出。学生登录考试,定时结束。 --- ## **四、项目过程管理** 1. **软件仓库目录结构要求**: ``` / ├── README.md # 项目说明文档,包括目标、技术架构、每周进度等信息,可自由发挥 ├── reports/ # 存放周报文档的目录 ├── backend/ # 存放后端开发代码的目录 ├── frontend/ # 存放前端开发代码的目录 ├── LICENSE.md # 许可证文件(可选) └── .gitignore # git忽略文件配置 ``` 2. **每周提交一次项目进度报告**: - 报告内容和格式请参考 [周报模板](./report_template.md) - 每周的报告存储在 /reports/ 目录下,文件名格式为 week_xx_report.md