【HelloKitty团队项目】Alpha阶段项目展示

【HelloKitty团队项目】Alpha阶段博客目录 阅读详情
项目 内容
这个作业属于哪个课程 2023北航软件工程
这个作业的要求在哪里 团队项目-Alpha阶段项目展示
我在这个课程的目标是 学习软件工程技术,完成团队开发流程
这个作业在哪个具体方面帮助我实现目标 Alpha阶段开发

一、项目亮点

项目管理

团队是如何进行项目管理的?

我们使用coding平台作为代码仓库与项目协作管理平台。项目采用前后端分离模式开发,使用两个issues集合,分别进行前后端的任务计划与管理

这是coding的任务协作看板,具有两个对进度管理很有用的功能:

  • 支持为任务增加父子的层级关联,整个任务看板可以以树状视图展现,利于将不同方面的父任务,划分更细粒度的子任务,体现敏捷开发的原则。

  • 能够自动生成任务的甘特图,在任务进度管理时能够清晰直观地复盘与规划。

在这里插入图片描述
在这里插入图片描述
此外,coding平台支持多种基于代码仓库的数据统计版块,为我们在进行贡献分分配的任务量衡量方面提供了一定的参考依据。
在这里插入图片描述

团队的成员如何分工协作的?有什么经验教训?

团队分工主要从每个人的擅长部分出发, 前端四位同学发挥了每个人的优势,包括架构设计与仓库管理、设计复杂的视图与交互功能,设计精美的宣传页与轮播图,调整每个页面的布局与UI样式,后端有三位同学,分别负责运维和前后端对接、GPT部署与数据库的构建,还有编写高覆盖的单元测试。

姓名 分工 经验教训
lzh PM、运维 应该在项目前期对项目整体安全性方面做更多功课
wyy 前端开发 在开发过程中要时刻考虑用户体验和易用性,避免过度复杂化设计
lyq 前端开发 注意相对布局以及功能设计使用的完备性、安全性,布局以及功能要以用户为出发点
xzh 前端开发 前后端开始编写代码前约定好数据格式与接口格式,并且注意功能的可拓展性;注意相对布局以及不同屏幕比例的适配
ljh 前端开发 在设计前后端API的调用规范时缺少对安全性的考虑
zya 后端开发 数据库与api设计应与前端充分沟通,减少后期反复修改
zl 后端开发 应严格约束ChatGPT输出格式并进行后处理;应对爬虫得到数据进行多重过滤

团队成员如何沟通和对接的?有什么记录留存?

(一)例会

项目的前期讨论与个人开发阶段,主要进行线上会议,讨论本阶段开发问题,明确下阶段任务。我们留存了五次线上会议的录屏,帮助不能参会的同学了解项目进展,同时用来进行会议总结。

在这里插入图片描述
项目的前后端对接与部署阶段,进行两次全员线下的集中开发,沟通效率比较高,线下推进比较顺利。
在这里插入图片描述

(二)前后端对接

apifox接口管理与测试,一共完成52个接口文档,约束前后端接口的规范性。同时在开发初期,前后端使用它进行各自的测试,避免开发调试时进度不统一的问题,保证了个人开发的代码在交付到对接阶段时,都是经过充分调试的、可信赖的代码,保证了代码对接阶段的高效

在这里插入图片描述

团队项目的实际进展如何(拷贝那些 scrum 过程中的燃尽图即可)?在项目管理中,scrum的燃尽图是如何真实反映项目的状态的?或者燃尽图美化了状态?

在这里插入图片描述
从燃尽图能看出来,我们团队的项目进展是比较平稳推进的,基本与燃尽图的理想曲线符合,没有出现项目后期补天的情况,首先是感谢团队成员都有优秀的进度把控意识,以及印证了我们团队在前面的项目管理方面的介绍,是合理并且适合我们团队的。
后期实际进展与理想进展曲线出现一定偏离,经过反思是因为项目从个人开发转向对接阶段时,由于前后端部署与数据库的构建需要一定的学习与试错成本,拖延了一定的进度。

