Phase 4 - 测试、部署与成果输出 #

提升系统稳定性并完成部署上线,同时整理成果用于展示与答辩。

⁋ 4.1 - 全面系统测试 #

对系统进行系统级测试验证,覆盖功能正确性、并发稳定性与基础兼容性,确保系统在真实使用环境下可靠运行。

全链路核心流程回归测试 #

需要基于 Phase 1~3 的完整流程重新执行测试,包括:登录 → 课程 → 实验 → 提交 → AI 分析 → 云执行 → 成绩 → 学情分析。核心工程问题是:验证所有模块集成后仍然正常工作,避免后期新增功能破坏原有流程。

模块级功能完整性测试 #

需要逐模块验证所有功能,包括用户与权限、课程与资源、实验与提交、AI 纠错、云实验执行、学情分析。核心工程问题是:确保每个模块在 “集成状态下” 仍然可用,而不是单独开发时正常。

权限与安全性重点测试 #

需要重点验证不同角色(学生 / 教师)的权限边界,例如、学生是否能访问他人数据、是否可以越权评分、是否可以调用 AI / 执行接口。核心工程问题是:防止越权访问与数据泄露,这是系统稳定性的重要部分。

轻量级并发与基础压力测试 #

需要模拟多用户同时操作,例如多人同时提交实验、多人同时触发 AI 分析、多人同时访问课程。核心工程问题是:发现系统在 “多人使用” 下的瓶颈。MVP 阶段不需要专业压测工具,可以通过简单脚本或多浏览器测试。

AI 与云执行稳定性测试 #

需要重点测试 AI 接口是否稳定返回、云执行是否偶发失败、超时或异常是否有处理。核心工程问题是:外部能力(AI / 执行)是否影响整体系统稳定性,必须有容错。

异常与错误恢复测试 #

需要刻意制造异常,例如数据库断开、AI 接口失败、执行服务报错。核心工程问题是:系统是否能优雅失败,而不是崩溃,例如返回合理提示而不是报错页面。

前端兼容性与稳定性测试 #

需要在不同浏览器(Chrome / Edge 等)测试主要流程,并检查页面是否异常(样式错乱、功能失效)。核心工程问题是:确保展示环境稳定,尤其是答辩现场环境。

性能瓶颈初步定位 #

需要观察系统响应时间,例如页面加载时间、提交处理时间、AI 响应时间。核心工程问题是:发现明显卡顿点,为 4.2 优化提供依据。

测试结果记录与问题闭环 #

需要记录测试过程中发现的问题,并跟踪修复状态。核心工程问题是:确保问题被真正解决,而不是临时忽略。建议继续使用 GitHub Issues 管理。

⁋ 4.2 - 性能优化与系统调优 #

对系统关键路径进行性能优化与资源调优,提升响应速度与系统稳定性,消除明显性能瓶颈。

核心接口性能分析与定位 #

需要识别系统中最关键、最频繁调用的接口,例如:登录、课程列表、实验提交、AI 分析接口等,并测试其响应时间。核心工程问题是:找出真正影响体验的性能瓶颈,而不是盲目优化。可以通过日志或简单计时统计接口耗时。

数据库查询优化 #

需要检查关键查询(如课程列表、提交记录、成绩查询)是否存在性能问题,并进行优化,例如添加必要索引(user_id / course_id 等)、避免重复查询、精简查询字段。核心工程问题是:数据库是最容易成为瓶颈的地方,优化成本低但收益高。

AI 调用与云执行异步化处理 #

需要将 AI 分析与云执行从同步请求改为异步处理(如提交后返回 “处理中” 状态)。核心工程问题是:避免用户请求被长时间阻塞。可以通过简单队列或后台任务实现(即使是轻量实现也有明显提升)。

接口响应结构与数据量优化 #

需要减少接口返回的数据量,例如避免返回不必要字段、分页加载列表数据等。核心工程问题是:降低网络传输与前端渲染压力,特别是在提交记录或课程列表较多时。

