knowledge-vault/work/client-projects/高新教育/修路造车/学生实习/讨论实习答辩.md

35 KiB
Raw Blame History

1

角色设定

你是资深的教育家,负责学生的就业对就业市场有深刻的理解,并且了解信息化和智慧化。

背景

我负责一家高校的AI实验室主要工作是高校的智慧化建设工作。 今年计算机系与我们交流,看我们能不能担起一些学生实习、实训的工作。

在对计算机系的学生宣讲完后有40多名学生报名参加。 我对实验室承担的实习、实训工作分了一个四层漏斗,往下深入,每一层的人会更少:

  1. 科普。讲解AI的通识知识有些同学听了这些就够了。
  2. 见猪跑。计划为期一到两个月,主要目的是学生了解一个软件的研发过程,从需求到部署。
  3. 实习。计划两个月左右深入了解软件开发各阶段的特点使用AI来做需求分析、设计、编程和测试。
  4. 实训。实习的佼佼者,可以加入实验室,参与我们正在做的智慧化项目。

目前见猪跑项目结束,参与的学生分三个组提交了见猪跑项目的资料。 现在进入答辩环节。

见猪跑

# **“见猪跑”项目7周里程碑节点计划**

**总体原则:** 每周都有明确的 **目标**、清晰的 **任务**、配套的 **培训** 和可量化的 **交付成果**## **第一周:启动与基础 (Kick-off & Foundation)**

*   **周目标:** 完成团队组建与项目启动,掌握必备的协作工具,并输出初步的产品构想。
*   **核心任务 (学生)**
    *   团队内部破冰,选举小组长(项目经理)。
    *   在老师指导下,讨论并选定项目选题。
    *   创建项目代码仓库Gitee/GitHub和任务管理看板Trello/Leangoo*   集体讨论,编写出项目最核心的 **用户故事 (User Stories)** 和功能列表。
*   **您的角色与培训重点:**
    *   **培训1项目启动会** - 讲解“见猪跑”的目的、流程和考核方式。
    *   **培训2AI在软件开发中的应用** - 宏观介绍AI如何辅助需求、设计、编码、测试并演示GitHub Copilot等工具激发学生兴趣。
    *   **培训3协作工具入门** - **Markdown** 语法、**Git** 核心命令 (`clone`, `add`, `commit`, `push`)、**Trello** 看板的基本用法。
*   **交付成果:**
    *   ✅ 包含初始用户故事列表的任务管理看板。
    *   ✅ 创建好的、所有成员均有权限的Git代码仓库。
    *   ✅ 一份用Markdown编写的、简单的《项目启动说明书》。

---

#### **第二周:需求与设计 (Requirement & Design)**

*   **周目标:** 将模糊的想法转化为清晰、可视化的产品设计方案和技术架构蓝图。
*   **核心任务 (学生)**
    *   细化用户故事明确每个功能的验收标准Acceptance Criteria*   使用原型工具绘制应用的主要界面 **线框图 (Wireframe)** 或高保真原型。
    *   进行技术选型前端Vue后端Python+Flask*   设计数据库的核心 **表结构 (Schema)***   定义核心功能的 **API接口文档***   **您的角色与培训重点:**
    *   **培训1如何写好需求** - 用户故事与验收标准的撰写技巧。
    *   **培训2产品原型设计** - Figma或MasterGo等工具的快速入门。
    *   **培训3后端基础** - 什么是RESTful API、数据库表设计三范式、Postman工具的使用。
*   **交付成果:**
    *   ✅ 包含主要页面的Figma/MasterGo原型链接。
    *   ✅ 完整的数据库表结构设计图。
    *   ✅ 使用Postman或Markdown编写的核心API文档初稿。

---

#### **第三周:开发迭代一 (Sprint 1 - 搭建骨架)**

*   **周目标:** 完成项目技术架构的搭建,并实现用户注册/登录等基础核心功能。
*   **核心任务 (学生)**
    *   统一并搭建好本地开发环境。
    *   搭建前后端项目的基础工程结构。
    *   完成后端的用户模块API注册、登录、获取用户信息*   完成前端的登录/注册页面并与后端API联调通过。
*   **您的角色与培训重点:**
    *   **培训1前后端框架入门** - Vue和Flask/Django的项目创建与核心概念。
    *   **培训2Git分支管理** - 学习`develop`分支、`feature`分支的工作流。
    *   **指导:** 帮助学生解决环境配置、跨域CORS等初期常见问题。
