爱背单词不摆烂——GitCode团队实战总结

爱背单词不摆烂 团队 2024-05-10 17:00:27
这个作业属于哪个课程2302软件工程
这个作业要求在哪里软工实践——GitCode团队实战总结
团队名称爱背单词不摆烂
这个作业的目标多人协同工作、事先设计好模块分工、团队博客发表一篇博客
其他参考文献《构建之法》、CSDN

目录

  • 一、GitCode项目仓库地址
  • 二、GitCode 的提交日志截图
  • 2.1、052101413任广湃
  • 2.2、222100318张璟楠
  • 2.3、222100303陈昕
  • 2.4、222100122洪冠诚
  • 2.5、222100308向至尚
  • 2.6、112101225吴淇
  • 2.7、222100305庞财莹
  • 2.8、182000214廖文焘
  • 三、程序运行环境
  • 四、功能实现思路描述
  • 4.1、问题的思考与解决
  • 4.2、思路描述
  • 4.3、代码展示
  • 4.3.1、后台管理员主页面
  • 4.3.2、后台管理员子页面
  • 4.3.3、管理员端获取所有运动员接口
  • 4.3.4、根据比赛名称查询比赛信息
  • 4.3.5、用户类
  • 4.3.6、判断是否一人一号
  • 4.3.7、获取运动员列表
  • 4.3.8、用户展示设计
  • 4.3.9、封禁以及解封用户
  • 五、程序截图说明
  • 5.1、登录界面
  • 5.2、注册界面
  • 5.3、用户投票
  • 5.4、运动员综合投票排名
  • 5.5、投票开始时间与截止时间
  • 5.6、模糊查询搜索运动员与比赛信息
  • 5.7、运动员投票信息
  • 5.8、管理员用户管理
  • 5.9、用户信息
  • 5.10、赛事投票信息
  • 六、组员职责分工
  • 七、组员贡献度比例
  • 八、合作中遇到的困难及解决方法
  • 8.1、052101413任广湃
  • 8.2、112101225吴淇
  • 8.3、182000214廖文焘
  • 8.4、222100122洪冠诚
  • 8.5、222100308向至尚
  • 8.6、222100318张璟楠
  • 8.7、222100303陈昕
  • 8.8、222100305庞财莹
  • 九、PSP表格
  • 9.1、052101413任广湃
  • 9.2、112101225吴淇
  • 9.3、182000214廖文焘
  • 9.4、222100122洪冠诚
  • 9.5、222100308向至尚
  • 9.6、222100318张璟楠
  • 9.7、222100303陈昕
  • 9.8、222100305庞财莹
  • 十、压力测试
  • 十一、在服务器上部署项目


一、GitCode项目仓库地址

GitCode项目仓库地址

二、GitCode 的提交日志截图

2.1、052101413任广湃

在这里插入图片描述

2.2、222100318张璟楠

在这里插入图片描述

2.3、222100303陈昕

在这里插入图片描述

2.4、222100122洪冠诚

在这里插入图片描述


在这里插入图片描述

2.5、222100308向至尚

在这里插入图片描述

2.6、112101225吴淇

在这里插入图片描述

2.7、222100305庞财莹

在这里插入图片描述

2.8、182000214廖文焘

在这里插入图片描述


| 学号姓名 | Commit次数 |
|--------------------|------------------------|
| 052101413任广湃 | 3 |
| 112101225吴淇 | 10 |
| 182000214廖文焘 | 11 |
| 222100122洪冠诚 | 5 |
| 222100308向至尚 | 12 |
| 222100318张璟楠 | 5 |
| 222100303陈昕 | 3 |
| 222100305庞财莹 | 9 |

三、程序运行环境

后台管理员地址
用户端apk安卓安装包

在这里插入图片描述

腾讯云服务器
后端接口部署:maven打包jar包上传服务器,使用nohup java -jar xxxx.jar &实现后台运行。
前端web部署:npm run build打包vue项目上传服务器,使用nginx部署服务。
移动端部署:使用 flutter 开发,flutter build apk。

在这里插入图片描述

