ERROR401--软件工程实践团队作业第四次--LLM结合探索CodeArts团队实战总结
| 这个作业属于哪个课程 | https://bbs.csdn.net/forums/2601_CS_SE_FZU |
|---|---|
| 这个作业要求在哪里 | https://bbs.csdn.net/topics/620575631 |
| 这个作业的目标 | 通过团队协作完成“智会通”学术会议智能参会管理系统,实现 GUI、基础业务、LLM 推荐与数据库设计,开展 AI 辅助编码、代码审查和测试验证,完成服务器部署,并通过 CodeArts 提交记录、贡献评价及 PSP 表总结开发过程,提升软件工程实践与团队协作能力。 |
| 其他参考文献 | 2026中国计算机大会(CNCC 2026) |
目录
- 第一部分:项目交付与团队协作
- 第二部分:对选题展示的重新思考
- 第三部分:项目实现与验证
- 第四部分:附加功能与实践总结
第一部分:项目交付与团队协作
1. 项目简介与访问地址
项目名称:智会通——学术会议智能参会管理系统。
- 项目 CodeArts 地址:https://hn.devcloud.huaweicloud.com/codehub/project/1dfd9c910d3349da85bc21cfab617450/codehub/8181616/home?ref=main
- 项目部署在线地址:http://8.163.22.221/
面对大型学术会议中数量多、主题广、时间并行的论坛,参会者往往需要反复查阅议程、比较内容,再手工安排日程;组织者则需要同时处理论坛资料、报名、通知与统计。我们希望把这些分散的操作串联起来,让用户从表达兴趣开始,一直完成论坛选择、报名和日程管理。
智会通提供会议与论坛浏览、自然语言推荐、报名与取消、个人日程、时间冲突检测、通知与议程变更、管理统计和名单导出等功能。参会者通过统一界面完成个人安排,组织者通过管理端维护会议与论坛,并在授权范围内处理人员、通知和导出任务。
项目采用前后端分离架构:前端为 Vue 3、TypeScript 和 Vite,后端为 Java 17、Spring Boot 和 Spring JDBC。本地开发使用 H2 文件数据库,服务器部署方案使用 PostgreSQL、Docker Compose 和 Nginx。
当前项目内置 CNCC2026 课程数据快照,包含 1 场大会、170 场论坛和 758 条报告。论坛中包含 3 场大会论坛、143 场非 Tutorial 专题论坛和 24 场 Tutorial。系统保留原始会议时间与来源信息,不将课程系统内的操作当作 CNCC 官方报名。
2. 组员职责分工
我们按业务模块划分职责,同时明确公共组件、共享接口和跨模块调用的负责人。各成员除完成后端实现外,也负责相应页面的数据接入、异常处理和联调。
| 成员 | 主要职责 | 具体工作与交付 |
|---|---|---|
| 102400129 杨裕 | 统一 UI、公共前端、个人偏好与集成 | 全站布局和页面模板、公共组件、请求客户端、路由与身份状态、语言资源、个人设置接口;参与合并冲突处理和整体联调修复 |
| 102400127 王子涵 | 账号、会话、权限、审计与幂等 | 登录注册、会话轮换与退出、CSRF 校验、会议/论坛范围授权、角色管理、审计记录及相关页面 |
| 102400130 杨子旭 | 会议、论坛、导入与议程维护 | 会议及论坛查询、筛选与详情,管理端维护、导入预览与确认、议程版本与变更记录 |
| 102400132 叶宇恒 | 报名与个人会议状态 | 报名、取消、恢复、集合更新、注册初始报名、报名事件及统一报名按钮适配 |
| 102400110 阿卜杜拉 | LLM 推荐与反馈 | 真实论坛候选检索、推荐接口、结构化结果、推荐反馈及相关集成 |
| 102400111 蔡伟仡 | 日程、冲突检测与日历导出 | 个人日程生成、重叠与转场提示、日程建议、列表/时间轴展示和 ICS 导出 |
| 102400112 蔡耀陞 | 通知、议程变更与可靠投递 | 通知编辑发布、消息收件与已读、变更中心、Outbox 事件队列、SSE 与补拉机制 |
| 102400116 黄博文 | 统计、参会者、导出与部署 | 管理概览、报名统计、参会者筛选、异步 CSV 导出、健康检查及部署配置 |
协作中,我们统一使用 /api/v1 接口前缀、共享数据类型、错误格式和版本字段。公共组件由统一负责人维护,业务负责人接入真实数据,减少重复开发和接口含义不一致的问题。
3. CodeArts 提交日志与 commit 统计
3.1 提交日志截图
CodeArts 主分支提交历史

102400127

102400130

102400132

102400110

102400111

102400112

102400116

