软工实践——GitCode团队实战总结
| 这个作业属于哪个课程 | 软件工程实践-2023学年-W班 |
|---|---|
| 这个作业要求在哪里 | 软工实践——GitCode团队实战总结 |
| 这个作业的目标 | 团队实战 |
| 其他参考文献 | ... |
目录
- 一、项目地址
- 二、功能设计与实现
- 1. 思路描述
- 1.1 框架使用
- 1.2 数据库设计
- 1.3 核心功能实现思路
- 1.4 思考并解决
- 1.4.1 用户如何快速知道有投票功能并参与投票?
- 1.4.2 投票结果如何告知用户?
- 1.4.3 如何保证一人一号?防止用户多次注册账号参与投票。
- 2. 功能需求建模分析
- 三、程序展示
- 1. 程序运行环境
- 1.1 部署环境
- 1.2 实验运行环境
- 2. GitCode 的提交日志截图
- 3. 各组员的commit次数统计
- 4. 程序运行截图及说明
- (1)用户模块
- 1)用户登录界面
- 2)用户注册界面
- (2)投票模块
- 1)投票界面
- 2)进行投票
- (3)排名模块
- 排名界面
- 四、合作分工
- 1. 组员职责分工
- 2. 合作中遇到的困难及解决方法
- 2.1 和队友交接的不顺利
- 2.2 任务完成效率低
- 3. PSP表格
- 五、附加功能实现
- 5.1 附加功能一
- 5.2 附加功能二
- 5.3 附加功能三
一、项目地址
二、功能设计与实现
1. 思路描述
1.1 框架使用
前端:React,TailWind CSS,antd,Less,React Route,Vite
后端:Springboot,MySql,Redis
1.2 数据库设计





1.3 核心功能实现思路
投票功能:使用Redis缓存机制和异步写入来应对在一定程度上高并发的请求

1.4 思考并解决
1.4.1 用户如何快速知道有投票功能并参与投票?
投票功能在首页的中心位置,用户访问域名即可第一时间看到并发现投票功能。
1.4.2 投票结果如何告知用户?
弹出一个通知框通知用户投票结果,并且用户可以在下方的排行表中可以查看投票结果。
1.4.3 如何保证一人一号?防止用户多次注册账号参与投票。
用户要使用邮箱进行账号的注册。
2. 功能需求建模分析
N-需求
开发一个世锦赛投票平台,为广大体育迷和游泳爱好者提供一个在线体育投票平台,能给喜欢的运动员投票并能实时查看运动员投票数排名。
A-做法
前台界面:设计响应式网页,提升用户体验。
数据安全:加强数据加密,采用HTTPS协议传输数据,确保用户信息和投票数据安全。
B-好处
提升用户体验:简化操作流程,促进用户活跃度。
保证公平性:使用邮箱注册,一定程度上防止刷票。
C-竞争
安全性优势:强化的数据保护措施为用户信息筑起坚固防线,增强用户信任。
用户体验优化:持续迭代产品,确保操作简便、响应迅速,超越竞争对手。
D-推广
利用QQ、微信等社交平台增加曝光度。
三、程序展示
1. 程序运行环境
1.1 部署环境
- 负载均衡服务器
服务器商:阿里云
地域:新加坡
配置:20Mbps, 2 vCPU, 1 GB Memory, Nginx - 主服务器
服务器商:阿里云
地域:杭州
配置:100Mbps, 2 vCPU, 4 GB Memory - 静态资源服务器
服务器商:Vercel
地域:中国香港
配置: 0.6 vCPU, 1 GB Memory
1.2 实验运行环境
操作系统: Windows 11 企业版 23H2
浏览器环境: Chrome 124.0.0.1
CPU: i7 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
2. GitCode 的提交日志截图


3. 各组员的commit次数统计
| 学号 | commit次数 |
|---|---|
| 222100423 | 31 |
| 222100414 | 10 |
| 222100416 | 3 |
| 222100415 | 3 |
| 222100406 | 4 |
| 222100113 | 0 |
| 222100130 | 0 |
| 222100428 | 0 |
4. 程序运行截图及说明
(1)用户模块
1)用户登录界面
(用户登录后可进行投票操作)

2)用户注册界面
(用户填写基本信息进行注册)

(2)投票模块
1)投票界面
(左上角显示目前剩余的投票数,用户可从运动员右侧对应文本框进行投票)

