iman——beta冲刺

作业所属课程 软件工程实践 - 秋季班
作业要求 第四次团队作业 - beta冲刺
作业目标 对beta冲刺进行总结,介绍特色功能 📊💡
团队名称 iman 🌟
团队成员 - 102202146 - 蓝敏龙
- 102201225 - 陈碧煌
- 102202105 - 王梓铭
- 102202124 - 阿依娜孜
- 102202135 - 施宇翔
- 102202134 - 承宇豪
- 102202117 - 杨邑豪
- 102202122 - 张诚坤
- 102201506 - 刘宇杰
- 102201137 - 郭剑敏

📊 一、项目问题分析与解决方案

🛠️ 问题一:前后端交互中行程单展现存在问题

思路:前端通过GET请求向后端获取行程单数据,包括行程ID、名称、标签、描述、图片、经纬度等内容。

实现过程:在创建行程时,行程ID、名称、标签和描述会自动生成,但图片不会。因此,在发起GET请求时,后端需检查数据库中的图片字段是否为空。如果为空,需根据行程ID关联获取城市信息,并将城市和景点名称作为参数发送至高德地图关键词搜索API,以获取图片和经纬度。最后,将这些字段封装为JSON并返回给前端,完成前后端交互。

🎨 问题二:根据风格AI创建行程的界面不够完善

思路:通过重新审视需求分析并对比市面上的应用,决定在风格选择基础上添加热门景点选择功能,以更好满足用户需求。

实现过程:后端根据行程所在城市,构建Promt:“我想去{city}旅游,请你推荐该城市的热门景点。”通过Kimi API获取推荐结果,并解析出旅游地址、标签和描述。为了获取图片,将城市和旅游地址传入高德关键词搜索API。然而,由于高并发请求限制,前端将GET请求分批处理,确保接口调用顺利。

🔄 问题三:同一行程单上行程、账单、清单及不同天数的跳转问题

思路:初始模板页面未定义具体的trip_id,导致功能模块跳转至默认页面。通过与后端协作,利用数据库自动生成的trip_id作为行程单的唯一标识。

实现过程:在行程、账单和清单模块中,基于行程单页面传递的trip_id调用数据库中的对应数据,确保各功能模块正确显示同一行程单的数据。

🗺️ 问题四:地图API接口显示问题

思路:最初使用模板页面定义固定地点坐标,导致不同行程无法正确显示。决定动态定义地图中心点为行程城市。

实现过程:每次创建行程后,将地图中心点设置为行程城市的坐标。同时,发现原地图API仅支持浏览器运行,无法在APK中正确显示。通过查阅资料,改用URL形式的API,解决了在手机端地图显示的问题。

✨ 二、项目特色功能展示

🔑 1. 登录注册

手机验证码登录:用户可通过输入手机号并接收验证码完成登录,保障账户安全。该功能利用阿里云API实现,支持在手机上获取验证码。

🔗 2. 链接创建

通过种草文章或攻略的链接创建行程,系统利用爬虫API识别链接并通过Kimi API分析地点,自动生成行程。

  1. 根据推荐行程创建:用户可直接使用系统推荐的行程,省时省力。
  2. 添加地点到已有行程:用户可选择喜欢的地点,添加到已有行程中,丰富行程内容。

🤖 3. AI个性化创建

在用户自行创建行程的基础上,利用AI智能推荐提供个性化行程建议。

  1. 关键词引导:系统根据目的地和用户偏好推荐相应行程,用户只需选择喜欢的活动。
  2. 智能调整:根据用户实时反馈,智能调整推荐,确保行程安排符合用户期望。

🗒️ 4. 行程总览

行程总览为用户提供整体旅游行程规划,便于用户全面了解行程安排。

  • 行程规划和路线概览:展示每日主要活动和地点,并简要展示每日行程详情。
  • 地图与导航:提供行程路线导航,方便用户了解整体路线。
  • 天气预报:提供旅行期间的天气预报,帮助用户做好出行准备。

💸 5. 旅行账单

旅行账单功能为用户提供旅行期间的账单记录和预算管理。

  • 预算设置:用户可在旅行前设置初步预算,控制旅行开支。
  • 开支记录:按不同类别记录每日开支,清晰了解消费情况,便于后续分析。

🎒 6. 行李清单

行李清单功能帮助用户在出行前做好行李准备,避免遗漏重要物品。

  • 分类整理:根据服饰、电子产品、证件等不同类别整理行李,用户可对照基础清单进行勾选。
  • 自定义编辑:用户可自行添加或删除物品,生成符合自身需求的行李清单。