3.2 提交统计
以下为本地仓库截至提交 f5800d2 的可达历史统计,供与 CodeArts 核对。总提交数包含合并提交,另列排除合并后的提交数。作者账号与成员的对应关系依据提交说明识别,发布前由本人确认;远端若有新增提交,以最终 CodeArts 记录更新。
| 成员/身份 | Git 作者标识 | 总提交数(含合并) | 非合并提交数 |
|---|---|---|---|
| 102400129 | 102400129 | 10 | 5 |
| 102400127 | 102400127 | 4 | 3 |
| 102400130 | Big_Dark_Duck | 3 | 3 |
| 102400132 | 102400132 | 3 | 3 |
| 102400110 | abdl0519 | 1 | 1 |
| 102400111 | 102400111蔡伟仡 | 3 | 3 |
| 102400112 | mitsu_ki | 3 | 3 |
| 102400116 | hanbao_666 | 4 | 4 |
| 待确认归属的合并账号 | hid_tpljoij_ytwoisr | 7 | 0 |
| 合计 | — | 38 | 25 |
合并账号的 7 次提交单独列出,确认归属后再并入对应成员,避免重复计算。commit 数反映代码提交过程,但不能单独衡量工作量与质量;贡献评价还需要结合模块难度、测试、联调和问题解决情况。
4. 程序运行截图与功能说明
4.1 论坛发现与筛选
图1:智会通论坛发现页面

用户可以按关键词、主题、日期和报名状态筛选论坛,查看论坛时间、会场和简介,并进入详情或执行报名。系统统一展示当前会议,避免在不同页面切换时混淆数据范围。
4.2 论坛详情与原始报告资料
图2:CNCC 论坛详情


详情页呈现论坛介绍、人员、关联报告及来源资料。缺失的主题、报告时间和译文保留缺失状态,不通过猜测补齐。个人日程以论坛整体时段为依据,避免不完整的报告时间影响冲突计算。
4.3 推荐、报名与个人日程
图4:自然语言推荐输入、关键词降级提示与论坛推荐结果

图4中,用户输入对大语言模型与智能体的兴趣,系统返回真实论坛及原文依据。本次运行未配置 DeepSeek 密钥,页面明确标注“关键词降级结果”,展示的是推荐流程和备用算法运行效果。
图5:模拟报名后的个人报名列表

图5展示课程模拟报名产生的实际系统记录,用户可以查看已报名论坛并取消报名。这些操作仅保存到智会通,不提交给 CNCC 官方。
图6:报名生成个人日程,并检测到240分钟时间重叠

图6中,“基础模型时代下的自监督学习:核心方法、理论界限与前沿方向”与“机理合规审计与内生安全加固”均为 2026 年 10 月 21 日 13:30—17:30,系统据此提示重叠 240 分钟。页面同时提供优先级、移出日程、生成日程建议与导出日历入口。截图使用真实论坛资料,演示报名在补拍后已取消。
推荐结果可进入论坛详情,并使用与其他页面一致的报名操作。报名状态保存到数据库,个人日程根据有效报名和最新议程生成。时间重叠属于提醒信息,用户仍可结合自己的需求选择论坛。
4.4 管理端与导出
图7:当前会议管理概览及分论坛报名统计

图7展示按用户去重的大会参会人数、论坛报名总人次与已发布论坛数,并列出分论坛报名统计;同一用户报名多个论坛时,人数与人次分别计算。
图8:按演示参会者筛选的管理列表

图8展示姓名或邮箱搜索、机构筛选及论坛筛选入口。本图按“示例参会者”筛选,仅展示演示账号及其两条模拟报名对应的论坛信息。
图9:筛选结果导出完成,提供CSV下载入口