前端渲染与状态优化 #

需要优化前端页面渲染,例如避免重复请求、合理使用 loading 状态、减少不必要的组件重渲染。核心工程问题是:提升用户 “感知性能”,即使后端不变,体验也会更流畅。

静态资源与前端构建优化 #

需要对前端资源进行基本优化,例如构建压缩(production build)、图片 / 资源压缩、合理拆分代码(如按页面加载)。核心工程问题是:减少首屏加载时间,让系统 “打开更快”。

简单缓存机制引入 #

可以对一些不频繁变化的数据做简单缓存,例如课程列表或资源列表。核心工程问题是:减少重复请求数据库。MVP 阶段可以使用内存缓存(如简单 Map)即可。

服务资源配置与运行调优 #

需要检查服务器资源使用情况(CPU / 内存),并调整服务配置(如线程数、连接数)。核心工程问题是:避免资源配置不合理导致性能问题。即使是简单调整,也能提升稳定性。

性能优化验证与对比测试 #

需要在优化前后进行简单对比,例如接口响应时间、页面加载速度等。核心工程问题是:验证优化是否真正有效,避免 “感觉优化了但没有变化”。

⁋ 4.3 - 部署与上线环境搭建 #

构建系统的生产运行环境,实现前后端与数据库服务的统一部署与对外访问能力,确保系统可稳定运行与展示。

单机多服务部署架构设计 #

需要设计系统部署架构,推荐采用单台服务器部署多个服务(web / core / database / fpga-service)。核心工程问题是:在保证系统完整运行的前提下控制复杂度。MVP 阶段不引入分布式或多节点部署。

Docker 化部署配置整理 #

需要完善各个服务的 Dockerfile,并确保 webcore、数据库、执行服务等均可容器化运行。核心工程问题是:统一运行环境,避免环境差异问题(本地 vs 服务器)。

Docker Compose 编排实现 #

需要编写 docker-compose.yml,统一管理所有服务的启动与网络配置。核心工程问题是:实现 “一键启动整套系统”,降低部署复杂度。需要定义服务依赖关系(如 core 依赖数据库)。

环境变量与配置管理 #

需要将数据库连接、端口、AI 接口 Key 等配置提取为环境变量(.env 文件)。核心工程问题是:避免配置写死在代码中,提升安全性与灵活性。

服务器环境准备 #

需要在服务器上安装并配置 Docker / Docker Compose、基础系统依赖。核心工程问题是:保证服务器具备运行容器的能力。建议使用一台基础云服务器(2 核 4G 即可)。

数据持久化与存储配置 #

需要为数据库与文件存储配置 volume,确保容器重启后数据不丢失。核心工程问题是:防止数据丢失(尤其是演示前)

nginx 反向代理与统一入口 #

需要配置 nginx 作为统一入口,将请求转发到前端与后端服务。核心工程问题是:统一访问地址与端口,提升专业度。例如 /api → core、/ → web。

域名与访问配置 #

可以绑定域名并配置解析(如使用云服务商域名)。核心工程问题是:提升访问体验与项目专业性。如果时间有限,直接使用 IP 访问也可以。

部署验证与外网测试 #

需要在部署完成后,从外部网络访问系统,验证完整流程(登录 → 实验 → AI → 云执行)。核心工程问题是:确认系统在真实环境下可用,而不是仅在本地。

简单运维与重启策略 #

需要掌握基本运维操作,例如查看日志(docker logs)、重启服务(docker-compose restart)。核心工程问题是:出现问题时能快速恢复系统,避免展示时无法处理。

⁋ 4.4 - 文档完善与用户手册编写 #

完善项目文档体系与用户使用说明,使系统具备可理解、可复现、可使用的完整交付能力。

项目总览文档(README 主入口) #

需要在主仓库编写高质量 README,包含项目简介、核心功能、技术栈与快速启动说明。核心工程问题是:让陌生人 1 分钟内理解项目做什么。需要避免大段技术细节,而是突出系统价值与整体结构。

系统架构文档整理 #