🧪 三、自动化单元测试

🔐 1. 登录注册模块测试

测试类定义: UserAuthTests

UserAuthTests 基于Django测试框架,主要测试用户认证相关功能。通过Django REST Framework的APIClient模拟API请求。

2. setUp 方法

setUp 方法在每个测试方法执行前进行准备,包括设置客户端、注册和登录接口URL、测试手机号及验证码。

测试覆盖

  • 用户注册成功与失败(验证码生成和发送失败)。
  • 用户登录成功与失败,以及新用户自动创建。
  • 参数缺失时的错误处理。

通过这些测试,确保API在各种情况下的正确行为,增强系统稳定性。

💰 2. 账单模块测试

测试类定义: BudgetExpenseTests

BudgetExpenseTests 基于Django测试框架,测试预算(Budget)和费用(Expense)相关API功能。利用APIClient模拟API请求。

setUp 方法

setUp 方法准备客户端、注册用户,并创建初始预算、费用及行程数据。

测试覆盖

  • 预算和费用的创建、读取、更新、删除(CRUD)操作。
  • 确保每个操作返回正确的HTTP状态码和数据。
  • 测试数据库中预算和费用数据的正确更新。

通过这些测试,确保预算和费用相关API功能在不同情况下的正确性和可靠性。

📓 3. 备忘录模块测试

测试类定义: MemoTests

MemoTests 基于Django测试框架,测试备忘录(Memo)相关API功能。利用APITestCase模拟API请求。

setUp 方法

setUp 方法准备客户端、注册用户,并创建初始行程和备忘录数据。

测试覆盖

  • 备忘录的创建、读取、更新、删除(CRUD)操作。
  • 确保每个操作返回正确的HTTP状态码和数据。
  • 测试备忘录与行程的关联创建功能。

通过这些测试,确保备忘录相关API功能在不同情况下的正确性和数据一致性。

🔗 4. 链接创建行程模块测试

测试类定义: KimiChatViewTests

KimiChatViewTests 基于Django测试框架,测试Kimi聊天视图(kimi_chat_view)相关API功能。利用APIClient模拟用户HTTP请求。

setUp 方法

setUp 方法准备客户端,模拟用户登录,并设置API请求URL。

测试覆盖

  • 缺少参数时的错误处理。
  • 日期格式错误的处理。
  • 无效JSON请求格式的处理。

通过这些测试,确保Kimi聊天API在各种输入错误情况下的健壮性,正确处理用户请求中的异常情况。

🌟 5. 返回热门景点模块测试

测试类定义: RecommendHotSpotsTests

RecommendHotSpotsTests 基于Django测试框架,测试推荐热门景点功能。利用APIClient模拟用户请求。

setUp 方法

setUp 方法创建测试用户,模拟用户登录,并设置API请求URL。

测试覆盖

  • 请求成功时返回正确数据(包括景点名称、标签、描述)。
  • 缺少必要参数(如city)时返回错误信息。

通过这些测试,确保推荐热门景点API在正常情况下返回正确数据,并在缺少必要参数时返回适当错误信息。

👥 四、团队协作与个人感悟

📅 1. 团队协作记录

此处展示部分GitHub commit记录:

💭 2. 团队成员感悟

蓝敏龙 🧑‍💼

在本次Beta冲刺中,作为项目经理,我深刻体会到了团队协作的重要性与挑战。我的主要职责是跟进项目进度,组织团队会议,确保各项任务有序推进。此次冲刺的核心目标是实现前后端的高效交互,这不仅要求技术上的精准对接,更考验了团队的协调能力。在项目推进过程中,我意识到激励组员的重要性。通过定期的沟通与反馈,我努力营造积极向上的工作氛围,激发每位成员的潜力。然而,由于自身对技术细节掌握不够深入,与前后端开发人员的沟通时常面临障碍。这一挑战让我深刻反思,未来需要加强自身的技术学习,以便更好地理解和协调各环节。回顾整个Beta冲刺,我收获颇丰。不仅在项目管理技能上有所提升,更在如何激励团队、优化沟通方面积累了宝贵经验。未来,我将继续致力于提升自身的技术水平,加强与团队的沟通协作,确保项目能够更加顺利、高效地推进。

陈碧煌 👩‍💻

本次Beta冲刺主要完成前后端的交互,这一过程让我收获颇丰。起初,我对前后端交互缺乏信心,但幸运的是,后端同事经验丰富,遇到问题能及时反馈。虽然一开始困难重重,但最终成功对接了工作部分的接口。在这次冲刺中,我更加认识到团队的重要性。任务分工初期与实际工作量存在较大差异,部分成员需承担更多工作量,但大家齐心协力,顺利完成了任务。