*   **交付成果:**
    *   ✅ 一个可以运行的前后端项目骨架。
    *   ✅ 用户可以成功通过界面完成注册和登录功能。

---

#### **第四周:开发迭代二 (Sprint 2 - 核心功能实现)**

*   **周目标:** 完成项目最核心的业务功能模块的开发。
*   **核心任务 (学生)**
    *   **后端:** 开发核心业务API例如“失物招领”的发布、列表功能“会议室预定”的预定、查询功能*   **前端:** 开发核心功能的展示与交互界面。
    *   前后端进行核心功能的接口联调。
*   **您的角色与培训重点:**
    *   **培训1数据库操作** - ORM如SQLAlchemy的使用数据库增删改查。
    *   **培训2前端组件化开发** - 如何将页面拆分成可复用的组件。
    *   **Code Review** 开始引导学生进行代码互评,提升代码质量。
*   **交付成果:**
    *   ✅ 项目核心功能(如发布失物、预定会议室)可以完整跑通。

---

#### **第五周:开发迭代三 (Sprint 3 - 功能完善)**

*   **周目标:** 完成其余的辅助功能,使项目功能趋于完整。
*   **核心任务 (学生)**
    *   开发搜索、筛选、个人中心、详情页等辅助功能。
    *   对已有功能进行优化和细节调整。
    *   继续进行前后端联调和Bug修复。
*   **您的角色与培训重点:**
    *   **培训1应用状态管理** - 前端Vuex/Pinia等工具的使用。
    *   **指导:** 引导学生思考如何处理异常情况和边界条件。
*   **交付成果:**
    *   ✅ 项目达到“功能完整”状态,所有计划内的主要、次要功能均已开发完成。

---

#### **第六周:测试与文档周 (Testing & Documentation)**

*   **周目标:** 集中进行项目测试修复Bug确保软件质量并完善项目文档。
*   **核心任务 (学生)**
    *   **全员测试:** 小组内所有成员交叉测试彼此开发的功能记录Bug。
    *   **集中修复:** 集中精力解决测试中发现的Bug。
    *   **文档完善:** 撰写详细的《项目README文档》包括项目介绍、技术栈、如何运行、部署说明等。
*   **您的角色与培训重点:**
    *   **培训1如何有效提Bug** - 学习编写清晰的Bug报告重现步骤、期望结果、实际结果*   **培训2浏览器调试技巧** - Chrome DevTools的深入使用。
*   **交付成果:**
    *   ✅ 一个相对稳定的、Bug较少的待部署版本。
    *   ✅ 一份高质量、内容详尽的 `README.md` 文件。

---

#### **第七周:部署与复盘 (Deployment & Showcase)**

*   **周目标:** 将项目成功部署到线上服务器,并进行项目总结与成果展示。
*   **核心任务 (学生)**
    *   在老师指导下,学习并完成项目部署。
    *   准备项目展示的PPT和演示稿。
    *   进行小组内部和全体的 **项目复盘 (Retrospective)**,总结经验教训。
    *   **最终成果展示会!**
*   **您的角色与培训重点:**
    *   **培训1应用部署入门** - Docker基础、Nginx反向代理配置、服务器SSH操作入门。
    *   **组织与主持:** 组织最终的项目展示会,并进行点评。
*   **交付成果:**
    *   ✅ 一个可以通过公网访问的应用URL。
    *   ✅ 一份项目展示PPT。
    *   ✅ 每位同学提交一份“见猪跑”实习总结报告。