图9展示异步导出完成后的“下载 CSV”按钮及“文件 15 分钟内可下载”提示。导出沿用当前筛选条件,仅包含演示参会者,体现了人员查询、筛选和导出的连续操作流程。
组织者可在权限范围内维护会议与论坛、发布通知、查看统计和导出名单。不同角色的操作范围由后端独立校验,页面入口随当前身份和会议范围调整。
5. 遇到的困难及解决方法
成员 102400129:公共前端与模块集成
困难: 各模块独立开发后,身份状态、会议选择和错误提示存在差异;合并多语言资源时也出现冲突。页面即使能够展示,也可能仍依赖旧模板或没有同步报名状态。
解决方法: 统一请求客户端、CSRF Store、当前会议和身份状态;区分“密码错误”和“会话失效”;按账号及会议统一加载报名集合,身份切换时清理旧状态。合并后逐页验证真实接口,修复会议选择器显示 UUID、推荐页未接入等问题。
收获: 公共层需要稳定的契约和明确的负责人。集成验收应覆盖用户操作链,不能仅检查每个页面能否打开。
成员 102400127:会话、权限与并发更新
困难: AI 初版方案过度依赖容器会话,难以统一处理撤销与到期;角色集合更新还曾把正常保存误判为版本冲突。
解决方法: 使用数据库保存会话权威状态,登录注册时撤销旧会话并创建新会话;写请求统一校验 CSRF。角色集合先按预期版本进行条件更新,再处理首次插入,并通过测试检查会议范围隔离和最后管理员保护。
收获: 权限与会话需要由服务端保证,事务代码是否正确必须通过状态变化和失败场景验证。
成员 102400130:数据导入与议程变更一致性
困难: 导入数据存在主题缺失、人员角色不同、报告时间不完整等情况;论坛时间或状态变化又会影响报名、日程和通知。
解决方法: 保留原始字段与来源说明,使用稳定外部编号关联论坛;不将主持、嘉宾混作主席,不推测缺失主题。导入使用事务与版本标记,避免重复导入;议程修改保存前后值,并向相关模块传递变更事件。
收获: 数据导入需要保留原意和可追溯性。展示完整不能以改写事实为代价。
成员 102400132:注册报名事务与重复提交
困难: 注册与初始报名分离时可能出现“账号创建成功,但报名失败”;重复点击或并发请求也可能造成重复记录和人数偏差。
解决方法: 将注册和初始报名放入同一事务,报名失败时回滚账号创建;报名使用用户与论坛唯一约束、幂等处理及统一锁顺序。各页面复用报名适配器,并同步个人日程和统计口径。
收获: 一次业务操作跨越多个模块时,应先定义成功与失败的整体边界,再拆分实现。
成员 102400110:推荐可信度与模型异常
困难: 模型可能返回不存在的论坛、重复条目或没有原文支持的理由;超时、服务异常或未配置密钥时,推荐流程仍需要可理解的反馈。
解决方法: 从当前会议真实论坛中构建候选,要求模型输出结构化结果;后端检查候选 ID、重复、内容关联和原文依据,并在返回前复核论坛状态与版本。模型不可用时明确显示关键词降级结果。
收获: 大模型负责理解和排序,真实业务数据、权限和状态由程序校验,不能直接信任模型输出。
成员 102400111:冲突边界与最新日程
困难: 首尾衔接的论坛容易被错误判为冲突;议程更新后,如果日程继续使用复制的旧时间,提醒也会失真。
解决方法: 采用左闭右开时间区间判定重叠,将真实时间冲突与转场缓冲不足分开提示;根据有效报名和最新论坛数据重算日程。日程建议应用前检查版本与有效期,移出日程不等于取消报名。
收获: 算法必须与业务含义一致,尤其要区分报名状态、日程展示偏好和建议结果。
成员 102400112:通知重复、遗漏与跨模块事件
困难: 报名成功后同步等待通知会增加耦合;服务重启、重复事件和离线用户可能导致消息重复或遗漏。联调中还出现了身份属性、幂等表及 Outbox 字段不一致的问题。
解决方法: 统一身份与 CSRF 属性,通过公共 Outbox 服务写入事件;业务数据与事件在事务内保存,后台投递并支持重试、去重与持久查询。通知发布时确定受众,用户离线后可重新拉取。
收获: 即时提示需要持久化记录支撑,长连接不能成为唯一的消息来源。
成员 102400116:统计口径、导出与部署差异
困难: 大会参会人数与论坛报名人次容易混淆;导出涉及权限、数据快照与文件生命周期。本地 H2 可以运行,也不能说明 PostgreSQL 和服务器配置同样正确。
解决方法: 区分去重用户数与报名人次,统一筛选和导出口径;导出采用异步任务,检查创建人、当前权限及有效期,并防护 CSV 公式。部署按依赖顺序执行迁移,验证重复执行、错误回滚和文件校验,独立验证 PostgreSQL 业务链路。
收获: 交付需要覆盖数据、权限和运行环境,部署说明还需要目标服务器实际运行的证据。
6. 成员贡献比例评价
贡献评价综合考虑实际编码、模块复杂度、联调修复、测试验证和交付材料,不直接按 commit 次数分配。
以下为供团队讨论的建议比例,尚待全员核实确认。确认并按真实工作调整后,将本段替换为评价日期与确认说明。
| 成员 | 建议贡献比例 | 评价依据 |
|---|---|---|
| 102400129 | 16% | 公共前端、统一 UI、个人偏好及集成修复,跨模块协作范围较广 |
| 102400127 | 13% | 账号、会话、权限、审计和幂等,为多模块提供基础能力 |
| 102400130 | 14% | 会议、论坛、导入及议程维护,承担核心业务数据管理 |
| 102400132 | 13% | 报名事务、共享状态及统一报名适配,连接多个用户流程 |
| 102400116 | 12% | 统计、参会者、安全导出及部署配置,承担交付工作 |
| 102400111 | 10% | 日程、冲突、建议与日历导出,形成参会安排功能 |
| 102400112 | 12% | 通知、变更与可靠投递,支撑消息流转 |
| 102400110 | 10% | 推荐、反馈及候选校验相关实现 |
| 合计 | 100% | 各成员比例互不相同 |
7. PSP 个人软件过程表
单位:分钟。以下工时按成员任务范围、开发难度及现有问题记录进行模拟回顾估算,用于展示 PSP 的阶段划分与偏差分析,并非原始计时记录。“预计耗时”为计划情景值,“实际耗时”为完成相应工作所需时间的估算值;合计按各阶段求和。
7.1 102400129【杨裕】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解公共前端、UI 与偏好任务 | 20 | 20 |
| 需求分析 | 梳理角色入口、公共状态与页面交互 | 40 | 50 |
| 设计 | 布局、组件、请求客户端及偏好模型 | 80 | 90 |
| 编码 | 公共组件、页面、偏好接口与集成修复 | 240 | 300 |
| 测试 | 组件、偏好接口、响应式与浏览器检查 | 100 | 140 |
| 报告 | 整理截图、验证和交付材料 | 30 | 40 |
| 总结 | 分析合并冲突与公共契约问题 | 20 | 30 |
| 合计 | 530 | 670 |
差异分析:预计 530 分钟,完成耗时估算 670 分钟,增加 140 分钟,偏差为 26.4%。公共请求、身份和报名状态涉及多模块联动,集成修复与多语言合并是主要追加投入。后续应在开发早期冻结公共契约,并预留专门的全流程联调时间。
7.2 102400127【王子涵】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解认证、授权、审计与幂等任务 | 20 | 20 |
| 需求分析 | 明确会话生命周期与权限范围 | 50 | 60 |
| 设计 | 会话表、角色版本、审计与幂等结构 | 70 | 80 |
| 编码 | 后端基础能力及登录、角色、审计页面 | 200 | 240 |
| 测试 | 过期、CSRF、越权、并发与回滚测试 | 100 | 130 |
| 报告 | 整理 AI Coding 和验证记录 | 30 | 40 |
| 总结 | 分析 AI 方案修改与边界问题 | 20 | 30 |
| 合计 | 490 | 600 |
差异分析:预计 490 分钟,完成耗时估算 600 分钟,增加 110 分钟,偏差为 22.4%。会话轮换、角色乐观锁和幂等事务的边界处理增加了编码与验证投入。后续应先列出权限、过期和回滚场景,以失败用例推动关键逻辑实现。
7.3 102400130【杨子旭】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解会议、论坛、导入和议程任务 | 20 | 20 |
| 需求分析 | 研究真实数据、发布状态与变更规则 | 50 | 70 |
| 设计 | 会议论坛模型、来源映射与变更事务 | 70 | 80 |
| 编码 | 查询维护、导入接口与业务页面 | 220 | 260 |
| 测试 | 筛选、重复导入、非法时间与版本检查 | 80 | 120 |
| 报告 | 整理导入说明和功能截图 | 30 | 40 |
| 总结 | 分析数据质量与跨模块联动 | 20 | 30 |
| 合计 | 490 | 620 |
差异分析:预计 490 分钟,完成耗时估算 620 分钟,增加 130 分钟,偏差为 26.5%。真实数据中的缺失字段、人员角色和时间异常提高了需求分析与导入验证成本。后续应先抽样审查数据质量,制定来源映射规则,再开展批量接入。
7.4 102400132【叶宇恒】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解报名、取消、恢复和集合维护任务 | 15 | 15 |
| 需求分析 | 明确注册报名与登录后报名的区别 | 40 | 50 |
| 设计 | 状态机、唯一约束、版本与锁顺序 | 60 | 70 |
| 编码 | 报名接口、事件、适配器及列表页面 | 180 | 220 |
| 测试 | 重复报名、批量回滚与注册事务测试 | 80 | 110 |
| 报告 | 整理报名交付与联调记录 | 25 | 30 |
| 总结 | 分析一致性与模块依赖问题 | 20 | 25 |
| 合计 | 420 | 520 |
差异分析:预计 420 分钟,完成耗时估算 520 分钟,增加 100 分钟,偏差为 23.8%。注册初始报名、重复请求和跨模块状态同步需要额外联调。后续应优先实现报名状态机及事务边界,并提前与日程和统计负责人共同验证。
7.5 102400110【阿卜杜拉】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解推荐、候选检索与反馈任务 | 15 | 15 |
| 需求分析 | 明确自然语言需求与推荐输出边界 | 40 | 50 |
| 设计 | 模型适配、候选白名单与结果校验 | 60 | 80 |
| 编码 | 推荐接口、异常降级与反馈保存 | 160 | 190 |
| 测试 | 虚构 ID、重复、无效输出与超时测试 | 80 | 110 |
| 报告 | 整理推荐流程与模型验证材料 | 25 | 30 |
| 总结 | 分析推荐可信度与服务依赖 | 20 | 25 |
| 合计 | 400 | 500 |
差异分析:预计 400 分钟,完成耗时估算 500 分钟,增加 100 分钟,偏差为 25.0%。真实候选约束、结构化结果校验与降级处理比单纯调用模型接口需要更多设计和测试。后续应提前准备异常响应样本,分别安排协议测试与真实模型验收。
7.6 102400111【蔡伟仡】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解日程、冲突、建议与导出任务 | 15 | 15 |
| 需求分析 | 明确区间边界、缓冲与日程偏好 | 40 | 50 |
| 设计 | 冲突算法、版本快照与建议应用规则 | 60 | 70 |
| 编码 | 日程服务、视图、建议与 ICS 导出 | 180 | 210 |
| 测试 | 首尾衔接、包含、跨日与过期建议测试 | 80 | 110 |
| 报告 | 整理算法说明和日程截图 | 25 | 30 |
| 总结 | 分析算法与实际业务含义的对应关系 | 20 | 25 |
| 合计 | 420 | 510 |
差异分析:预计 420 分钟,完成耗时估算 510 分钟,增加 90 分钟,偏差为 21.4%。首尾衔接、包含、跨日和版本过期等边界场景增加了测试投入。后续应先固定区间定义和状态含义,并使用代表性时间样本验证算法。
7.7 102400112【蔡耀陞】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解通知、变更与可靠投递任务 | 15 | 15 |
| 需求分析 | 明确受众、已读、撤回与离线恢复 | 40 | 50 |
| 设计 | Outbox、收件唯一约束与重试机制 | 60 | 80 |
| 编码 | 发布收件、变更中心、SSE 与业务页面 | 180 | 220 |
| 测试 | 重复事件、离线补拉、权限与异常测试 | 80 | 120 |
| 报告 | 整理投递流程和联调说明 | 25 | 30 |
| 总结 | 分析跨模块事件与消息一致性 | 20 | 25 |
| 合计 | 420 | 540 |
差异分析:预计 420 分钟,完成耗时估算 540 分钟,增加 120 分钟,偏差为 28.6%。受众冻结、消息去重和离线恢复需要覆盖多种状态,事件结构对齐也增加了联调成本。后续应先交付公共事件骨架,再分阶段实现发布、投递与补拉。
7.8 102400116【黄博文】
| PSP 阶段 | 本人工作 | 预计耗时 | 实际耗时 |
|---|---|---|---|
| 计划 | 拆解统计、人员、导出和部署任务 | 20 | 20 |
| 需求分析 | 明确统计口径、导出权限和部署环境 | 40 | 60 |
| 设计 | 统计查询、导出快照与迁移编排 | 60 | 80 |
| 编码 | 统计导出接口、管理页面和部署配置 | 180 | 220 |
| 测试 | 筛选导出一致性、越权与迁移验证 | 80 | 130 |
| 报告 | 整理部署说明与验证材料 | 30 | 40 |
| 总结 | 分析环境差异和交付流程 | 20 | 30 |
| 合计 | 430 | 580 |
差异分析:预计 430 分钟,完成耗时估算 580 分钟,增加 150 分钟,偏差为 34.9%。统计口径、安全导出与数据库环境差异增加了分析、验证和交付说明投入。后续应尽早准备独立 PostgreSQL 环境,并将配置检查与公网验收分别安排。
第二部分:对选题展示的重新思考
1. 我们希望重新回答的问题:“校园突袭”的选题意义
我们希望重新回答的问题:“校园突袭”的选题意义是什么?
我们的重新回答:
“校园突袭”(CampusStrike)是一款校园主题的多人射击游戏,提供团队乱斗、爆破模式、单机 AI 对战,以及局域网/Radmin 和可选服务器中转联机。重新思考这个问题后,我们认为它的选题意义主要体现在以下四个方面。
第一,将校园主题转化为可参与的游戏体验。 项目以校园中庭、校园遗迹等地图承载对局,利用建筑、走廊、楼梯和多层通路组织路线与交战空间。校园元素既形成视觉特色,也参与掩体、视线和路线选择的设计。对玩家而言,其价值是提供具有校园氛围、可以与同伴共同体验的娱乐作品。
第二,通过目标与分工形成团队配合。 爆破模式包含进攻、防守、安装、拆除和攻守轮换,玩家需要结合路线、剩余时间、队友状态及投掷物进行判断。我们希望让侦察、掩护、侧翼和回防等配合具有实际作用,并通过联机体验检验规则是否清晰、双方是否平衡、反馈是否及时。
第三,探索具有公平约束的游戏 AI。 项目提供简单、困难、极限三档 AI,并围绕视听感知、有限记忆、反应时间、瞄准误差和真实弹药设计行为,让单人也能体验对局。可选模型战术顾问用于低频战术建议,实时移动、射击及目标操作仍由本地逻辑执行,接口异常时回退本地 AI。这使我们能够具体研究 AI 的挑战性、可解释性与运行稳定性,而模型带来的实际提升仍需通过对照测试判断。
第四,以完整游戏锻炼软件工程能力。 游戏开发需要把界面、角色操作、武器、地图碰撞、寻路、AI、网络同步和回合状态连接起来。项目采用房主权威计算、客户端同步表现的方式,中转服务器负责转发数据,要求团队同时处理状态一致性、延迟和性能问题。围绕这些模块开展分工、版本管理、回归测试与发布验证,能够让我们在可运行的作品中检验工程方法的效果。
因此,我们对这个选题的定位是:面向同伴娱乐与团队对抗体验,以校园主题形成特色,并以完整开发过程训练团队协作和工程交付能力。评价它的价值,需要结合实际可玩性、AI 行为、联机稳定性和用户反馈,而不能仅凭功能数量判断。
2. 新的思考与具体行动
思考一:项目需要以完整操作流程验收
此前容易按模块判断进度,例如“报名接口已经完成”“日程页面已经完成”。真正使用时,还要确认报名之后日程是否更新,取消之后统计是否变化。
具体行动: 按注册、报名、推荐、通知改期、管理导出等流程进行联调;统一账号、当前会议和报名状态;补充真实运行配置下的集成检查,排查模块之间的表结构和身份属性差异。
思考二:真实数据质量决定演示质量
少量自造样本难以暴露缺失字段、并行时段和复杂报告资料等问题。
具体行动: 接入 CNCC2026 的 170 场论坛和 758 条报告,保留原始来源和角色;对接口回读结果与原始 JSON 逐条比对;对缺失主题、时间异常和缺失译文保留说明,不为页面完整而编造内容。
思考三:AI 功能需要可解释、可失败、可验证
推荐页面能显示结果,只能说明流程有输出,还需要确认输出真实、理由相关,并能区分模型成功与备用算法。
具体行动: 实现服务端 DeepSeek 接口适配、结构化输出校验、原文证据检查和异常降级提示;用本地 HTTP 模型接口测试异常响应。真实密钥下的外部模型调用仍需补充验收。
思考四:团队协作需要稳定的共享边界
各模块分别正确,集成时仍可能因为字段、权限、版本和事件结构不同而失败。
具体行动: 统一接口契约、共享 TypeScript 类型和公共组件;明确模块负责人;对注册与报名事务、论坛取消与报名失效、变更与通知等跨模块调用进行集中核对。
思考五:部署是独立的交付环节
本地运行成功不能替代服务器验收。
具体行动: 分离本地与生产配置,准备 PostgreSQL 迁移、Docker Compose、Nginx、健康检查和备份脚本;记录迁移与生产数据库测试结果。2026 年 11 月 5 日已完成服务器版本更新、公网访问检查及 15 项功能检查,原有账号和报名数据保留;真实模型调用效果仍需单独验收。
第三部分:项目实现与验证
1. GUI 界面与基础功能
系统采用统一侧边导航和顶部会议切换入口,面向参会者提供论坛发现、智能推荐、我的报名、我的日程、消息中心、议程变更和个人设置;面向组织者提供会议、论坛、参会者、通知、角色及审计管理入口。
| 基础功能 | 实现说明 |
|---|---|
| 账号与权限 | 登录、注册、退出、会话管理、角色及会议/论坛范围授权 |
| 会议与论坛 | 列表、筛选、详情、管理维护、发布与导入 |
| 报名管理 | 报名、取消、恢复、集合更新及注册初始报名 |
| 个人日程 | 根据有效报名和最新议程生成,支持冲突与转场提示 |
| 通知与变更 | 通知发布、收件、已读、撤回及议程变化查看 |
| 统计与导出 | 参会统计、人员筛选、异步 CSV 导出与受控下载 |
| 个人设置 | 界面语言、默认日程视图、转场缓冲时间持久化 |
CNCC2026 是已结束会议的数据快照。课程演示通过明确标注的“模拟报名”在本系统内体验报名、取消和日程流程,操作真实保存到本系统数据库,不提交至 CNCC 官方,也不代表真实参会资格。服务器配置默认关闭该模式。
2. LLM 功能实现
推荐流程为:自然语言需求 → 真实论坛候选 → 后端调用 DeepSeek → 结构化结果校验 → 展示理由与原文依据 → 查看详情、报名和反馈。
模型仅获得参会需求与候选论坛资料,不接收账号密码或报名名单。密钥保存在服务端环境配置中。后端检查返回的论坛是否属于候选集、是否重复、证据是否可核对,并复核论坛的当前状态与版本。
对未配置密钥、超时、无效 JSON、空响应及服务异常等情况,系统返回明确标注的关键词降级结果。现有记录证明接口接入与协议测试已完成,尚无真实密钥下 DeepSeek 外部调用成功的验收记录。
3. AI Coding:关键 Prompt、输出与迭代
以下案例摘自项目已有的 102400127-AI编码记录.md,聚焦实际采纳、修改和拒绝建议的依据。
案例一:会话机制设计
关键 Prompt:
读 contracts/v1.3 第 3.1 节和任务卡 102400127-01/02。用 Spring Boot 3.4 + JdbcTemplate 实现:数据库会话记录、登录/注册后轮换、退出撤销、闲置 30 分钟与绝对 8 小时、Principal 返回用户 UUID、所有写请求校验 CSRF。不要引入 Spring Security。
AI 输出摘要: 初版将用户、CSRF 和到期时间放入 HttpSession,登录时修改会话 ID。
修改与理由: 保留整体实现思路,但将撤销和到期状态放入数据库 sessions 表;登录、注册时撤销旧会话并创建新记录。原因是需要统一的服务端权威状态,而仅修改会话 ID 不足以覆盖全部撤销和有效期要求。
验证: 检查会话轮换、闲置与绝对过期、退出后访问,以及错误密码不影响已有会话等场景。
案例二:角色集合版本冲突修复
关键 Prompt:
RB03 用 user_role_sets.version 做乐观锁,原子替换某会议的角色集合,保留最后一个管理员,写审计。给 JdbcTemplate 事务实现。
AI 输出摘要: 先删除并插入角色,再通过插入和更新推进版本,混淆了记录已存在与版本值的处理。
发现问题: 正常保存用例出现 409 ROLE_VERSION_CONFLICT。检查发现,已有的版本 0 记录在后续更新中被提前推进,导致错误判断。
修改与理由: 优先按用户、范围及预期版本进行条件更新,仅在未更新时处理首次插入;检查影响行数和唯一键冲突。采纳乐观锁方向,修改具体事务步骤。
验证: 覆盖旧版本冲突、仅替换指定会议角色,以及移除两个管理员中的一个等场景,相关 4 个用例通过。
案例三:拒绝临时伪造会议数据
问题背景: 模块独立验收时,会议列表接口尚未接入,角色页面因缺少当前会议被路由守卫拦截。
AI 建议摘要: 添加两条示例会议,让页面可以先打开。
拒绝与替代方案: 拒绝把虚构会议当作真实接口数据。阶段性使用服务端身份信息中已有的真实会议授权范围作为回退,会议接口接入后使用正式名称,并在记录中说明阶段限制。
验证: 通过真实登录和权限接口检查角色页、审计页;整体联调后进一步改为加载真实会议目录,避免回退值覆盖名称。
4. 对 AI 代码与技术方案的检查验证
我们的判断依据包括接口契约、数据库实际行为、自动化测试和浏览器业务流程。对外观合理但未经验证的代码,尤其关注事务、权限和异常路径。
| 检查对象 | 发现的问题或风险 | 处理与依据 |
|---|---|---|
| 角色版本更新 | 正常请求误报版本冲突 | 根据失败用例修改条件更新与首次插入流程 |
| CSRF 校验 | URI 前缀匹配可能与实际路由解析不一致 | 统一按写请求方法校验,测试带矩阵参数的路径 |
| 幂等事务 | 捕获唯一键错误后继续查询在 PostgreSQL 中存在事务中止问题 | 调整为保存点方案;后续结合生产数据库集成验证 |
| 推荐输出 | 虚构、重复或无依据的论坛结果 | 候选白名单、去重、证据与状态复核 |
| 导出实现 | 只读查询事务中写任务状态 | 将文件生成、状态更新与只读快照查询分开 |
| 跨模块集成 | 字段、身份属性和事件结构不一致 | 统一公共接口并验证完整业务流程 |
现有验证材料记录了以下结果,属于已有阶段记录:
| 验证阶段 | 已记录结果 | 适用范围 |
|---|---|---|
| DeepSeek 接入与模拟报名阶段 | 后端 179 项回归通过,其中新增 14 项 HTTP 与异常处理测试 | 测试不使用用户密钥,不证明真实外部模型调用成功 |
| 前端验证 | 73 项测试通过,生产构建通过 | 对应已有阶段验证记录 |
| 推荐与模拟报名浏览器检查 | 24 项检查通过 | 包含降级提示、详情、模拟报名、日程及取消 |
| CNCC 数据核对 | 170 场论坛、758 条报告经接口逐条比对 | 验证导入完整性与原始内容对应关系 |
| PostgreSQL 部署验证阶段 | 165 项 H2 回归与 1 项生产数据库业务集成测试通过 | 该阶段与后续 179 项回归存在覆盖重叠,不累加 |
| 数据库迁移 | 9 个迁移首次成功、重复跳过、失败回滚、校验漂移拒绝 | 独立 PostgreSQL 测试环境 |
| 配置检查 | Compose 解析与 Nginx 语法检查通过 | 尚不能替代目标服务器实际启动 |
5. 数据库设计
数据库按账号权限、会议资料、报名日程、通知事件、推荐和导出划分,避免把所有业务状态放在同一张表中。
| 数据领域 | 主要表 | 设计说明 |
|---|---|---|
| 账号与权限 | users、sessions、roles、user_roles、user_role_sets | 保存账号、会话、授权范围及角色集合版本 |
| 会议与论坛 | conferences、forums、tags、forum_tags、forum_chairs | 会议关联多个论坛,论坛与标签通过关联表连接 |
| 来源与导入 | dataset_imports、forum_source_details、forum_imports | 保存导入标记、原始资料和导入任务 |
| 报名与状态 | enrollments、enrollment_events、user_conference_states | 用户与论坛关联,记录状态、事件与个人集合版本 |
| 日程 | user_schedule_items、user_schedule_versions、schedule_suggestions | 保存展示偏好、优先级、版本与建议 |
| 通知与变更 | notifications、notification_receipts、forum_changes、change_receipts | 通知与收件状态分离,保留议程变更前后信息 |
| 可靠投递 | outbox_events、event_consumptions | 事件持久化、消费去重与重试 |
| 推荐 | recommendation_requests、recommendation_items、recommendation_feedbacks | 关联推荐请求、结果及用户反馈 |
| 导出与审计 | export_jobs、audit_logs、idempotency_records | 管理导出任务、操作追溯与幂等记录 |
| 个人偏好 | user_preferences | 保存界面语言、默认视图和转场缓冲 |
核心关系为:会议一对多论坛,用户通过报名记录关联论坛,日程读取有效报名与最新论坛,通知通过收件记录关联用户,推荐请求关联推荐条目和反馈。
报名通过用户与论坛唯一约束避免重复;跨表修改依靠事务保证整体成功或回滚;对易发生并发覆盖的数据使用版本字段。统计区分大会去重人数和论坛报名人次,保证显示含义清晰。
6. 用户体验与操作便利性
我们主要围绕减少重复查找和减少状态误解改进操作体验:统一会议选择与导航;在列表、详情和推荐页复用报名操作;提供加载、空数据、错误和未授权提示;在日程中区分重叠与转场不足;保存个人偏好,减少重复设置。
系统还对版本冲突和未保存修改给予提示,避免用户操作被静默覆盖。模拟报名和推荐降级均有可见标识,使用户能够理解本次操作的实际含义。
7. 服务器部署
部署方案为:浏览器 → Nginx → 前端静态资源 / Spring Boot API → PostgreSQL。后端和数据库通过内部网络通信,数据与导出文件使用持久化卷,配置通过环境变量提供。
已准备数据库迁移、管理员初始化、健康检查、资源限制、日志轮转与备份脚本;同时提供课程 HTTP 演示和 HTTPS 部署说明。
| 公网部署验收项 | 记录 |
|---|---|
| 在线访问地址 | http://8.163.22.221/ |
| 实际服务器环境与部署时间 | Ubuntu 24.04.2 LTS;2026 年 11 月 4 日首次部署,11 月 5 日更新并验证 |
| 容器健康状态 | PostgreSQL、Spring Boot、Nginx 均 healthy;迁移任务退出码 0 |
| 更新前验证 | 后端 182 项测试、前端 83 项测试、前端生产构建与接口契约检查通过 |
| 服务器功能检查 | 15 项通过,包含登录、论坛分页、日程、统计、人员查询、通知管理、CSV 导出与下载 |
| 公网检查 | 首页与就绪接口均返回 HTTP 200;浏览器可显示 170 场论坛,无未捕获页面异常 |
| 数据保留 | 更新前后均为 1 个账号、1 场会议、170 场论坛、9 条报名记录;配置校验一致 |
| 真实 LLM 联调 | 已接入 DeepSeek 接口;本次更新未调用外部模型,真实调用效果需单独验证 |