王梓铭 👨‍🔧

在此次软件工程Beta冲刺中,我积极参与了前后端协作开发,成功实现了行程数据的动态获取与展示功能。通过优化Vue.js组件和API接口调用,提升了应用的响应速度和用户体验。面对接口调试和权限验证的挑战,我学习并应用了Axios的高级用法,确保数据安全传输。此外,我加强了对团队协作工具的使用,有效沟通解决了多项技术问题。此次冲刺不仅提升了我的编程技能,也增强了我的问题解决能力,为后续开发打下了坚实基础。

阿依娜孜 🧑‍🎨

本次“man游”旅游规划软件前端页面的Alpha冲刺,基于Vue框架展开,让我对前端开发有了全新的认知与收获。在技术实践中,Vue的响应式数据绑定和组件化开发极大提高了开发效率。构建旅游行程展示组件时,数据的更新能实时反映在页面上,用户交互体验更加流畅。通过Vue Router实现页面路由管理,使多页面间的跳转逻辑清晰明了,不同旅游规划功能模块的切换自然顺滑。在与后端API对接时,利用Axios发送请求获取数据,学习处理异步操作中的数据状态变化。这次Alpha冲刺让我在Vue前端开发、团队合作等多方面都得到了成长。后续开发中,我将深入钻研Vue技术,优化代码结构与版本管理策略,为man游软件打造更优质的前端体验。

郭剑敏 🖥️

在完成账单设计和行李清单功能的前端代码开发后,我深刻体会到组件化设计的重要性。通过模块化代码,提高了开发效率并确保了代码的可维护性。同时,优化用户界面的交互让我意识到细节处理对用户体验的影响。这次实践让我更加注重代码质量与用户体验的平衡。

张诚坤 👨‍🎓

在本次Beta冲刺中,作为前端小组成员,我深刻体会到团队协作的重要性。虽然由于自身能力有限,贡献不多,但在团队的共同努力下,顺利完成了前后端交互任务。与后端开发和项目经理的紧密合作,让我学到了很多宝贵的经验,也意识到自身技术提升的必要性。感谢团队成员的支持与配合,未来我将继续努力,提升技能,为项目做出更大贡献。

施宇翔 🛠️

在本次软件工程项目的Beta冲刺阶段,我主要负责后端自动化单元测试、前后端交互对接及内网穿透技术的测试部署。这次实践让我深刻体会到团队协作与技术应用的重要性。通过完善测试用例提高了代码稳定性,与前端高效沟通确保功能顺畅实现。在内网穿透测试中,成功搭建了远程测试环境,优化了项目部署体验。面对需求变化和技术挑战,我不仅提升了编码能力,还强化了问题解决和沟通协调能力。项目逐步落地的过程让我对工程实践的价值有了更深刻理解,也激发了我进一步优化技术细节的动力。

承宇豪 🧑‍🔧

在Beta冲刺中,我们基本完成了上一阶段的任务,并且配合更加默契。大家的目标明确,各司其职,一起编写代码、讨论问题、修改需求、调试错误。这段时间里,我学到了许多新知识,掌握了各种新工具,也深刻体会到团队沟通的重要性。尽管开发过程中遇到不少困难,但能够与团队共同完成项目让我感到非常高兴。感谢每一位努力的队友!

杨邑豪 🌱

在Beta冲刺中,我们整体在问题处理的质量和效率上都有显著提高。之前各功能实现过程中走了不少弯路,但现在许多功能能够在预期时间内完成。这段时间里,我学习了许多新技能,最大的收获是认知的提升。我意识到许多设想需要有延续性,不能只看眼前,否则未来可能需要重新进行基层建设。

刘宇杰 🖥️

在本次Beta冲刺中,我负责了账单与备忘录功能的后端实现及前后端交互的修改。账单模块包括预算和费用管理,支持创建、更新和删除操作,并与用户的旅行信息关联。备忘录模块允许用户记录和管理个人备忘,具备状态标记功能。所有接口均采用RESTful风格,确保良好的可扩展性和安全性。通过Django框架实现高效的数据处理,保证系统的稳定性和响应速度。后续将进行功能测试和用户反馈收集,以进一步优化系统性能。

🔗 五、项目资源链接

GitHub仓库地址如下:

https://github.com/acedia7/MAN-travel/


posted @ 2024-12-06 20:35  LEML  阅读(69)  评论(0)    收藏  举报