团队作业第六次—团队Github实战训练
班级:软件工程1916|W
作业:团队作业第六次—团队Github实战训练
团队名称:Echo
作业目标:完成团队Github实战训练
抽奖地址:http://echo.ituoniao.net/
github地址: https://github.com/huangzhongxin/live-project
目录
团队博客汇总
队员学号 | 队员姓名 | 个人博客地址 | 备注 |
---|---|---|---|
221600418 | 黄少勇 | http://www.cnblogs.com/huangshaoyong | |
221600420 | 黄种鑫 | http://www.cnblogs.com/huangzhongxin | 队长 |
221600421 | 孔伟民 | http://www.cnblogs.com/kwm42 | |
221600422 | 李东权 | http://www.cnblogs.com/Ldqblogs | |
221600425 | 林弘杰 | http://www.cnblogs.com/lhj20190212 |
组员分工及工作量
学号 | 姓名 | 任务 | 贡献比例 |
---|---|---|---|
221600418 | 黄少勇 | 抽奖算法的具体实现 | 21% |
221600420 | 黄种鑫 | WEB前端的实现 | 21% |
221600421 | 孔伟民 | 过滤算法的实现 | 22% |
221600422 | 李东权 | 数据预处理 | 17% |
221600425 | 林弘杰 | 将文本数据进行结构化处理存为Excel,附加功能的部分实现 | 19% |
github的提交日志截图
程序运行截图
程序运行环境
- 编程语言
- 前端:HTML,CSS,JavaScript
- 后端:Java,python
- IDE
- IDEA
- VSCode
GUI界面
基础功能实现
首先对文本数据进行处理,提取出一条聊天记录的日期,时间,qq号,昵称,内容这些属性,接着就是过滤算法就是首先拿到读好的数据集,其中包含发言记录,每个人的类型(老师or学生)每个人的总发言次数,根据输入的参数:[开始时间,结束时间,发言次数限制,是否过滤老师,关键词],遍历数据集,第一遍把不在指定时间内发言,没有发过抽奖关键字的以及是否过滤老师,统计出区间段内的发言次数,第二次统计出在区间内发言次数达到规定的人,从而过滤出可参加抽奖的人员名单,给后面的处理做准备;而抽奖算法就是筛选好list,生成n(n为中奖总人数)个0到list.size()-1的随机数random,找到第random挑聊天记录,记录QQ和昵称,如过中奖的两条记录的QQ号相同,则从新抽过
附加功能实现
计划用python脚本对聊天记录进行数据分析与挖掘,然后在后端调用脚本生成发言次数,发言时间段,内容云图的图片,可以在后端查看,但由于时间有限,仅实现了生成发言次数,发言时间段,内容云图的图片的脚本,并不能在后端查看,只能手动运行脚本。以下是对数据PlusA.txt和PlusB.txt处理后生成的图片
-
PlusA.txt
- 发言时间段
- 发言次数
- 内容云图
- 发言时间段
-
PlusB.txt
- 发言时间段
- 发言次数
- 内容云图
- 发言时间段
从PlusB.txt的内容云图,我们大概可以分析出,该群是一个卖东西的群,而且大概是一个发布二手信息的群,在群里发布信息一般会带有价格,而且可以小刀,就是讲价
遇到的困难及解决方法
- 黄少勇
- 抽奖如何实现公平:兼顾发送口令多的人和少的人?选择以每条抽奖记录抽奖而不是以每个QQ号为抽奖依据
- 黄种鑫
- 怎么实现picker的滑动?框架组件Bug,在手机上完美使用,电脑上无法正常使用,弃用picker。由于时间有限,改用input输入框实现并加以格式验证
- 孔伟民
- 过滤不符合人数的算法有没有更好的选择?目前没有想到更好的想法,时间有限先完成功能参数是否要有默认值?前端会传入必要的参数,不设置默认值
- 李东权
- 怎么读取excel表格?根据具体格式是xlsx还是xls,查阅资料,选择合适的数据类型进行处理
- 林弘杰
- 怎么将数据可视化?利用python提供matplotlib模块可以很方便的将数据可视化,生成折线图,柱状图,可以很直观的了解到我们要分析数据
一句话吐槽
- 黄少勇
- 如果再给我一天,那么我明天再做。
- 黄种鑫
- 如果重新来,那么这个作业我不会用这个框架。
- 孔伟民
- 如果再给我debug,那么我的bug只会更多。
- 李东权
- 如果可以划水,那么我就要划水。
- 林弘杰
- 如果再多给我点时间,那么我的云图会更加清晰。
PSP表格
- 黄少勇
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 600 | 500 |
Development | 开发 | 500 | 350 |
Analysis | 需求分析 (包括学习新技术) | 0 | 100 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 0 | 0 |
Code Review | 代码复审 | 0 | 0 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 50 |
Reporting | 报告 | 0 | 0 |
Test Report | 测试报告 | 0 | 0 |
Size Measurement | 计算工作量 | 0 | 0 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 0 | 0 |
合计 | 600 | 500 |
- 黄种鑫
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 600 | 400 |
Development | 开发 | 500 | 250 |
Analysis | 需求分析 (包括学习新技术) | 0 | 100 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 0 | 0 |
Code Review | 代码复审 | 0 | 0 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 50 |
Reporting | 报告 | 0 | 0 |
Test Report | 测试报告 | 0 | 0 |
Size Measurement | 计算工作量 | 0 | 0 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 0 | 0 |
合计 | 600 | 500 |
- 孔伟民
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 600 | 400 |
Development | 开发 | 500 | 300 |
Analysis | 需求分析 (包括学习新技术) | 0 | 50 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 0 | 0 |
Code Review | 代码复审 | 0 | 0 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 50 |
Reporting | 报告 | 0 | 0 |
Test Report | 测试报告 | 0 | 0 |
Size Measurement | 计算工作量 | 0 | 0 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 0 | 0 |
合计 | 600 | 500 |
- 李东权
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 600 | 300 |
Development | 开发 | 500 | 150 |
Analysis | 需求分析 (包括学习新技术) | 0 | 100 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 0 | 0 |
Code Review | 代码复审 | 0 | 0 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 50 |
Reporting | 报告 | 0 | 0 |
Test Report | 测试报告 | 0 | 0 |
Size Measurement | 计算工作量 | 0 | 0 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 0 | 0 |
合计 | 600 | 500 |
- 林弘杰
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 600 | 500 |
Development | 开发 | 500 | 350 |
Analysis | 需求分析 (包括学习新技术) | 0 | 100 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 0 | 0 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 0 | 0 |
Code Review | 代码复审 | 0 | 0 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 50 |
Reporting | 报告 | 0 | 0 |
Test Report | 测试报告 | 0 | 0 |
Size Measurement | 计算工作量 | 0 | 0 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 0 | 0 |
合计 | 600 | 500 |