软件工程实践团队项目第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13559
这个作业的目标 定制ai智能体制作
学号 102301418 102301223 102301224 102301409 102301416 102301419 102301514 102301515 102301516 102301436 102301412 102301432

“小办同学”智能团队协作平台:我们如何用技术解决办公痛点

一名计算机专业学生的真实痛点与解决方案

作为一名计算机专业学生,我曾无数次在小组项目中陷入“讨论一小时,复盘全靠记”“任务分散在 N 个工具里”“大模型给不出合适的分工”的困境——相信不少职场人和学生党都有过类似经历。所以我们决定动手打造一款能真正解决办公痛点的工具,所以就有了“小办同学”智能团队协作平台的想法。

一、团队展示

关于我们12个的组队初衷,我们的团队名叫“落山基唬人队”,成员清一色是计算机学子:

image

组队理念:不搞“卷王模式”,而是以“放松、自由”的心态做技术——毕竟对我们来说,解决真实问题的过程,比单纯完成任务更有吸引力。

团队分工

  • 服务器后端搭建:4人
  • 数据库设计:2人
  • 技术方向统筹:1人
  • 智能体开发:1人
  • 硬件设备对接:1人
  • 前端界面打磨:2人
  • 测试验收:1人

二、项目规划

分四阶段推进:

  1. 需求分析
  2. 基础功能实现
  3. 功能扩展
  4. 优化

三、选题报告

当前同学们的协作痛点分析

  • 讨论效率低下:结论模糊,纪要整理耗时
  • 任务管理混乱:责任不明,进度难以跟踪
  • 工具分散:多平台切换导致信息割裂
  • 琐事干扰:设备操作、重复提醒占用精力

解决方案:“小办同学”核心功能

1. 智能会议分析

  • 语音转文字
  • 自动生成纪要并拆解任务

2. 智能任务分解

  • 帮助用户分解任务
  • 大模型赋能得到更科学更高效的分工方案

3. 智能任务匹配

  • 引入成员互评系统
  • 结合评分利用算法匹配成员

4. 智能待办管理

  • 可视化看板
  • 微信提醒结合

5. 智能助手与物联网控制

  • 通过自然语言控制办公设备

技术特点

  • AI深度集成于高频办公场景
  • 数据看板辅助工作流程优化
  • 软硬件结合,支持物联网设备控制

项目旨在通过技术手段减少低效环节,让团队专注于任务的处理,从而提升协作效率。


软件需求说明书

版本:1.1
日期:2025年11月2日

1. 引言

1.1 文档目的

本文档旨在定义“'小办同学'智能协作平台”软件需求,基于最新确认的前后端交互逻辑与数据库设计。本文档是项目开发、测试和验收的最终基准。

1.2 项目范围

本项目是一个集成了AI辅助功能的团队协作平台。系统通过前后端分离架构实现,后端基于特定的MySQL数据库设计。

1.3 参考文献

  • 项目初步需求说明
  • 数据库设计说明书

2. 总体描述

2.1 产品前景

通过AI技术自动化处理会议记录、任务分解与分配等繁琐工作,提升团队协作效率。

2.2 用户角色

角色名称 描述
团队成员/管理员 系统的注册用户。每个账号独立成为一个团队,既是团队成员也是该团队的管理员。

2.3 假设与约束

  • 假设:用户拥有稳定的网络环境;后端服务与MySQL数据库、AI服务接口连接正常。
  • 约束
    1. 用户账号密码均为8位,由数字或英文字符组成。
    2. 数据库严格按照提供的db_config配置及表结构创建。

3. 系统特性与功能需求

3.1 特性1:用户认证模块

3.1.1 描述与优先级
为用户提供注册和登录功能。优先级:高

3.1.2 刺激/响应序列

  • 刺激:用户在注册页面填写账号(8位), 密码(8位), 团队名称并提交。
  • 响应:前端调用/api/register。后端验证账号唯一性,后将数据存入user_database.user表,并返回结果。前端根据结果提示。
  • 刺激:用户在登录页面输入账号, 密码并提交。
  • 响应:前端调用/api/login。后端验证凭证,成功则返回useridteamname。前端需保存这两个数据,用于后续所有模块的数据关联(如操作task_<userid>, member_<userid>表)。

3.1.3 功能需求

  • FR-101:用户注册
    • 系统必须验证账号、密码均为8位数字或英文。
    • 系统必须在user_database.user表中验证账号的唯一性。
  • FR-102:用户登录
    • 系统必须在登录成功后返回useridteamname
    • 前端必须妥善保存useridteamname,用于后续会话。