在任务中,我们存在issue的实时增删,包括增加新需求引入的新issue,以及对于一些不合理/重复/放入beta阶段的issue的删除。在Alpha阶段整体完成后,结合coding平台对issue的每日完成记录,去掉上述因素影响后,最终Alpha阶段项目的燃尽图较为合理。

用户场景与特色功能

预期的典型用户场景

姓名 小新
用户身份 大一新生
年龄 18
用户所占市场比例 20%
用户情况/个人英语水平 刚完成高中学业不久,高考英语水平
用户动机 脱离中学教育模式,开始自学英语
使用习惯 没有固定规律,有时间学英语时就用
支付意愿 学生群体付费意愿较低
产品期望 能够辅助培养自己自学英语的水平
应用情景 场景:有时间时学习一些新单词

收获:掌握单词释义,同时通过语境等加深印象
姓名 谷哥
用户身份 即将出国的外企员工
年龄 30
用户所占市场比例 15%
用户情况/个人英语水平 有一定的英语基础,日常工作中有英语使用需求
用户动机 满足商务会话、日常会话需求
使用习惯 平时日常巩固,要出国前适当突击
支付意愿 如果对英语水平(尤其是口语)有所提升则愿意消费
产品期望 提升口语水平,能够熟练进行日常英语会话
应用情景1 场景:学习商务中可能用到的词汇以及进行对应的对话训练
收获:熟悉商务对话
应用情景2 场景:日常常用词学习与训练
收获:锻炼日常英语交流能力
姓名 阿美
用户身份 有美国留学意愿的学生
年龄 20
用户所占市场比例 25%
用户情况/个人英语水平 大学四级/六级水平
用户动机 满足出国的英语要求
使用习惯 有规划的每日使用学习
支付意愿 愿意支付一定费用(和出国求学比消费较少)
产品期望 满足托福等应试要求,并培养英语会话水平
应用情景1 场景:学习单词时同时学习阅读写作时对应的语境
收获:掌握单词在具体语境下的使用,从而提高GRE成绩
应用情景2 场景:通过对话学习单词的使用
收获:能够将单词运用到日常学习交流中
姓名 吕笑
用户身份 初入某领域的科研人员
年龄 22
用户所占市场比例 5%
用户情况/个人英语水平 英语水平能够满足日常使用和基础阅读, 但是对相关文献中的专业领域内的专有名词比较生疏
用户动机 更好的更快速的理解记忆领域内的专有名词以及用法
使用习惯 在阅读文献时边阅读边搜索专有名词,在闲暇时间能够整理理解单词本中的
支付意愿 学生收入有限,支付意愿比较低
产品期望 能够掌握领域内比较常见的专有名词,阅读文献时没有阅读障碍
应用情景1 情景:阅读一篇文献时,边阅读边搜索专有名词并添加到单词本
【HelloKitty团队项目】Alpha阶段事后分析 Alpha阶段事后分析 阅读详情

相关推荐

【HelloKitty团队项目】Alpha阶段功能规格说明书

【HelloKitty团队项目】Alpha阶段功能规格说明书

HelloKittyTeam的博客 1371

【HelloKitty团队项目】Alpha阶段软件发布声明

【HelloWord】Alpha阶段软件发布声明

HelloKittyTeam的博客 454

【HelloKitty团队项目】Alpha阶段技术规格说明书

【HelloKitty团队项目】Alpha阶段技术规格说明书

HelloKittyTeam的博客 355

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 287

SecureCRT串口连接保姆级教程:从驱动安装到波特率设置(附常见问题解决)

本文提供SecureCRT串口连接的保姆级教程,涵盖从USB转串口驱动安装、端口识别到波特率等核心参数设置的完整流程。针对连接失败、乱码、键盘输入无响应等高频问题,给出了深度排查与解决方案,帮助网络与嵌入式开发新手快速掌握串口调试技能。

