软件工程第三次团队作业
航班信息管理系统 - 个人项目冲刺报告
项目仓库地址
https://github.com/OokukiooO/flight_info_management
Alpha 冲刺回顾 (模拟每日冲刺)
个人冲刺 1 (启动与核心功能搭建)
一、Alpha 任务认领 (个人职责)
- 成员: OokukiooO
- 职责: 项目经理、需求分析、UI/UX设计 (Adobe XD概念)、数据库设计与实现、前端开发、后端开发、测试、文档编写。
二、本日任务安排 (自我驱动)
- 任务:
- 初步搭建项目框架 (Next.js)。
- 设计并创建数据库表结构 (UserInfo, FlightInfo, PassengerInfo)。
- 初步实现用户注册和登录的后端API接口。
- 设计登录和注册页面的基本UI。
三、整个项目预期的任务量 (个人预估)
- OokukiooO: 预计总用时约 60-80小时 (包含需求、设计、开发、测试、文档等所有阶段)。
四、敏捷开发前的感想
- OokukiooO:
- “独立完成整个项目是一次全面的挑战,也是一次宝贵的学习机会。希望能通过敏捷迭代的方式,逐步完善系统功能,并在这个过程中提升自己的全栈开发能力和项目把控能力。虽然是一个人的战斗,但也要有清晰的目标和计划,确保项目顺利推进。”
五、个人期望
- 期望能够基本实现航班信息管理的核心功能,系统运行稳定,用户界面友好易用。更重要的是,通过这个项目实践,能深入理解从需求到上线的整个软件开发流程,巩固和拓展技术栈。
个人冲刺 2 (核心CRUD与界面)
1. 昨日已完成的工作
- 完成了数据库表结构的创建和初始化。
- 基本实现了用户注册和登录的后端API逻辑。
- 完成了登录和注册页面的初步前端实现和交互。
2. 今天计划完成的工作
- 继续完善登录界面的开发设计,增加表单校验。
- 实现航班信息的添加、查询API及对应的前端页面。
- 开始设计和实现航班管理页面,展示航班列表。
- 前端:新增使用邮箱登陆注册的展示
- 后端:新增使用邮箱登陆注册的逻辑
- 数据库:新增用户邮箱字段、新增用户身份证号字段、新增用户性别字段
![]()
![]()
3. 工作中遇到的困难
- 用户需求模拟的全面性:作为独立开发者,需要自己设想不同用户的需求和使用场景,这可能不如真实用户调研全面。例如,管理员对航班信息的管理权限细分,旅客查询航班的习惯等。
- UI设计与前端实现的平衡:虽然使用了Ant Design,但在自定义样式和布局时,需要在美观度和实现复杂度之间找到平衡。
- 数据校验的细致程度:后端API的参数校验和前端表单的输入校验需要仔细考虑各种边界情况,确保数据的合法性和系统的健壮性。
二、项目燃尽图
初期任务(数据库搭建、用户认证基础)已完成,航班信息管理的核心CRUD功能正在开发中,进度符合预期。
三、代码签入
(由于项目在本地开发,此处指本地Git提交记录)
每日开发结束后,会将当日实现的功能和修改提交到本地Git仓库,并附带清晰的提交信息,例如:
feat: Implement flight add and search API endpoints
fix: Resolve user login redirection issue
chore: Update database schema for FlightInfo
四、项目程序
- 1. 模块代码 (示例片段 - 航班添加API)
// 从 src/app/api/flight/add/route.ts 提取 import { NextRequest, NextResponse } from 'next/server'; import db from '@/db/init'; // export async function POST(req: NextRequest) { const { flightNumber, departure, arrival, date } = await req.json(); // if (!flightNumber || !departure || !arrival || !date) { // return NextResponse.json({ error: '信息不完整' }, { status: 400 }); // } db.prepare( // `INSERT INTO FlightInfo (flightNumber, departure, arrival, date) VALUES (?, ?, ?, ?)` ).run(flightNumber, departure, arrival, date); // return NextResponse.json({ message: '添加成功' }); // } - 2. 运行结果 (示例截图描述)
- 登录页面截图:展示用户名、密码输入框和登录、注册按钮。
- 航班管理页面截图:表格展示航班号、出发地、目的地、起飞时间、到达时间以及操作按钮(修改/删除)。
五、每日每人总结
- OokukiooO:
- “今天主要完成了航班信息添加和查询功能的后端API及对应的前端表单与展示。在处理表单提交和数据显示时,Ant Design的组件确实提高了效率。遇到了一些关于日期时间格式处理的小问题,通过查阅文档解决了。下一步是完善航班的修改和删除功能。”
个人冲刺 3 (功能完善与数据展示)
1. 昨日已完成的工作
- 完成了航班信息的添加和查询功能 (前后端)。
- 实现了航班管理页面,能够展示航班列表。
2. 今天计划完成的工作
- 完善航班信息的修改和删除功能,包括前端交互和后端API。
- 实现订单信息列表的展示页面。
- 实现数据看板页面,展示用户、航班、订单的总数统计。
3. 工作中遇到的困难
- 前端状态管理:随着页面和交互的增加,如何有效地管理前端状态(如表格数据、加载状态、表单数据)变得更加重要。虽然Next.js的
useState和useEffect可以满足基本需求,但在更复杂的场景下需要更细致的规划。 - 数据库操作的细化:在实现修改和删除功能时,需要确保数据库操作的原子性和正确性,例如修改时只更新传入的字段,删除时确保ID的准确性。
- 数据可视化:数据看板上的统计数据目前是简单的数字展示,如何设计出更易于理解和使用的数据可视化(如图表)是未来可以考虑的优化点,但当前阶段以实现核心功能为主。
二、项目燃尽图
见下文
三、代码签入
(本地Git提交记录示例)
feat: Implement flight update and delete functionalities
feat: Add order list page and API
feat: Implement dashboard statistics display
refactor: Optimize state management in FlightManage page
四、项目程序
- 1. 模块代码 (示例片段 - 数据看板统计API)
// 从 src/app/api/dashboard/stats/route.ts 提取 import { NextResponse } from 'next/server'; import db from '@/db/init'; // export async function GET() { const userCount = (db.prepare('SELECT COUNT(*) as count FROM UserInfo').get() as { count: number }).count; // const flightCount = ( db.prepare('SELECT COUNT(*) as count FROM FlightInfo').get() as { count: number }).count; // const orderCount = ( db.prepare('SELECT COUNT(*) as count FROM PassengerInfo').get() as { count: number }).count; // return NextResponse.json({ userCount, flightCount, orderCount }); // } - 2. 运行结果 (示例截图描述)
- 航班修改页面截图:表单预填充了选中航班的信息,可以进行编辑。
- 数据看板页面截图:展示用户总数、航班总数、订单总数的卡片。
五、每日每人总结
- OokukiooO:
- “今天完成了航班管理的闭环操作和数据看板的初步实现。在处理航班修改时,确保了数据的正确回填和更新逻辑。订单列表展示也已完成。现在系统的核心功能模块基本都已搭建完毕,接下来的重点是进行全面的测试和细节优化。”
个人冲刺 4 (测试、优化与总结)
一、会议 (自我回顾与计划)
1. 昨日已完成的工作
- 完成了航班信息管理(增删改查)的全部核心功能。
- 实现了订单信息列表展示和数据看板的统计功能。
- 对部分前端页面的交互进行了初步优化。
2. 今天计划完成的工作
- 对所有已实现功能进行全面的手动测试。
- 修复测试过程中发现的BUG。
- 对代码进行整理和优化,添加必要的注释。
- 开始编写项目总结报告。
3. 工作中遇到的困难
- 测试的全面性:作为独立开发者,自己测试自己开发的功能容易有盲点。需要尽可能模拟不同用户场景和异常输入来发现潜在问题。例如,并发操作(虽然SQLite在Next.js API Routes中通常是单连接池或按需连接,但仍需注意数据一致性)、特殊字符输入、边界条件等。
- 时间管理:在冲刺的最后阶段,需要在修复BUG、完善细节和撰写报告之间合理分配时间。
二、项目燃尽图