3.2 特性2:会议处理模块

3.2.1 描述与优先级
用户上传音频文件,系统将其转换为文字并生成会议纪要。优先级:高

3.2.2 刺激/响应序列

  1. 用户上传音频文件,点击“转文字”。
  2. 前端调用/api/transcribe
  3. 后端返回文字结果,前端显示。
  4. 用户点击“生成纪要”。
  5. 前端调用/api/summarize,并将上一步的文字结果作为输入。
  6. 后端返回纪要内容,前端显示。

3.2.3 功能需求

  • FR-201:语音转文字
    • 系统必须提供接收音频文件并返回识别文字的API。
  • FR-202:生成会议纪要
    • 系统必须提供接收文字并返回摘要的API。

3.3 特性3:待办事项清单模块

3.3.1 描述与优先级
管理用户的个人待办事项。优先级:高

3.3.2 刺激/响应序列

  • 刺激:页面加载或点击“刷新”。
  • 响应:前端从本地JSON文件读取数据并渲染。
  • 刺激:用户点击待办事项卡片。
  • 响应:前端弹出编辑模态框,表单内预填充该卡片的原有信息。
  • 刺激:用户修改信息后点击“确定”。
  • 响应:前端调用/api/todo/update,后端根据前端传递的userid更新task_databasetask_<userid>表的对应记录

3.3.3 功能需求

  • FR-301:本地数据读取与展示
    • 前端必须能够从指定的本地JSON文件中读取并渲染待办事项。
  • FR-302:修改待办事项
    • 后端API必须能根据请求中的任务ID和userid,动态操作task_<userid>表。

3.4 特性4:我的团队模块(已更新)

3.4.1 描述与优先级
管理团队成员及其动态属性。优先级:高

3.4.2 刺激/响应序列

  • 基础信息管理
    • 刺激:用户进入“我的团队”页面。
    • 响应:前端从member_<userid>表获取并显示成员列表。
    • 刺激:用户点击“添加成员”或“删除成员”。
    • 响应:前端调用相应后端API,对member_<userid>表进行增删操作。
  • 成员能力评价
    • 刺激:用户点击某个成员卡片。
    • 响应:前端弹出一个评价窗口,内含质量评价时效评价协作评价负载值四个选项卡/区域。每种评价旁需显著提示“5分钟内仅可评价一次”
    • 刺激:用户选择质量评价协作评价负载值选项卡。
    • 响应:前端显示一个可拖动的进度条(范围0-10)。进度条UI应根据数值变化(如从哭脸到笑脸,或从“很闲”到“忙到爆”)。
    • 刺激:用户拖动进度条至某值并点击“确定”。
    • 响应:前端调用对应的后端评价API(/api/evaluate/quality, /api/evaluate/collaboration, /api/evaluate/workload),后端更新member_<userid>表中该成员的相应分数。后端需校验5分钟内是否已评价过
    • 刺激:用户选择时效评价选项卡。
    • 响应:前端显示“准时”和“超时”两个选项按钮。
    • 刺激:用户选择其一并点击“确定”。
    • 响应:前端调用/api/evaluate/timeliness后端逻辑:选择“超时”则将该成员的completion_score减2(最低至0);选择“准时”则加1(最高至10)。同样需校验5分钟限制。

3.4.3 功能需求

  • FR-401:团队成员基础管理:提供对member_<userid>表的增、删、查API。
  • FR-402:成员能力动态评价
    • 系统必须提供四个独立的API接口分别处理四种评价。
    • 每个评价API必须验证同一用户对同一成员的同一评价类型在5分钟内是否已执行过。
    • 质量评价协作评价的输入为0-10的数值,直接更新数据库对应字段。
    • 负载值的输入为0-10的数值,直接更新数据库的workload_score字段。
    • 时效评价为二选一输入,并根据规则更新数据库的completion_score字段。### 3.5 特性5:AI聊天模块

3.5.1 描述与优先级
与AI助手对话。优先级:中

3.5.2 刺激/响应序列

  • 刺激:用户进入聊天模块。
  • 响应:AI自动输出开场白。
  • 刺激:用户发送消息。
  • 响应:前端立即显示用户消息,并同时调用/api/chat,获取AI回复后显示。

3.5.3 功能需求

  • FR-501:AI对话
    • 系统必须提供一个接收用户消息并返回AI回复的API。