2)进行投票
(点击投票按钮后进行投票,显示投票成功)

(3)排名模块
排名界面
(显示运动员目前票数并进行排序)

四、合作分工
1. 组员职责分工
| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 222100414 | 前端实现 | 23% |
| 222100416 | 协助前端实现 | 13% |
| 222100428 | 博客编写 | 11% |
| 222100113 | 收集数据 | 3% |
| 222100415 | 测试 | 13% |
| 222100423 | 数据库设计,后端实现 | 22% |
| 222100130 | 收集数据 | 3% |
| 222100406 | 数据源获取,协助登录注册功能实现 | 12% |
2. 合作中遇到的困难及解决方法
2.1 和队友交接的不顺利
完善接口文档,当面交流,确认具体实现。
2.2 任务完成效率低
加强沟通,提高学习效率。
3. PSP表格
222100423
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 20 | 20 |
| • Analysis | • 需求分析 | 20 | 20 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 10 | 20 |
| • Coding | • 具体编码 | 600 | 600 |
| • Code Review | • 代码复审 | 30 | 30 |
| • Test | • 测试 | 30 | 30 |
| • Repor | • 写报告 | 60 | 50 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 810 | 810 | |
| 222100416 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 30 | 20 |
| • Analysis | • 需求分析 | 20 | 20 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 20 | 20 |
| • Coding | • 具体编码 | 600 | 630 |
| • Code Review | • 代码复审 | 30 | 30 |
| • Test | • 测试 | 30 | 30 |
| • Repor | • 写报告 | 60 | 50 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 830 | 840 | |
| 222100415 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 60 | 20 |
| • Analysis | • 需求分析 | 20 | 20 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 10 | 20 |
| • Coding | • 具体编码 | 200 | 150 |
| • Code Review | • 代码复审 | 20 | 20 |
| • Test | • 测试 | 90 | 100 |
| • Repor | • 写报告 | 30 | 30 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 20 |
| 合计 | 450 | 390 | |
| 222100414 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 10 | 5 |
| • Analysis | • 需求分析 | 10 | 10 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 20 | 20 |
| • Coding | • 具体编码 | 500 | 600 |
| • Code Review | • 代码复审 | 30 | 30 |
| • Test | • 测试 | 30 | 30 |
| • Repor | • 写报告 | 30 | 50 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 670 | 785 | |
| 222100428 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 15 | 20 |
| • Analysis | • 需求分析 | 20 | 20 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 10 | 20 |
| • Coding | • 具体编码 | 100 | 100 |
| • Code Review | • 代码复审 | 30 | 30 |
| • Test | • 测试 | 30 | 30 |
| • Repor | • 写报告 | 80 | 80 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 325 | 340 | |
| 222100406 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 20 | 20 |
| • Analysis | • 需求分析 | 10 | 20 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 10 | 20 |
| • Coding | • 具体编码 | 600 | 660 |
| • Code Review | • 代码复审 | 30 | 30 |
| • Test | • 测试 | 30 | 30 |
| • Repor | • 写报告 | 30 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 770 | 840 | |
| 222100130 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 10 | 10 |
| • Analysis | • 需求分析 | 10 | 10 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 10 | 10 |
| • Coding | • 具体编码 | 100 | 60 |
| • Code Review | • 代码复审 | 20 | 20 |
| • Test | • 测试 | 20 | 20 |
| • Repor | • 写报告 | 20 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 20 |
| 合计 | 220 | 180 | |
| 222100113 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| • Estimate | • 估计这个任务需要多少时间 | 10 | 10 |
| • Analysis | • 需求分析 | 10 | 10 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design | • 具体设计 | 10 | 10 |
| • Coding | • 具体编码 | 100 | 50 |
| • Code Review | • 代码复审 | 20 | 20 |
| • Test | • 测试 | 20 | 20 |
| • Repor | • 写报告 | 30 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 20 |
| 合计 | 230 | 170 |
五、附加功能实现
5.1 附加功能一
使用策略模式,进行了功能实现。
5.2 附加功能二
后端提供了接口,实现了部分功能。
5.3 附加功能三
由于设备限制,单台机器无法生成百万级别的并发用户,以及注册需要验证,不能实现模拟百万级别用户同时投票。
先设置好HTTP信息头管理器与HTTP请求默认值,
再写用户登录与进行投票的HTTP请求
再设置好查看结果树与聚合报告
设置好线程数与循环次数后进行测试
具体结果如下,其中用户登录的异常一般为连接超时,同时该用户登录的进行的投票也会异常以及用户可投票数不足时。