四、功能实现思路描述

实现的基本功能:
用户模块

  • 用户注册
  • 用户登录
  • 用户基本信息

投票模块:

  • 每名用户都可以参与投票,为自己喜欢的运动员进行投票
  • 投票信息展示(运动员信息、最大可投票数(不限制)、投票活动开始时间、投票活动截止时间、投票结果公布)、投票选项不可修改

排名模块:

  • 统计所有运动员的得票数
  • 对所有的运动员综合票数进行排名

实现的附加功能:

  • 附加功能1:设置投票策略,用户登入可获得一定的票数,来为自己喜欢的运动员进行投票。
  • 附加功能2:管理员模块:可以查看所有投票情况,还能看到后台统计信息如用户所属IP的账号数,并且能够封禁账号。
  • 附加功能3:压力测试,模拟大量的用户同时参与。

4.1、问题的思考与解决

  • Q1:用户如何快速知道有投票功能并参与投票?

  • A1:用户登录以后会看到当前运动员的投票排行,用户点击某个运动员的信息栏时会进入该运动员的详细信息页面,可以通过点击support支持按钮为运动员投票。

  • Q2:投票结果如何告知用户?

  • A2:用户点击运动员信息时,会有一个support支持按钮,用户点击即可为运动员投票,投票成功后以提示框返回提示信息告知用户已经投票成功。

  • Q3:如何保证一人一号?防止用户多次注册账号参与投票。

  • A3:通过检查用户注册的用户名是否在数据库中已经存在,若已存在则提醒用户更改注册的用户名;若不存在则继续判断电话号码是否重复,若存在则提醒用户更改电话号码,若不存在则注册成功。

4.2、思路描述

在这里插入图片描述

img

4.3、代码展示

4.3.1、后台管理员主页面

在这里插入图片描述

4.3.2、后台管理员子页面

在这里插入图片描述

4.3.3、管理员端获取所有运动员接口

在这里插入图片描述

4.3.4、根据比赛名称查询比赛信息

在这里插入图片描述

4.3.5、用户类

在这里插入图片描述

4.3.6、判断是否一人一号

在这里插入图片描述

4.3.7、获取运动员列表

在这里插入图片描述

4.3.8、用户展示设计

用户展示首先从数据库提取出所有的用户,再对每个用户进行ip地址的查询记录,通过建立辅助表ipUserCounts得到ip地址和用户的映射,从而获取每个ip地址对应的用户,最后使用vo类返回给前端具体的用户信息。

在这里插入图片描述

4.3.9、封禁以及解封用户

封禁用户首先根据管理员传的用户id得到用户,调整用户状态后,遍历vote表,使该用户投过的票无效,同时我们封禁用户只做状态的改变而不做delete操作,解封用户后用户投票依然会恢复。

在这里插入图片描述

五、程序截图说明

5.1、登录界面

用户通过输入自己注册的用户名和密码进行登录。

在这里插入图片描述

5.2、注册界面

用户输入自己的用户名、密码、邮箱地址、电话号码进行注册。

在这里插入图片描述

5.3、用户投票

用户登录成功后,自动获得票数(票数不做限制)。可以点击进入运动员的详细信息页面进行投票。

在这里插入图片描述

5.4、运动员综合投票排名

用户登陆成功后,主页显示运动员在票数下的综合排名。

在这里插入图片描述

5.5、投票开始时间与截止时间

该页面展示赛事的投票时间和截止时间。

在这里插入图片描述

5.6、模糊查询搜索运动员与比赛信息

用户可以通过运动员姓名、比赛名称、国家三个搜索框进行查询。

在这里插入图片描述

5.7、运动员投票信息

后台管理员可以查看所有投票情况。

在这里插入图片描述

5.8、管理员用户管理

管理员可以看到后台统计信息如用户所属IP的账号数,并且能够封禁账号。

在这里插入图片描述

5.9、用户信息

用户登录成功后可以看到自己的基本信息。

在这里插入图片描述

5.10、赛事投票信息

管理员可以查看具体赛事的投票信息

在这里插入图片描述

