软件工程第二次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281 |
作业目标 | 制作一个小程序 |
学号 | 052204130 |
姓名 | 陈毅 |
组员 | 102202119吴佳辉 |
组员博客链接 | https://www.cnblogs.com/wujiahui/p/18457445 |
一.github仓库
https://github.com/7imc1/052204130_102202119
二.具体分工
吴佳辉 | 陈毅 |
---|---|
页面设计 | 聊天功能的实践 |
页面的交互功能 | 新建项目功能 |
页面优化 | 登录界面的实现 |
三.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 120 | 50 |
Estimate | 估计这个任务需要多少时间 | 1000 | 1200 |
Development | 开发 | 240 | 300 |
Analysis | 需求分析(包括学习新技术) | 60 | 50 |
Design Spec | 生成设计文档 | 50 | 30 |
Design Review | 设计复审 | 30 | 40 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 50 | 60 |
Design | 具体设计 | 30 | 50 |
Coding | 具体编码 | 700 | 800 |
Code Review | 代码复审 | 200 | 180 |
Test | 测试(自我测试,修改代码,提交修改) | 300 | 400 |
Reporting | 报告 | 120 | 140 |
Test Repor | 测试报告 | 120 | 140 |
Size Measurement | 计算工作量 | 20 | 40 |
Postmortem&Process Improvement Plan | 事后总结,并提出过程改进计划 | 60 | 80 |
合计 | 1200 | 1400 |
四.解题思路描述与设计实现说明
1. 功能模块设计
·用户注册与登录:
功能:用户通过微信一键登录,获取用户信息(昵称、头像)。
实现:使用微信的身份认证API,获取用户的基本信息并存入数据库。
·项目发布:
功能:用户可以创建新项目,填写项目名称、描述、所需技能、人数等信息。
实现:创建一个表单界面,用户填写项目相关信息。使用数据库存储项目数据,并生成项目列表供其他用户浏览。
·实时交流:
功能:提供即时通讯功能,让项目成员可以在项目中实时交流,支持文字、语音、图片等消息形式。
实现:集成即时通讯工具,如WebSocket,支持实时消息推送。设计聊天界面,显示历史消息,并提供发送消息的输入框。
·项目管理工具:
功能:用户可以设置项目目标、分配任务、设定时间表等。
实现:创建项目管理界面,用户可以添加、编辑和删除任务。实现日历功能,展示项目时间节点。
·用户个人资料:
功能:用户可以展示自己的技能、项目经验。
实现:用户资料界面,展示用户的基本信息、技能标签和过往项目。
2. 界面设计
首页:
显示项目列表和招募信息,提供搜索和筛选功能。
提供“发布项目”按钮,方便用户快速发布新项目。
项目详情页:
显示项目的详细信息,包括项目描述、成员列表、聊天入口和项目管理工具。
聊天界面:
设计简单直观的聊天界面,显示聊天记录,提供消息输入框和发送按钮。
用户个人资料页:
显示用户的头像、昵称、技能和评价,并提供编辑功能。
3. 数据存储与后端支持
·数据库设计:
创建用户表、项目表、聊天记录表和评价表,支持基本的CRUD(创建、读取、更新、删除)操作。使用云数据库(如腾讯云数据库)存储数据,保证数据安全和高可用性。
·后端接口:
设计RESTful API,支持用户注册、项目发布、消息发送和评价等操作。采用云函数处理特定逻辑,如发送消息通知和定时任务。
五.附加特点设计与展示
1.设计的创意独到之处,这个设计的意义
能够帮助我们更好地进行项目的交流和组建
2.实现思路
文字描述:在原先axure原型的基础上,利用微信开发者工具制作一款小程序来实现。
流程图:
3.有价值的代码
1.用于实现登录的代码,通过collection.where函数来判断输入的账号是否已注册(存入数据库)
2.用于实现注册的代码,通过collection.add函数将注册成功的用户信息存入数据库中。
3.用于实现创建项目的代码,并且可以实现将创建后的项目在“我的项目”中查看
4.实验成果展示
六.目录及使用说明
projectpartner文件目录结构
- pages
- about_me
- about_me.js
- about_me.json
- about_me.wxml
- about_me.wxss
- conversations
- conversations.js
- conversations.json
- conversations.wxml
- conversations.wxss
- create_project
- create_project.js
- create_project.json
- create_project.wxml
- create_project.wxss
- home
- home.js
- home.json
- home.wxml
- home.wxss
- index
- index.js
- index.json
- index.wxml
- index.wxss
- login
- login.js
- login.json
- login.wxml
- login.wxss
- my_projects
- my_projects.js
- my_projects.json
- my_projects.wxml
- my_projects.wxss
- project_details
- project_details.js
- project_details.json
- project_details.wxml
- project_details.wxss
- about_me
- .eslintrc.js
- app.js
- app.json
- app.wxss
- project.config.json
- project.private.config.js
- README.md
- sitemap.json
使用说明
1.所有页面的实现均在pages文件中。
2.其中login实现登录,index实现注册,about_me实现关于我,my_projects实现我的项目,create_project实现创建项目,conversation实现会话,home实现主页。
3.可以通过保存文件后导入微信开发者工具来使用。
七.单元测试
1.在微信小程序项目中配置好 Jest了解单元测试基本概念和目的。
学习使用测试框架(如 Jest)。
实践编写简单测试用例。
阅读优秀代码和测试示例。
定期重构和优化测试代码。
2.项目测试部分代码,测试部分article.js
3.构造测试数据时,考虑正常、边界和异常情况,确保覆盖所有场景,并预见潜在的极端输入,增强测试的鲁棒性和可靠性。
设计全面且灵活的测试用例,确保覆盖各种情况,文档清晰,易于维护与扩展。以应对测试人员的刁难。
八.遇到的代码模块异常或结对困难及解决方法
在运行的过程中发现聊天界面功能的实现和项目创建功能的实现代码总是达不到预期目标,但经过AI修改代码和在CSDN等查询相关的内容后,项目的功能已经可以按预期正常实现。经过这此的合作,我不仅发现了自己在代码编写方面的不足,也知道了软件设计过程中前端和后端的工作内容的差异,学习了解如何和自己的组员共同编写一款软件。
评价我的队友
在过去的时间里,我和我的队友共同开发了这款微信小程序
值得学习的地方
积极沟通,积极参与到合作中,并且能够一起解决问题完成任务
不足的地方
工作效率不够高,是我们都需要提升的地方。