答辩材料


    # 在线问卷/投票系统项目答辩材料

    ## 1. 项目概述

    ### 1.1 项目背景
    在当今数字化时代,传统的纸质问卷已经无法满足高效、便捷的数据收集需求。学生会、社团及课程小组等团体在组织活动、收集意见时,常常面临以下痛点:
    - 纸质问卷打印成本高、分发效率低
    - 人工统计数据耗时耗力,容易出错
    - 无法实时查看问卷回收情况
    - 数据可视化程度低,难以直观分析

    本项目旨在开发一个高效的在线问卷与投票工具,解决上述问题,提供一个便捷的平台,支持用户快速创建、发布、分享并自动统计问卷结果。

    ### 1.2 项目目标
    1. **功能完整性**:支持多种题型、问卷管理、发布分享、结果统计等核心功能
    2. **易用性**:提供直观友好的用户界面,降低使用门槛
    3. **高效性**:实现问卷快速创建、发布和结果实时统计
    4. **可扩展性**:采用模块化设计,便于后续功能扩展
    5. **安全性**:确保用户数据和问卷内容的安全

    ### 1.3 项目团队
    - **团队名称**24计升集中实习奋斗项目组
    - **团队成员**:陈浩东 白一帆 张赛琦 许雨孜 刘雪坤 杜蓉悦 李泽昕 陈毅 李轩昊 赵江恒 白锦程 田昭阳

    ### 1.4 团队分工
    | 成员 | 负责模块 |
    |------|----------|
    |白锦程	田昭阳 | 需求分析 |
    | 李轩昊	赵江恒 | 数据库设计 |
    | 李泽昕	陈毅 | 测试 |
    | 	白一帆 | 部署 |
    | 张赛琦	许雨孜	刘雪坤	杜蓉悦 | 材料的编写 |

    ## 2. 需求分析


    ### 2.2 核心功能需求
    1. **问卷管理**:创建、编辑、删除、复制问卷
    2. **问卷设计**:支持单选题、多选题、文本题等多种题型
    3. **问卷发布**:生成分享链接,支持实时状态管理
    4. **问卷填写**:简洁易用的填写界面
    5. **结果统计**:实时数据统计与可视化图表展示

    ## 3. 系统设计

    ### 3.1 系统架构
    - **前端**HTML/CSS/JavaScript使用Bootstrap等前端框架
    - **后端**Python Flask框架
    - **数据库**SQLite开发环境/MySQL生产环境
    - **认证机制**JWT Token认证


    ### 3.2 API设计
    | API路径 | 方法 | 功能描述 | 请求参数 | 响应格式 | 认证要求 |
    |---------|------|----------|----------|----------|----------|
    | /api/login | POST | 用户登录,返回访问令牌和刷新令牌 | `username` (string, 必需)`password` (string, 必需) | `{"code": 200, "message": "登录成功", "data": {"token": "...", "refresh_token": "...", "user": {...}}}` | 否 |
    | /api/refresh | POST | 使用刷新令牌获取新的访问令牌 | `refresh_token` (string, 必需) | `{"code": 200, "message": "令牌刷新成功", "data": {"token": "..."}}` | 是 |
    | /api/verify-token | POST | 验证访问令牌有效性 | Authorization头: `Bearer <token>` | `{"code": 200, "message": "令牌有效", "data": {"user": {...}, "expires_at": 1234567890}}` | 是 |
    | /api/questionnaire/list | GET | 获取当前用户的问卷列表,支持分页和搜索 | `page` (int, 默认1)`pageSize` (int, 默认10)`title` (string, 可选) | `{"code": 200, "message": "获取问卷列表成功", "data": {"list": [...], "total": 100, "page": 1, "pageSize": 10}}` | 是 |
    | /api/questionnaire/create | POST | 创建新问卷,包含题目和选项 | `title` (string, 必需)`description` (string, 可选)`questions` (array, 可选) | `{"code": 200, "message": "创建问卷成功", "data": {"id": 1}}` | 是 |
    | /api/questionnaire/<int:questionnaire_id> | GET | 获取问卷详情,包含题目和选项(公开访问) | 无 | `{"code": 200, "message": "获取问卷详情成功", "data": {...}}` | 否 |
    | /api/questionnaire/<int:questionnaire_id> | PUT | 更新问卷及其题目和选项 | `title` (string, 必需)`description` (string, 可选)`questions` (array, 可选) | `{"code": 200, "message": "问卷更新成功", "data": {"id": 1}}` | 是 |
    | /api/questionnaire/<int:questionnaire_id> | DELETE | 删除问卷(预留接口) | 无 | `{"code": 200, "message": "删除问卷功能待实现", "data": null}` | 是 |
    | /api/questionnaire/<int:questionnaire_id>/publish | POST | 发布问卷,将状态改为进行中 | 无 | `{"code": 200, "message": "问卷发布成功", "data": {"id": 1, "status": "published"}}` | 是 |
    | /api/questionnaire/<int:questionnaire_id>/statistics | GET | 获取问卷统计结果,包含选择题统计和文本题列表 | 无 | `{"code": 200, "message": "获取问卷统计结果成功", "data": {"submission_count": 100, "questions": [...]}}` | 是 |
    | /api/questionnaire/<int:questionnaire_id>/submit | POST | 提交问卷答案,增加问卷提交计数 | `answers` (array, 必需) | `{"code": 200, "message": "问卷提交成功", "data": {"submission_id": 1}}` | 否 |

    ## 4. 数据库设计

    ### 4.1 数据库表结构
    系统包含6个核心表

    1. **users**:系统用户表(管理员和普通用户)
    2. **questionnaires**:问卷主表
    3. **questions**:问卷题目表
    4. **options**:题目选项表
    5. **submissions**:用户提交记录表
    6. **answers**:具体题目答案表

    ### 4.2 核心表关系
    ```
    users (1:N) questionnaires (1:N) questions (1:N) options
    questionnaires (1:N) submissions (1:N) answers
    questions (1:N) answers
    ```

    ### 4.3 关键表设计示例
    ```sql
    -- 问卷主表
    CREATE TABLE `questionnaires` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '问卷ID',
    `creator_id` BIGINT UNSIGNED NOT NULL COMMENT '创建者ID',
    `title` VARCHAR(50) NOT NULL COMMENT '问卷标题',
    `description` TEXT COMMENT '问卷说明',
    `status` VARCHAR(20) NOT NULL DEFAULT 'draft' COMMENT '状态',
    `submission_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '总回收量',
    `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    PRIMARY KEY (`id`),
    CONSTRAINT `fk_q_creator` FOREIGN KEY (`creator_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
    ) ENGINE=InnoDB;
    ```

    ## 5. 功能模块实现

    ### 5.1 用户认证模块
    - **登录功能**:支持账号密码登录,前端实现实时表单验证
    - **JWT Token管理**采用JSON Web Token实现无状态认证Token有效期24小时
    - **权限控制**:基于角色的访问控制,区分普通用户和管理员权限
    - **密码安全**使用BCrypt算法对密码进行哈希存储确保密码安全

    ### 5.2 问卷管理模块
    - **问卷列表展示**支持按标题搜索、分页每页10条、状态筛选
    - **问卷状态管理**:实现草稿、进行中、已结束三种状态的流转
    - **问卷操作**:支持查看、编辑、复制、删除等操作,编辑仅允许草稿状态
    - **批量操作**:支持多选删除、批量复制等高效操作

    ### 5.3 问卷设计模块
    - **多种题型支持**:实现单选题、多选题、单行文本、多行文本等题型
    - **题目管理**:支持题目添加、删除、复制、上移、下移等操作
    - **选项管理**:动态添加、删除选项,支持选项文字编辑
    - **拖拽排序**:实现题目拖拽排序功能,提升用户体验
    - **实时保存**每30秒自动保存草稿到本地防止数据丢失
    - **预览功能**实时预览问卷最终效果支持PC和移动端预览

    ### 5.4 问卷发布模块
    - **一键发布**:点击发布按钮即可将问卷状态改为进行中
    - **分享链接生成**:自动生成唯一的问卷访问链接
    - **截止时间设置**:支持设置问卷截止时间,到期自动结束
    - **实时状态监控**:随时查看问卷回收进度和状态

    ### 5.5 问卷填写模块
    - **响应式设计**适配PC、平板、手机等不同设备
    - **流畅的填写体验**:清晰的题目布局,直观的选项设计
    - **实时校验**:前端实现必答题校验,未填写时给出明确提示
    - **防重复提交**:实现表单重复提交防护机制
    - **提交反馈**:提交成功后显示感谢页面,提交失败给出错误提示

    ### 5.6 结果统计模块
    - **实时数据更新**每5秒自动刷新统计数据
    - **数据概览**:显示总回收量、平均完成时间、浏览量等关键指标
    - **可视化图表**
    - 单选题:饼图展示各选项占比
    - 多选题:柱状图展示各选项选择次数
    - 文本题:文本云展示高频词汇
    - **详细数据查看**:支持查看单份答卷详情,支持按时间筛选
    - **数据导出**支持将统计结果导出为Excel格式

    ### 5.7 技术实现要点
    1. **前后端数据交互**采用JSON格式进行数据传输API遵循RESTful设计规范
    2. **JWT认证机制**
    - 使用Flask-JWT-Extended实现token生成和验证
    - 访问令牌有效期1小时刷新令牌有效期7天
    - 实现了令牌刷新和验证接口
    - 提供了@jwt_required装饰器进行身份验证
    - 实现了基于角色的访问控制role_required装饰器
    3. **数据库事务处理**:问卷创建、更新和提交操作采用事务管理,确保数据一致性
    4. **模块化设计**
    - 认证模块和问卷模块分离,便于维护和扩展
    - 提供了JWT工具类封装了常用的认证功能
    5. **跨域支持**使用Flask-CORS实现跨域资源共享
    6. **数据库设计**采用SQLAlchemy ORM框架实现了表与表之间的关系映射

    ## 6. 系统亮点

    ### 6.1 技术亮点
    1. **前后端分离**:便于团队协作和系统扩展
    2. **JWT认证**:提供安全的用户认证机制
    3. **响应式设计**:适配各种设备屏幕
    4. **实时数据更新**:确保用户看到最新数据
    5. **模块化设计**:便于功能扩展和维护

    ### 6.2 功能亮点
    1. **多种题型支持**:满足不同场景需求
    2. **直观的问卷设计界面**:降低使用门槛
    3. **便捷的分享功能**:扩大问卷传播范围
    4. **丰富的数据可视化**:便于数据分析
    5. **完善的状态管理**:灵活控制问卷生命周期

    ## 7. 项目实施

    ### 7.1 开发环境搭建
    1. **Python环境**安装Python 3.8+使用virtualenv创建虚拟环境
    2. **依赖安装**使用pip安装Flask及相关依赖requirements.txt
    3. **数据库初始化**:执行数据库迁移脚本,创建表结构
    4. **开发服务器启动**:运行`python app.py`启动本地开发服务器

    ### 7.2 部署方案
    - **开发环境**本地开发使用SQLite数据库
    - **测试环境**阿里云ECS服务器使用MySQL数据库
    - **生产环境**:建议使用云服务器集群+负载均衡,数据库采用主从复制架构

    ### 7.3 项目管理
    - **开发模式**:采用敏捷开发模式,两周一个迭代
    - **版本控制**使用Git进行代码管理GitHub作为代码仓库
    - **任务管理**使用Trello进行任务分配和进度跟踪
    - **代码规范**遵循PEP8 Python代码规范使用flake8进行代码检查

    ### 7.4 项目进度
    | 阶段 | 时间 | 完成情况 | 主要成果 |
    |------|------|----------|----------|
    | 需求分析 | 第1周 | ✅ 完成 | 需求文档、用户故事 |
    | 系统设计 | 第2周 | ✅ 完成 | 系统架构图、数据库设计 |
    | 后端开发 | 第3-4周 | ✅ 完成 | API实现、数据库模型 |
    | 前端开发 | 第5-6周 | ✅ 完成 | 页面开发、交互实现 |
    | 测试与调试 | 第7周 | ✅ 完成 | 测试报告、bug修复 |
    | 部署上线 | 第8周 | ✅ 完成 | 系统部署、文档编写 |

    ### 7.5 技术难点与解决方案
    1. **问题**:问卷设计时的实时保存机制
    **解决方案**使用localStorage结合定时任务实现自动保存每30秒保存一次

    2. **问题**:问卷结果的实时统计
    **解决方案**采用WebSocket实现数据实时推送或使用定时轮询每5秒

    3. **问题**:多种题型的动态渲染
    **解决方案**:使用组件化设计,针对不同题型开发独立组件

    4. **问题**:防止问卷重复提交
    **解决方案**使用Token机制每次提交生成唯一Token服务器验证后失效

    ## 8. 测试与验证

    ### 8.1 测试策略
    1. **单元测试**使用pytest框架覆盖率达到80%以上
    2. **集成测试**测试API接口间的交互确保数据流转正确
    3. **功能测试**:基于需求文档编写测试用例,验证所有功能点
    4. **性能测试**使用JMeter进行压力测试确保系统能承受100并发访问
    5. **安全性测试**测试SQL注入、XSS攻击等安全漏洞
    6. **用户体验测试**邀请10名用户进行测试收集反馈意见

    ### 8.2 测试用例示例
    | 测试用例ID | 功能模块 | 测试场景 | 预期结果 | 实际结果 | 状态 |
    |------------|----------|----------|----------|----------|------|
    | TC_001 | 登录功能 | 正确账号密码登录 | 登录成功,返回访问令牌 | 通过 | ✅ |
    | TC_002 | 登录功能 | 错误密码登录 | 登录失败,提示账号或密码错误 | 通过 | ✅ |
    | TC_003 | 问卷管理 | 获取问卷列表 | 成功获取问卷列表,包含分页信息 | 通过 | ✅ |
    | TC_004 | 问卷管理 | 创建包含多种题型的问卷 | 问卷创建成功,状态为草稿 | 通过 | ✅ |
    | TC_005 | 问卷管理 | 发布问卷 | 问卷状态改为进行中 | 通过 | ✅ |
    | TC_006 | 问卷填写 | 完整填写并提交问卷 | 提交成功返回提交ID | 通过 | ✅ |
    | TC_007 | 问卷统计 | 获取问卷统计结果 | 成功获取问卷统计数据,包含各题型的统计信息 | 通过 | ✅ |
    | TC_008 | 认证功能 | 刷新访问令牌 | 成功获取新的访问令牌 | 通过 | ✅ |
    | TC_009 | 认证功能 | 验证令牌有效性 | 正确返回令牌状态和用户信息 | 通过 | ✅ |
    | TC_010 | 问卷管理 | 更新问卷内容 | 问卷更新成功,保留历史数据 | 通过 | ✅ |

    ### 8.3 测试结果
    - **功能测试**共执行120个测试用例通过率98.3%
    - **性能测试**
    - 平均响应时间:<500ms
    - 并发用户数支持100并发
    - 系统稳定性持续运行24小时无故障
    - **安全性测试**未发现严重安全漏洞
    - **用户体验测试**用户满意度评分4.5/5

    ### 8.4 质量保证
    - 建立代码审查机制确保代码质量
    - 使用CI/CD pipeline自动运行测试
    - 定期进行bug统计和分析持续改进

    ## 9. 未来展望

    ### 9.1 功能扩展
    1. **高级题型支持**添加矩阵题量表题排序题上传题等高级题型
    2. **问卷模板库**建立丰富的问卷模板库支持一键套用
    3. **数据分析增强**
    - 实现交叉分析功能
    - 添加数据可视化自定义
    - 支持生成数据分析报告
    4. **协作编辑功能**支持多人同时编辑同一问卷
    5. **问卷逻辑跳转**实现基于答案的动态逻辑跳转
    6. **用户管理系统**增强用户管理功能支持用户分组权限细化

    ### 9.2 性能优化
    1. **数据库优化**
    - 优化查询语句添加适当索引
    - 实现数据库读写分离
    - 考虑使用NoSQL存储部分数据
    2. **前端优化**
    - 资源压缩和CDN加速
    - 实现懒加载和代码分割
    - 优化页面渲染性能
    3. **缓存机制**
    - 使用Redis缓存热门问卷数据
    - 实现API响应缓存
    4. **高并发支持**
    - 优化系统架构支持水平扩展
    - 使用消息队列处理异步任务

    ### 9.3 安全性增强
    1. **验证码功能**添加图形验证码或行为验证码防止恶意登录
    2. **访问控制**实现IP限制访问频率限制
    3. **数据安全**
    - 增强数据加密机制
    - 实现数据备份和恢复策略
    - 完善数据脱敏处理
    4. **日志系统**
    - 完善系统日志记录
    - 实现日志分析和告警功能

    ## 10. 项目成果展示

    ### 10.1 主要页面截图
    1. **登录页面**简洁的登录界面支持实时表单验证
    2. **问卷管理页面**清晰的问卷列表支持搜索筛选和各种操作
    3. **问卷设计页面**直观的拖拽式问卷设计界面
    4. **问卷填写页面**响应式设计适配各种设备
    5. **结果统计页面**丰富的数据可视化图表

    ### 10.2 核心功能演示
    1. **问卷创建流程**从创建到发布的完整流程
    2. **问卷填写体验**流畅的填写过程和实时验证
    3. **结果统计展示**实时数据更新和可视化图表
    4. **问卷分享功能**一键生成分享链接

    ## 11. 使用说明

    ### 11.1 管理员账号
    - 用户名admin
    - 密码admin123

    ### 11.2 快速入门
    1. 登录系统
    2. 点击"新建问卷"按钮创建问卷
    3. 设计问卷内容添加题目设置选项等
    4. 点击"保存草稿""发布"按钮
    5. 发布后生成分享链接可分享给他人填写
    6. 在问卷列表中查看回收结果和统计数据

    ### 11.3 常见问题
    1. **问题**忘记密码怎么办
    **解决方案**联系管理员重置密码

    2. **问题**问卷发布后还能编辑吗
    **解决方案**问卷发布后不能直接编辑需要先结束问卷然后复制为新问卷进行编辑

    3. **问题**如何查看问卷填写详情
    **解决方案**在问卷列表中点击"查看结果"然后选择"查看答卷详情"

    ## 12. 总结

    ### 12.1 项目成果
    本项目成功开发了一个功能完整易用性强的在线问卷/投票系统主要成果包括
    1. 实现了完整的问卷生命周期管理创建编辑发布填写统计
    2. 支持多种题型和丰富的问卷设计功能
    3. 提供了直观友好的用户界面和流畅的操作体验
    4. 实现了实时数据统计和丰富的数据可视化
    5. 采用了现代化的技术栈和良好的系统架构

    ### 12.2 经验教训
    1. **需求分析的重要性**充分的需求分析是项目成功的基础避免了后期频繁的需求变更
    2. **模块化设计的优势**模块化设计便于功能扩展和维护提高了开发效率
    3. **测试的必要性**全面的测试确保了系统的质量和稳定性
    4. **团队协作的重要性**良好的团队协作和沟通是项目成功的关键
    5. **文档的价值**完善的文档便于系统维护和后续开发

    ### 12.3 个人收获
    通过本项目的开发团队成员在以下方面获得了提升
    1. 掌握了Web应用开发的全流程
    2. 熟悉了现代化的技术栈和开发工具
    3. 提高了团队协作和项目管理能力
    4. 增强了问题分析和解决能力
    5. 积累了系统设计和架构经验

    ## 13. 致谢

    感谢各位老师的指导感谢团队成员的协作努力

思路

我已经试用了这个组部署的服务,系统能够使用。从成果上讲,基本上达成了我想要做的见猪跑目标。 他们现在要进入答辩环节,答辩完成后,我将给他们一份实习证明。 我计划从这个组中抽取(或者全部)人员加入我们的实习项目,真正去做一个软件项目,同时给实验室提供生力军——完成一些体力活。 我不想以问题的形式——不克扣,而是以交流的形式进行答辩。了解每个人的想法,从中学习到的内容,对未来的想法,以及有什么问题。

指令

我需要你帮我整理:

  1. 答辩形式建议,比如每个人都谈下想法,到开发的具体过程时,以负责人为主,其他人可以补充等等;
  2. 答辩讨论的问题,及相关问题的考察点。

你好很高兴看到这批学生顺利完成了“见猪跑”环节。对于一支由12名大二/大三学生组成的团队能在7周内从0到1交付一个可部署、功能完整的Web应用并且文档如此详尽这本身就是一个非常值得肯定的成果。

特别是你提到**“不想克扣分数,而是以交流的形式,了解想法,选拔实习生”**,这非常符合现代科技企业和高水平实验室的选人逻辑——比起“现在的代码水平”,我们更看重“学习潜力和工程思维”

针对这12人的庞大队伍对于一个CRUD项目来说12人确实稍显拥挤容易出现“搭便车”现象我建议采用**“分组聚焦 + 个人复盘”**的答辩策略。

以下是为你整理的答辩形式建议与讨论问题库。


第一部分:答辩形式建议 (时长控制在 60-90 分钟)

既然目的是选拔“实习”阶段的生力军,答辩现场的气氛应当是**“轻松但专业”**的。我们要把这里变成一个技术复盘会Retrospective而不是期末考试。

建议流程:

  1. 成果演示 (10分钟) —— 由项目经理(小组长)主讲

    • 内容不仅仅是PPT念稿而是直接打开浏览器演示上线的功能。重点演示核心业务流程创建->发布->填写->统计)。
    • 目的:确认交付物的真实性,给团队一个展示的高光时刻。
  2. “真心话”圆桌 (20-30分钟) —— 全员参与每人2分钟

    • 形式:不要按分工坐,打乱顺序。每个人简短回答三个问题:
      • 在这个项目中,我最自豪的一个细节是什么?
      • 如果时间倒流,我会在哪个环节做得不一样?
      • 我对下一阶段AI辅助开发有什么期待
    • 目的:这是选人的关键。过滤掉“混子”,识别出“有思考的人”。 有些人可能代码写得少,但思考很深;有些人可能只是机械执行。
  3. 模块化深度交流 (30分钟) —— 分角色切入,自由补充

    • 形式你抛出问题主要负责人回答鼓励其他组员补充或提出异议比如开发吐槽需求变动测试吐槽Bug难复现
    • 目的:考察技术深度和协作中的摩擦点。
  4. 导师寄语与邀约 (10分钟)

    • 内容:点评项目亮点,指出工业界的真实做法与他们目前的差距(这是教育者的价值),并发出实习邀请。

第二部分:交流问题与考察点

这些问题不是为了难倒学生,而是为了看他们是否“真懂”,以及他们的思维方式。

1. 面向“需求与设计”组 (白锦程、田昭阳、李轩昊、赵江恒)

这组人决定了项目的方向和地基。

  • 问题 A我看你们用了12个人做这个项目沟通成本很高。在需求分析阶段你们是如何决定“哪些功能必须做”而“哪些功能由于时间不够先砍掉”的有没有发生过争执
    • 考察点产品思维与优先级管理。看他们是否懂得MVP最小可行性产品概念还是全凭拍脑袋。
  • 问题 B:数据库设计里,你们把submissions(提交记录)和answers具体答案分开了。当时是怎么考虑的如果一个问卷有100个问题10000人填写在这个表结构下查询会不会变慢
    • 考察点数据建模能力与性能意识。看他们是否理解范式设计,以及对大数据量下的性能有没有初步概念。

2. 面向“开发与部署”组 (白一帆、项目全栈人员)

这组人是干实活的核心,也是未来实验室的“熟练工”预备役。

  • 问题 A既然我们是AI实验室在这次写代码的过程中你们有没有尝试使用AI工具如ChatGPT, Copilot等是在写SQL、写正则还是Debug时用的感觉它帮了倒忙还是大忙
    • 考察点AI工具的亲和度与真实感悟。实习阶段需要大量用AI这里考察他们是否已经不仅是“听过”而是“用过”并有自己的判断。
  • 问题 B在这个项目中最让你头疼的一个Bug是什么你是怎么定位并解决它的比如JWT的过期处理或者跨域问题
    • 考察点问题解决能力。优秀的工程师擅长讲故事讲他如何战胜Bug的过程。
  • 问题 C我看后端用了Python Flask。如果现在让你把这个项目部署到学校所有的社团使用并发量突然变大你觉得目前的架构哪里会最先撑不住
    • 考察点系统架构的扩展性。考察是否了解Web服务器、数据库连接池、缓存等概念即便没做也要有概念。

3. 面向“测试与文档”组 (李泽昕、陈毅、张赛琦、许雨孜、刘雪坤、杜蓉悦)

这组人数最多6人最容易出现“搭便车”。需要重点考察他们是否真正深入理解了系统。

  • 问题 A (针对测试)你们报告里写测试通过率98.3%。请问那个失败的1.7%是什么在测试过程中有没有发现过那种“开发人员觉得不是Bug但你们觉得是Bug”的情况
    • 考察点质量意识与批判性思维。测试不仅仅是点点点,而是要敢于挑战开发。
  • 问题 B (针对文档)你们有4个人负责编写材料。作为一个开发者最讨厌写文档。你们是如何分工的在写API文档时你们是看着代码写的还是先写文档让开发去实现的
    • 考察点协作流程理解。如果是“看着代码写文档”,那是事后诸葛亮;如果是“先写文档”,那是优秀的设计驱动开发。我想确认他们是否真的理解代码逻辑,而不是纯粹的文字搬运工。

4. 面向全员的“灵魂拷问” (抢答或指定)

  • 问题:如果在接下来的实习中,我们要把这个问卷系统加入**“AI智能分析”**功能,比如自动总结问卷里的文本回答,或者自动生成问卷题目。你们觉得应该加在哪个模块?大概需要用到什么技术?
    • 考察点技术视野与创新力。这是为了筛选进入第三层漏斗实习的最佳人选。看谁能跳出CRUD的思维对接实验室的业务方向。

第三部分:选拔建议(您的私下评估表)

在听取回答时,建议您在心里(或笔记本上)为每个人打这三个标签:

  1. Tech Lead 苗子:逻辑清晰,不仅懂代码还懂架构,能回答出“为什么这么做”。 -> 重点培养,给有挑战的任务。
  2. Solid Doer (靠谱执行者)代码写得多Bug解得快虽然话不多但对技术细节如数家珍。 -> 实验室主力,负责具体模块开发。
  3. Communication Hub (润滑剂):也许代码一般,但非常清楚团队在干什么,文档写得极好,能协调矛盾。 -> 适合做PM或负责需求与测试协助管理项目。
  4. (如果发现) Free Rider (搭便车者):对自己负责模块的细节支支吾吾,都在讲空话。 -> 礼貌地发一份“见猪跑”结业证书,但这层漏斗就此截止。

祝您的答辩会顺利,为实验室筛选出得力干将!