需要整理系统整体架构说明,包括 web / core / ai-service / fpga-service / infra 关系、数据流与请求流。核心工程问题是:展示你的系统设计能力,而不是仅仅代码实现。建议配合架构图(draw.io 或类似工具)。

API 文档与接口说明完善 #

需要完善基于 OpenAPI 规范的 API 文档,并使用 Swagger UI 提供在线查看与调试能力,明确接口路径、参数、返回值。核心工程问题是:让系统具备 “可协作开发能力”,即他人可以基于文档调用接口。

数据库设计文档整理 #

需要将数据库表结构整理成文档,包括字段说明、表关系等。核心工程问题是:展示数据建模能力,并方便后续维护

部署与运行指南编写 #

需要编写完整部署指南,包括环境要求、启动步骤(docker-compose)、配置说明(.env)。核心工程问题是:让他人可以在新环境中成功运行项目,而不是依赖你本地环境。

面向非技术用户的使用手册编写 #

需要编写用户手册,说明如何使用系统,例如如何注册登录、如何创建课程、如何提交实验、如何查看 AI 分析。核心工程问题是:让非开发者也能使用系统,这一点在答辩中非常加分。

常见问题与错误说明 #

需要整理常见问题,例如登录失败、提交失败、AI 分析未返回。核心工程问题是:降低使用门槛,提高系统可用性

演示流程文档 #

需要编写一份标准演示流程,例如:登录 → 创建课程 → 学生加入 → 提交 → AI 分析 → 云实验 → 学情分析。核心工程问题是:保证展示过程流畅可控,避免现场临时操作导致混乱。

⁋ 4.5 - 项目成果整理与论文输出 #

对项目成果进行系统性整理与表达,形成完整的展示材料与论文内容,支撑课程答辩与技术评估。

项目整体成果结构梳理 #

需要对项目进行整体结构梳理,包括:系统目标、功能模块、技术方案、实现结果。核心工程问题是:避免成果表达混乱,确保内容有逻辑主线(从问题 → 方案 → 实现 → 效果)。

项目核心亮点提炼 #

需要总结项目的核心技术亮点,例如 AI 代码纠错系统、学情分析与个性化建议、FPGA 云实验执行架构。核心工程问题是:让项目 “有记忆点”,而不是普通教学系统。这一部分建议控制在 3~5 个点,每个点都能讲清楚 “为什么做 + 怎么做”。

技术实现细节整理 #

需要整理关键技术实现,例如 AI 调用流程(3.1~3.2)、数据分析逻辑(3.3)、云执行架构(3.4)。核心工程问题是:在需要深入时有内容可讲,而不是只停留在表面功能描述。

系统演示材料准备 #

需要准备系统截图或录屏,覆盖关键流程,例如提交实验、AI 纠错反馈、云实验结果、学情分析页面。核心工程问题是:确保展示 “可控”,即使现场网络或系统异常,也可以通过材料说明。

答辩讲解逻辑设计 #

需要设计一套讲解顺序,例如:背景与问题(为什么做)、系统整体方案(怎么做)、核心功能演示(做了什么)、技术亮点(难点在哪里)、总结与展望。核心工程问题是:让表达有节奏、有逻辑,而不是功能罗列

项目论文结构整理 #

需要根据课程要求整理论文结构,例如:引言(背景与意义)、系统设计(架构)、功能实现(模块)、实验与结果(测试)、总结与展望。核心工程问题是:将工程内容转化为学术表达,避免论文变成 “开发日志”。

技术选型与决策说明 #

需要解释关键技术选择,例如为什么使用某 AI 方案、为什么采用 Docker 部署、为什么设计云执行架构。核心工程问题是:体现 “你是做决策的人”,而不是 “写代码的人”

项目总结与未来扩展 #

需要说明未来可以扩展的方向,例如接入真实 FPGA 硬件、优化 AI 分析模型、增强数据分析能力。核心工程问题是:体现项目的 “成长空间”,这是答辩中很加分的一点。