本次更新前已备份数据库、源码、配置和旧镜像。迁移校验曾因 Windows/Linux 换行差异阻止启动,系统自动回滚;确认 SQL 内容一致并保留服务器已执行迁移的原始文件后更新成功,没有修改数据库校验记录或删除数据卷。
第四部分:附加功能与实践总结
1. 附加功能候选一:个人日程优化建议与日历导出
在基本日程展示之外,系统提供按优先级生成的日程建议,并可考虑转场缓冲。用户确认后调整日程展示项,报名记录保持独立;应用前检查建议是否过期及版本是否一致。ICS 导出便于将参会安排加入外部日历。
验收方式:准备存在时间重叠的实际报名,展示冲突、建议、确认前后的日程,再展示导出文件及实际日历导入效果。

2. 附加功能候选二:可追溯的议程变更与可靠消息
除基础通知外,系统保存议程变更前后信息,并通过持久化事件、重试与去重机制支撑消息投递。参会者可以查看变更及影响,离线后重新获取消息,减少错过临时调整的可能。
验收方式:修改论坛时间或地点,展示变更记录、受影响用户的消息与最新日程;检查重复投递不会产生重复收件记录。

3. 实践总结
这次实践使我们认识到,团队项目的难点往往集中在模块之间:报名影响日程与统计,议程变更影响通知与推荐,权限则贯穿所有管理操作。接口契约、事务边界和完整流程验证决定了这些功能能否形成可用的系统。
AI Coding 帮助我们搭建实现并定位问题,最终是否采纳仍取决于契约、数据和测试证据。公网部署与版本更新已有实际运行记录,真实模型调用和团队个人记录仍需继续补齐材料,让博客中的每项结论都能对应可核对的成果。
相关推荐
MobaXterm终端工具个人学习版安装包及常用配置备份
资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。
机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取
机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取
科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
11232131231231是的
11232131231231是的