相关推荐
gitcode工作区
节点版本 v12.17.0 跑 yarn start:api yarn start:webapp
软件开发GitCode从零开始:新手入门、核心配置与实战操作全流程指南
内容概要:本文详细介绍了GitCode的使用方法,从新手入门到实战操作,涵盖了GitCode平台的全面指南。首先解释了GitCode是什么,它是CSDN与华为联合打造的开源开发者平台,旨在为开发者提供高效、安全的云端开发环境。接着阐述了前期准备工作,包括注册GitCode账号和安装Git。核心配置部分重点讲解了SSH密钥的生成与上传、本地全局配置等步骤,确保本地与GitCode平台之间的安全连接。实战操作部分详细描述了如何在GitCode上创建项目、克隆项目到本地、关联本地工程与远程仓库、上传与更新文件以及拉取远程代码。最后,针对常见问题如推送冲突、权限不足和密钥配置错误提供了详细的解决方案。 适合人群:适合初学者和有一定编程基础的开发者,特别是那些希望深入了解GitCode平台功能并掌握其使用技巧的人群。 使用场景及目标:①帮助开发者快速上手GitCode平台,掌握从注册账号到项目管理的全流程;②提高开发者的团队协作能力和代码管理效率;③通过参与开源项目,促进技术交流与成长。 阅读建议:本文内容详尽,适合逐步学习和实践。建议读者在阅读过程中结合实际操作,特别是在安装Git、生成SSH密钥、创建和管理项目等环节,通过动手实践加深理解。同时,遇到问题时可以参考文中的常见问题解决部分,确保学习过程顺利。
Git本地工程同步GitCode[项目代码]
本文详细介绍了如何使用Git将本地工程上传至GitCode仓库以及从GitCode下载工程到本地的完整流程。内容包括准备工作(安装Git、配置Git、创建GitCode账户)、上传本地工程到GitCode(创建远程仓库、初始化本地仓库、关联远程仓库、推送代码)、从GitCode下载工程(克隆远程仓库、拉取最新代码)、常用Git命令(查看状态、提交历史、撤销更改、分支管理)以及总结。通过本文,读者可以掌握Git的基本操作,轻松管理代码并与团队协作。
GitCode使用教程[项目代码]
本文详细介绍了如何使用GitCode进行代码托管,包括从安装git工具、生成SSH密钥、配置SSH密钥、新建项目、克隆项目到本地、关联本地工程到远程仓库、添加文件、提交文件等一系列操作。此外,还提供了一些实用的小技巧,如如何在README.md中显示图片和换行,以及常用的git命令。文章适合初学者快速上手GitCode,同时也为有经验的开发者提供了便捷的操作指南。
【团队协作与代码管理】基于GitCode权限管理的精细化开发管控配置:提升协作效率与安全性了文档的核心内容
内容概要:本文档《团队协作避坑指南:用GitCode权限管理|10分钟配置精细化开发管控》主要介绍了如何利用GitCode进行权限管理,以实现团队协作中的高效、安全和精细化管控。首先,文档解释了GitCode权限管理的核心概念,包括不同级别的权限(如组织级、项目级、仓库级和分支级)及其作用范围和典型角色。接着,文档详细描述了10分钟快速配置权限的具体步骤,从创建组织到设置权限模板,再到创建项目组与成员。随后,文档深入探讨了精细权限控制方案,涵盖分支保护规则配置、文件级代码拥有者(CODEOWNERS)以及合并请求(MR)审批规则等内容。最后,文档提出了企业级管控策略,包括敏感操作限制、合规性审计方案和定期权限审查流程,并分享了某50人团队采用此方案后的显著成效,如权限配置时间减少85%,越权操作事故下降92%,代码审核效率提升60%。 适合人群:适用于有一定GitCode使用基础的技术负责人、项目经理和开发工程师等团队成员。 使用场景及目标:①帮助团队快速搭建和配置权限管理体系;②确保代码库的安全性和稳定性;③提高团队协作效率,降低越权操作风险;④为新入职员工提供标准化的权限配置流程。 阅读建议:本指南不仅提供了详细的配置步骤,还强调了权限管理的最佳实践和持续优化建议。读者在学习过程中应结合实际应用场景,灵活应用所学内容,并定期审查和调整权限设置,以适应团队发展的需要。