weixin_29281941的博客 433

时钟门控ICG单元的timing问题

本文探讨了数字IC设计中门控时钟(ICG)的时序收敛问题,重点分析了ICG单元在setup时序检查中易出现违例的原因及优化方法。文章指出,由于ICG单元不在时钟树平衡范围内,其时钟路径延迟通常小于后续寄存器,导致setup时序难以满足。提出的解决方案包括:1)将ICG尽量靠近受控寄存器放置;2)使用set_clock_gating_check命令加强时序约束;3)在布局阶段设置负时钟延迟;4)CTS阶段设置插入延迟。同时强调set_clock_gating_check命令对ICG单元同样有效,并介绍了ICG

u011075954的专栏 1111

VS2019编译使用log4cplus 1.2.0

logger.properties 文件。第三步,创建项目来测试,配置库。第二步,使用VS2019编译。

h a 6 6 6 c k 为 你解决复杂难题! 528

YOLO26 改进 - 注意力机制 | Mask Attention掩码注意力,可学习掩码矩阵破解低分辨率特征提取难题 | 2025 预印

本文提出了用于低分辨率图像分割的MaskAttn - UNet框架,并将其核心的掩码注意力机制集成到YOLO26中。传统U - Net类模型难以捕捉全局关联,Transformer类模型计算量大,而掩码注意力机制通过可学习的掩码,让模型选择性关注重要区域,融合了卷积的局部效率和注意力的全局视野。其工作流程包括特征适配、掩码生成、定向注意力计算和特征融合。我们将掩码注意力机制代码集成到YOLO26中。

魔改工程师的博客 835

第3.1.3章 机器人第三方库实战总结:ROS 2 入门实战及和ROS1的对比,打通机器人开发的任督二脉

本文针对机器人SLAM开发中第三方库的学习痛点,重点介绍ROS 2在SLAM中的应用。文章首先对比ROS 1与ROS 2的核心差异,梳理ROS 2知识图谱,包括节点、话题、服务等核心概念。通过实战项目演示如何构建激光SLAM节点,结合代码详解运行流程。最后给出学习建议,强调动手实践的重要性,帮助开发者快速掌握ROS 2在SLAM开发中的关键应用。

行知SLAM 180

【OpenClaw企业级智能体实战】第16篇:电商“龙虾”掘金记:用OpenClaw实现小红书/抖音/淘宝全自动矩阵运营(2026实测版)

2026年,OpenClaw(小龙虾)已成为电商运营的核心效率工具——从公众号文案3分钟生成到TikTok爆款视频1小时复刻,从多平台内容同步到自动比价加购,彻底重构了电商运营的工作模式。本文基于真实商业案例(元岳科技、TikTok跨境卖家、淘宝MCP工具),系统拆解电商智能体的落地路径:先详解OpenClaw在电商场景的核心原理与变现模式(代部署、模板售卖、轻定制、内容套利),再提供阿里云/本地双部署方案,完整实现小红书/抖音/淘宝的自动化运营(热点抓取、内容生成、多平台分发、数据分析)。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2290

android studio 2022打开了v1 签名但是生成的apk没有v1签名问题

我使用了Android Studio Flamingo | 2022.2.1 Patch 2版本的IDE编译了一个apk,但是apksigner查看apk的签名信息时,发现只有v2签名,没有v1签名。试着改小一下minSdkVersion 为23重新编译apk,再检测一下签名版本v1居然打开了!参考网上搜索到的方法,手动在build.gradle里面添加。但是编译出来的apk还是只有v2的签名。里面提到了v1签名还和。

hedalei的博客 466

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 【HelloKitty团队】Git规范
下一篇: 【HelloKitty团队项目】Alpha阶段事后分析
HelloKittyTeam
博客等级 码龄4年 2粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值