3.6 特性6:智能任务分解与匹配模块

3.6.1 描述与优先级
将复杂任务分解为子任务并智能分配给团队成员。优先级:高

3.6.2 刺激/响应序列

  1. 用户填写input_schema内容。
  2. 用户点击“生成任务”,前端调用/api/task/decompose
  3. 后端返回JSON格式的任务列表。前端必须保存此JSON,并将其解析为美观的任务卡片展示。
  4. 用户点击“智能任务匹配”。
  5. 前端调用/api/task/assign,并将已保存的任务列表JSON从后端获取的当前团队成员列表JSON作为输入。
  6. 后端执行匹配算法,返回分配结果的JSON。前端解析并展示。

3.6.3 功能需求

  • FR-601:任务分解
    • 系统必须提供根据input_template结构分解任务的API。
  • FR-602:智能任务匹配
    • 系统必须提供一个匹配算法API。
    • 匹配逻辑:以技术栈匹配为最高优先级。其次,按权重计算加权总分:质量(0.5) + 协作(0.3) + 完成度(0.2)
    • 算法必须为每个任务分配一个最合适的成员,并返回JSON格式的分配结果。

4. 外部接口需求

4.1 用户界面

  • 所有操作按钮必须明确绑定对应的后端API调用。
  • 所有API调用必须使用fetch,并根据后端返回的结果更新界面。

4.2 软件接口

  • 数据库接口:后端必须严格按照以下配置连接数据库:
    # 用户账号密码数据库
    db_config_user = {'host':'localhost','user':'root','password':'123456','database':'user_database'}
    # 待办事项数据库
    db_config_task = {'host':'localhost','user':'root','password':'123456','database':'task_database'}
    # 团队成员数据库
    db_config_member = {'host':'localhost','user':'root','password':'123456','database':'member_database'}
    

5. 数据需求与结构

5.1 数据库表结构

1. 用户表 (user_database.user)

CREATE TABLE user (
    id INT AUTO_INCREMENT PRIMARY KEY, -- 即userid
    username VARCHAR(32) NOT NULL,     -- 8位账号
    password VARCHAR(32) NOT NULL,     -- 8位密码
    teamname VARCHAR(64) NOT NULL
);

2. 待办事项表 (task_database.task_<userid>)

CREATE TABLE task_userid ( -- 表名根据当前userid动态生成,如task_28
    id INT AUTO_INCREMENT PRIMARY KEY,
    time DATE NOT NULL,
    place VARCHAR(255) NOT NULL,
    staff VARCHAR(255) NOT NULL,
    something TEXT NOT NULL,
    urgency INT DEFAULT 1
);

3. 团队成员表 (member_database.member_<userid>)

CREATE TABLE member_userid ( -- 表名根据当前userid动态生成,如member_28
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    tech_stack JSON,                    -- 多选技术栈,存储为JSON数组
    quality_score DECIMAL(5,2) DEFAULT 0.00,
    workload_score DECIMAL(5,2) DEFAULT 0.00,
    collaboration_score DECIMAL(5,2) DEFAULT 0.00,
    completion_score DECIMAL(5,2) DEFAULT 0.00
);

5.2 输入与输出数据结构

任务分解输入模板 (input_template)

{
    "task_type": "software/ppt/research",
    "background": "项目背景和动机",
    "final_deliverable": "最终要交的具体成果", 
    "deadline": "2024-06-30",
    "tech_tools": ["Python", "React"],
    "quality_criteria": {
        "must_have": ["响应时间<2s", "支持移动端"],
        "nice_to_have": ["暗色主题", "动画效果"]
    },
    "constraints": {
        "forbidden": ["不得使用付费API", "禁止抄袭代码"],
        "assumptions": ["用户都有网络环境", "数据量小于1万条"]
    },
    "success_metrics": ["用户注册率>20%", "页面加载完成度100%"]
}

成员属性与技术栈

  • 技术栈:多选,选项包括:PPT制作, 演讲者, 写手, 项目经理, 需求分析, 数据分析, UI设计, 平面设计, 视频剪辑, 3D建模, 摄影, 架构, 前端, 后端, dba, 运维
  • 属性分质量, 负载值, 协作, 完成度,均为0-10的数值,在匹配算法中权重分别为0.5, ———, 0.3, 0.2。

posted @ 2025-11-06 16:10  xuezong691  阅读(13)  评论(0)    收藏  举报