在这里插入图片描述

六、组员职责分工

学号姓名职责分工
052101413任广湃压力测试、协助移动端开发
112101225吴淇数据库设计、后端开发
182000214廖文焘用户移动端开发
222100122洪冠诚博客撰写、进行移动端和Web端功能测试、协助后端开发
222100308向至尚数据库设计、后端开发
222100318张璟楠压力测试、协助后端debug
222100303陈昕压力测试、协助前端开发
222100305庞财莹管理员页面前端开发

七、组员贡献度比例

学号姓名贡献度
052101413任广湃9.5
112101225吴淇14.9
182000214廖文焘15.1
222100122洪冠诚10.6
222100308向至尚15
222100318张璟楠10.4
222100303陈昕12.5
222100305庞财莹13

八、合作中遇到的困难及解决方法

8.1、052101413任广湃

  • 遇到的困难:一开始进行压力测试时,出现了测试工具使用不一致的问题。
  • 解决方法:与团队成员进行沟通交流后,统一了测试工具。
  • 心得体会:团队成员需要积极沟通和交流。

8.2、112101225吴淇

  • 遇到的困难:参与数据库设计和后端代码编写,遇到数据库表名、方法和变量名不一致的问题
  • 解决方法:通过与团队成员的沟通和认真debug解决了问题。
  • 心得体会:在团队协作中,要尊重和信任团队成员,鼓励和支持彼此,共同完成项目。此外,debug能力也是作为一个程序员必不可少的能力。

    8.3、182000214廖文焘

  • 遇到的困难:环境配置存在问题。
  • 解决方法:利用搜索引擎查找网络上的问答,成功解决问题。
  • 心得体会:要善用搜索引擎。

    8.4、222100122洪冠诚

  • 遇到的困难:参与一部分代码开发,但对相应的技术框架使用不熟练,在时间紧张的情况下协助进行功能测试。
  • 解决方法:与团队成员进行积极的沟通和交流,通过CSDN与b站等网络资源速成相关知识,并利用chatgpt强大的能力解决了问题。
  • 心得体会:在遇到问题和困难时,要保持冷静和乐观的心态,积极与团队成员沟通,互帮互助,解决问题。

    8.5、222100308向至尚

  • 遇到的困难:项目开发时间非常有限,并且团队协作时存在分工和沟通不畅的困难。
  • 解决方法:通过及时沟通和协商解决问题,及时与团队成员讨论交流,统一编码风格和思路。
  • 心得体会:这次经历让我深刻理解到,在压力环境下,合理的团队分工和开发规划是多么重要。同时,我也学会了如何在压力下快速做出决策,并带领团队解决问题。

    8.6、222100318张璟楠

  • 遇到的困难:没有学习过压力测试,不知道压力测试如何进行。
  • 解决方法:通过b站上的压力测试速成视频,成功学会了如何利用工具进行压力测试。
  • 心得体会:作为开发者,我们需要持续学习,不断更新自己的知识库。团队内部的技术交流对于个人成长和团队发展都极为有益。

    8.7、222100303陈昕

  • 遇到的困难:压力测试过程不顺利,error率高。
  • 解决方法:通过查阅网上资料并与团队成员沟通交流成功解决问题。
  • 心得体会:遇到困难时也需要保持冷静,要善于利用各种资源解决问题。

    8.8、222100305庞财莹

  • 遇到的困难:参与前端代码编写,遇到前后端意见不一致和代码问题。
  • 解决方法:前后端开发人员之间需要积极沟通和交流,以便在遇到问题时快速解决。
  • 心得体会:在团队协作中,要注意任务分工和沟通交流。

九、PSP表格

9.1、052101413任广湃

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划1515
• Estimate• 估计这个任务需要多少时间1510
Development开发110130
• Analysis• 需求分析 (包括学习新技术)105
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)1020
• Coding• 具体编码230245
• Test• 测试(自我测试,修改代码,提交修改)515
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划525
合计415435

