软件工程第三次团队作业

航班信息管理系统 - 个人项目冲刺报告

项目仓库地址
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的 useStateuseEffect 可以满足基本需求,但在更复杂的场景下需要更细致的规划。
  • 数据库操作的细化:在实现修改和删除功能时,需要确保数据库操作的原子性和正确性,例如修改时只更新传入的字段,删除时确保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全栈开发有了更深入的实践和理解。从需求分析到最终测试,每一个环节都亲力亲为,对项目的整体把控能力得到了锻炼。”
posted @ 2025-05-22 01:48  terran##  阅读(25)  评论(0)    收藏  举报