三、代码签入
(本地Git提交记录示例)
test: Perform full functional testing for all modules
fix: Correct data display issue in order management page
refactor: Add comments and improve code readability
docs: Draft project summary report
四、项目程序
- 1. 模块代码 (示例片段 - 航班删除前端逻辑)
// 从 src/app/flightManage/page.tsx 提取思路 // ... const handleDelete = async (id: number) => { // // Popconfirm 组件会进行二次确认 await fetch('/api/flight/delete', { method: 'POST', body: JSON.stringify({ id }) }); // message.success('删除成功'); // fetchData(); // 重新获取数据刷新列表 }; // ... // <Popconfirm title="确定删除?" onConfirm={() => handleDelete(record.id)}> // <Button icon={<DeleteOutlined />} danger /> // </Popconfirm> - 2. 运行结果 (示例截图描述)
- 系统所有页面截图,展示最终完成的UI和功能。
- (若有)数据库工具中展示的UserInfo, FlightInfo, PassengerInfo表示例数据。
五、每日每人总结
- OokukiooO:
- “今天是Alpha冲刺的最后一天,对项目进行了全面的功能测试,修复了几个前端显示和后端逻辑的小BUG。代码也进行了相应的整理和注释。系统核心功能基本完成并达到预期。这次独立开发经历虽然挑战很大,但收获也非常丰富,对Next.js全栈开发有了更深入的实践和理解。从需求分析到最终测试,每一个环节都亲力亲为,对项目的整体把控能力得到了锻炼。”



浙公网安备 33010602011771号