9.2、112101225吴淇

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划1515
• Estimate• 估计这个任务需要多少时间1510
Development开发330350
• Analysis• 需求分析 (包括学习新技术)105
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)1020
• Coding• 具体编码480480
• Test• 测试(自我测试,修改代码,提交修改)515
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划525
合计810835

9.3、182000214廖文焘

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划1010
• Estimate• 估计这个任务需要多少时间510
Development开发320420
• Analysis• 需求分析 (包括学习新技术)55
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)1515
• Coding• 具体编码380420
• Test• 测试(自我测试,修改代码,提交修改)1015
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划1520
合计730855

9.4、222100122洪冠诚

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划2515
• Estimate• 估计这个任务需要多少时间510
Development开发180200
• Analysis• 需求分析 (包括学习新技术)55
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)1515
• Coding• 具体编码300315
• Test• 测试(自我测试,修改代码,提交修改)510
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划510
合计515525

9.5、222100308向至尚

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划2020
• Estimate• 估计这个任务需要多少时间1530
Development开发270310
• Analysis• 需求分析 (包括学习新技术)1010
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)55
• Coding• 具体编码430490
• Test• 测试(自我测试,修改代码,提交修改)55
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划55
合计745835

9.6、222100318张璟楠

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划1515
• Estimate• 估计这个任务需要多少时间1510
Development开发140160
• Analysis• 需求分析 (包括学习新技术)105
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)1020
• Coding• 具体编码250255
• Test• 测试(自我测试,修改代码,提交修改)515
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划525
合计465495

9.7、222100303陈昕

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划68
• Estimate• 估计这个任务需要多少时间105
Development开发160167
• Analysis• 需求分析 (包括学习新技术)412
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)1010
• Coding• 具体编码375385
• Test• 测试(自我测试,修改代码,提交修改)513
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划515
合计535545

9.8、222100305庞财莹

PSPPersonal Software Process Stages预计耗时(分钟)实际耗时(分钟)
Planning计划1015
• Estimate• 估计这个任务需要多少时间2020
Development开发400380
• Analysis• 需求分析 (包括学习新技术)55
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)155
• Coding• 具体编码400420
• Test• 测试(自我测试,修改代码,提交修改)510
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划1010
合计855875

十、压力测试

小组使用jmeter和apipost两种工具进行压力测试,测试板块包括用户Login,register接口等;分析接
口/页面的平均响应时间、最大响应时间、错误率。

步骤

  1. 创建测试计划:右键单击测试计划并选择 "Add" -> "Threads (Users)" -> "Thread Group"。创建一个线程组,用于模拟并发用户
  2. 配置线程组参数:设定线程数目,攀升时间,循环轮数等
  3. 添加 HTTP 请求:配置登录接口的 URL、请求方法和参数。(api测试需添加HTTP信息头管理器)
  4. 添加监听器,运行测试分析结果

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

测试结果
登录模块

img

注册模块

img

投票模块

img

获取用户信息模块

img

根据id获取运动员信息模块

img

测试过程中截图(未测试完毕)

在这里插入图片描述


在这里插入图片描述

测试结果截图(来自apipost)

在这里插入图片描述

在这里插入图片描述

十一、在服务器上部署项目

后台管理员地址

...全文
131 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文针对传统三电平并网逆变器存在的谐波含量高、电网不平衡工况适应性差及动态响应滞后等问题,提出了一种基于有源中点箝位(ANPC)三电平逆变器的高性能并网控制策略。该策略融合了双极性倍频脉宽调制(DPWMA)、正负序分离锁相技术和电网电压前馈控制,构建了“精准同步-扰动补偿-优质调制”的一体化控制体系。通过Simulink搭建仿真模型,在稳态对称、电网不平衡及动态扰动等多种工况下进行验证,结果表明该复合控制策略能显著降低并网电流谐波,提升锁相精度,有效抑制功率波动,并大幅缩短系统动态调节时间,增强了逆变器在复杂电网环境下的稳定性与适应性。; 适合人群:从事电力电子、新能源并网、智能电网等相关领域的科研人员及工程技术人员,尤其适合具备一定MATLAB/Simulink仿真基础、专注于并网逆变器控制策略研究的研发人员; 使用场景及目标:①用于提升大功率并网逆变器在电网电压不平衡、骤升骤降等非理想工况下的运行性能;②为ANPC拓扑结构与先进控制算法(如DPWMA、前馈-反馈复合控制)的协同优化提供仿真依据和技术参考;③适用于新能源发电系统、工业变流装置等对电能质量和动态响应要求较高的应用场景; 阅读建议:建议读者结合文中提出的控制架构图与仿真模型逐步复现,重点关注DPWMA调制实现、正负序分离锁相环设计及前馈补偿环节的参数整定,同时通过多工况仿真对比分析各项性能指标,深入理解各模块间的协同作用机制。
内容概要:本文以ANPC三电平并网逆变器为研究对象,提出了一种融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相与电网电压前馈控制的高性能并网控制策略。通过对ANPC拓扑结构的分析,阐明其在开关损耗均衡、中点电位稳定和低输出谐波方面的硬件优势,为高质量并网奠定基础。在此基础上,DPWMA调制策略有效提升输出波形的等效开关频率,显著降低谐波含量;正负序分离锁相技术可精准提取电网正序分量,克服电网不平衡导致的锁相失真与电流不对称问题;电网电压前馈控制则增强系统对动态扰动的响应能力,缩短调节时间。文章构建了“信号采集—核心控制—调制驱动”的三层协同控制架构,并通过多工况仿真验证了该策略在稳态、不平衡及动态扰动条件下的优越性能,结果表明系统具备优异的电能质量、运行稳定性与抗扰能力。; 适合人群:电力电子、新能源并网、自动控制等相关领域的科研人员、研究生及从事逆变器设计与控制的工程技术人员。; 使用场景及目标:① 提升大功率并网逆变器在复杂电网环境下的运行稳定性与电能质量;② 解决电网电压不平衡、谐波畸变、电压骤变等工况下的锁相失真与电流不对称问题;③ 优化动态响应性能,应用于新能源发电、工业变流器等高可靠性要求场景; 阅读建议:建议结合Matlab/Simulink仿真平台,复现文中控制策略与仿真模型,重点理解DPWMA调制实现方法、正负序分离锁相环设计及前馈-反馈复合控制结构的协同机制,并通过不同扰动工况测试系统鲁棒性。
内容概要:本文研究了基于Q-Learning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,旨在提升水下机器人在复杂、非线性及动态变化海洋环境中的控制精度与自适应能力。通过将强化学习算法与传统PID控制深度融合,构建了一种能够在线自主调整PID参数的智能控制框架,有效克服了传统PID控制器在面对模型不确定性、外部干扰和时变系统特性时适应性不足的问题。研究详细阐述了AUV的动力学建模过程,并精心设计了Q-Learning算法的状态空间、动作空间与奖励函数,使其能在Matlab仿真环境中通过不断的交互试错进行学习与优化,最终实现对航向角、深度等关键运动姿态的高精度、强鲁棒性控制。仿真结果充分验证了该方法在响应速度、稳态精度和抗干扰性能方面相较于传统方法的显著优越性,为智能水下装备的自主决策与控制提供了重要的理论依据和技术路径。; 适合人群:具备自动控制理论基础、强化学习初步知识及MATLAB编程能力的研究生、科研人员及从事智能机器人、无人系统控制开发的工程师。; 使用场景及目标:①应用于水下机器人、无人潜航器等复杂动态系统的智能控制设计;②解决传统PID控制器参数整定困难、环境适应性差和鲁棒性不足的关键问题;③推动强化学习等人工智能技术在实际工程控制系统中的落地应用、性能优化与可靠性验证。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,重点关注Q-Learning与PID的耦合机制、状态量与奖励函数的设计原则,深入理解智能控制策略的训练收敛过程、超参数敏感性及其在不同工况下的性能表现。

122

社区成员

发帖
与我相关
我的任务
社区描述
FZU-SE
软件工程 高校
社区管理员
  • LinQF39
  • 助教-吴可仪
  • 一杯时间
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