• 团队作业第六次—团队Github实战训练


    作业要求

    这个作业属于哪个课程 软件工程1916-W(福州大学)
    这个作业要求在哪里 团队作业第六次—团队Github实战训练
    团队名称 基于云的胜利冲锋队
    题目描述名称 搭建一个相对公平公正的抽奖系统,根据QQ聊天记录,完成从统计参与抽奖人员颁布抽奖结果的基本流程。
    这个作业的目标 提高团队协作编码的能力,熟悉github的使用
    Github地址 https://github.com/codingkai001/live-project
    其他参考文献 1.邹欣.构建之法[M].3版:人民邮电出版社,2014.

    团队阵容

    队员学号 队员姓名 个人博客地址 备注
    221500201 孙文慈 https://www.cnblogs.com/swc221500201/
    131601207 陈序展 https://www.cnblogs.com/chenxuzhan/
    221600414 冯凯 https://www.cnblogs.com/codingkai/ 队长
    221600415 傅德泉 https://www.cnblogs.com/dqblog/
    221600416 黄海山 https://www.cnblogs.com/hhs-blog/
    221600417 黄乐兴 https://www.cnblogs.com/hlxing/
    221600439 <script> https://www.cnblogs.com/aaaaaaaaaaaaaa/

    组员职责分工

    • 孙文慈:初始化前端Vue项目。博客内容编写。
    • 陈序展:安装Vue CLI,element-ui以及环境的调试。博客内容编写。
    • 冯凯:读取QQ聊天记录并且序列化成json格式;博客内容收集整理。
    • 傅德泉:将处理完的json数据进行关键字提取。博客内容编写。
    • 黄海山:GUI原型设计。博客内容编写。
    • 黄乐兴:抽奖算法的编码实现。博客内容编写。
    • <script>:前后端框架的搭建,程序功能的集成,代码调试与部署。博客内容编写。

    github 的提交日志截图

    • 创建仓库&准备阶段

    创建仓库

    • 原型设计阶段

    原型设计

    • 编码实现阶段

    编码实现

    • 修改BUG&优化阶段

    修改BUG

    程序运行截图

    源码编译

    • 从github将项目源码clone到本地
      clone
    • 切换到项目所在目录并安装
      install
    • 本地运行项目
      run

    Release启动

    https://github.com/codingkai001/live-project/releases/tag/0.1

    解压后双击index.html

    运行展示

    • 抽奖界面首页
      index
    • 设置关键字、选择聊天日期、设置奖品以及设置过滤条件
      setting
    • 根据设置筛选用户,展示抽奖结果
      show

    程序开发 / 运行环境

    • 纯前端项目,开发语言为JavaScript,使用Vue + element-ui进行开发。
    • 运行环境:Chrome 60+及以上版本。

    GUI界面

    • 首页
      index
    • 选择关键字&选择聊天日期
      set
    • 设置奖品列表、奖品个数、选择聊天记录、以及条件筛选
      set
    • 展示获奖名单
      show

    基础功能实现

    • 实现完整GUI界面:项目GUI采用Vue+element-ui实现,界面简约大方。
    • 设置抽奖事件、文案、规则
      • 在输入框中输入抽奖关键词,将自动添加到关键字Label中,可自由添加或删除。
      • 在文本框中输入抽奖活动文案。
      • 使用简洁的日历界面可以方便的修改抽奖发言时段。
      • 抽奖过滤规则
      • filter
        • 过滤掉助教和老师
        • 过滤掉不活跃的成员
      • 弹出框展示抽奖结果名单,显示获奖的成员昵称、账号和奖品,自动将已获奖的同学屏蔽,以免一个同学多次在同一个抽奖中获多个奖项。

    抽奖算法设计思路

    1. 抽奖算法
      使用多个维度设置抽奖算法,确保抽奖过程公平公正:
      • algo
      • algo
    2. 随机算法
      我们使用的伪随机数算法是XORSHIFT128+,这个算法的基本原理如下:
    uint64_t state0 = 1;
    uint64_t state1 = 2;
    uint64_t xorshift128plus() {
      uint64_t s1 = state0;
      uint64_t s0 = state1;
      state0 = s0;
      s1 ^= s1 << 23;
      s1 ^= s1 >> 17;
      s1 ^= s0;
      s1 ^= s0 >> 26;
      state1 = s1;
      return state0 + state1;
    }
    

    关于这个算法,其实现的特点是内存小、计算速度快,但不具有密码学安全性。事实上,对于抽奖,我们也不需要这个。可以阅读相关论文,我们在此不再赘述:
    Further scramblings of Marsaglia’s xorshift generators, Sebastiano Vigna, Universit`a degli Studi di Milano, Italy, http://vigna.di.unimi.it/ftp/papers/xorshiftplus.pdf

    遇到的困难及解决方法

    • 孙文慈

      • 不太会使用Vue,通过网上查找教程解决。
    • 陈序展

      • 第一次接触Vue,不懂得如何安装Vue CLI,以及进行项目的创建和插件的添加。通过查看官方文档,掌握相关方法解决。
      • 对于git命令及相关操作不熟悉。上网查看教程,学习相关命令和操作解决。
    • 冯凯

      • 在聊天记录的处理过程中,存在许多杂乱的数据,这给数据的序列化带来许多麻烦。通过数据过滤,格式调整,然后再读取数据进行序列化操作。
    • 傅德泉

    • 黄海山

      • 对墨刀原型工具运用不熟悉,通过查找墨刀设计教程,学习不熟悉的操作解决。
      • 对github命令不熟悉。通过查找网上的github教程,学习各种基本命令解决。
    • 黄乐兴

      • 抽奖的流程较为复杂,无法马上编写出一个完整的抽奖算法。解决的方法是采用迭代的开发模式,一步一步增加抽奖的功能,并且在增加功能的同时考虑代码的耦合性,尽可能地让功能模块化,方便日后的维护。
    • <script>

    团队实战总结

    由于团队成员在作业发布之后就开始组内分工,提前进行各个模块功能的开发准备,使得整个程序的开发进度比较顺利,在上机课上提前完成了作业的各项要求与程序的运行测试。因此,本次团队Github实战训练算是比较圆满地完成了任务,机会永远是留给有准备的人。

    团队成员贡献比例

    学号 分工 贡献率
    221500201 初始化前端Vue项目 7%
    131601207 安装Vue CLI,element-ui以及环境的调试 15%
    221600414 读取QQ聊天记录并且序列化成json格式 17%
    221600415 将处理完的json数据进行关键字提取 12%
    221600416 GUI原型设计 15%
    221600417 抽奖算法的编码实现 16%
    221600439 前后端框架的搭建,程序功能的集成,代码调试与部署 18%

    团队成员PSP表格

    PSP表格-孙文慈

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 60 70
    Development 开发 60 70
    • Analysis • 需求分析 (包括学习新技术) 0 0
    • Design Spec • 生成设计文档 0 0
    • Design Review • 设计复审 0 0
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 0 0
    • Design • 具体设计 0 0
    • Coding • 具体编码 40 60
    • Code Review • 代码复审 0 0
    • Test • 测试(自我测试,修改代码,提交修改) 20 10
    Reporting 报告 0 0
    • Test Report • 测试报告 0 0
    • Size Measurement • 计算工作量 0 0
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 0 0
    合计 60 70

    PSP表格-陈序展

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 120 120
    Development 开发 120 120
    • Analysis • 需求分析 (包括学习新技术) 0 0
    • Design Spec • 生成设计文档 0 0
    • Design Review • 设计复审 0 0
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 0 0
    • Design • 具体设计 0 0
    • Coding • 具体编码 100 100
    • Code Review • 代码复审 0 0
    • Test • 测试(自我测试,修改代码,提交修改) 20 20
    Reporting 报告 0 0
    • Test Report • 测试报告 0 0
    • Size Measurement • 计算工作量 0 0
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 0 0
    合计 120 120

    PSP表格-冯凯

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 180 250
    Development 开发 180 250
    • Analysis • 需求分析 (包括学习新技术) 0 0
    • Design Spec • 生成设计文档 0 0
    • Design Review • 设计复审 0 0
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 0 0
    • Design • 具体设计 0 0
    • Coding • 具体编码 120 200
    • Code Review • 代码复审 0 0
    • Test • 测试(自我测试,修改代码,提交修改) 60 50
    Reporting 报告 0 0
    • Test Report • 测试报告 0 0
    • Size Measurement • 计算工作量 0 0
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 0 0
    合计 180 250

    PSP表格-傅德泉

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 50 80
    Development 开发 50 80
    • Analysis • 需求分析 (包括学习新技术) 0 0
    • Design Spec • 生成设计文档 0 0
    • Design Review • 设计复审 0 0
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 0 0
    • Design • 具体设计 0 0
    • Coding • 具体编码 30 50
    • Code Review • 代码复审 0 0
    • Test • 测试(自我测试,修改代码,提交修改) 20 30
    Reporting 报告 0 0
    • Test Report • 测试报告 0 0
    • Size Measurement • 计算工作量 0 0
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 0 0
    合计 50 80

    PSP表格-黄海山

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    · Estimate · 估计这个任务需要多少时间 100 130
    Development 开发
    · Analysis · 需求分析 (包括学习新技术) 20 30
    · Design Spec · 生成设计文档 20 20
    · Design Review · 设计复审 20 20
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0 0
    · Design · 具体设计 10 10
    · Coding · 具体编码 30 30
    · Code Review · 代码复审 0 0
    · Test · 测试(自我测试,修改代码,提交修改) 10 10
    Reporting 报告
    · Test Repor · Test Repor 10 10
    · Size Measurement · 计算工作量 0 0
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 10 10
    合计 120 130

    PSP表格-黄乐兴

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    ? Estimate ? 估计这个任务需要多少时间 290 230
    Development 开发 270 220
    ? Analysis ? 需求分析 (包括学习新技术) 60 30
    ? Design Spec ? 生成设计文档 40 30
    ? Design Review ? 设计复审2 20 20
    ? Coding Standard ? 代码规范 (为目前的开发制定合适的规范)6 30 30
    ? Design ? 具体设计 30 30
    ? Coding ? 具体编码 80 70
    ? Code Review ? 代码复审 0 0
    ? Test ? 测试(自我测试,修改代码,提交修改) 10 10
    Reporting 报告 20 10
    ? Test Report ? 测试报告 0 0
    ? Size Measurement ? 计算工作量 0 0
    ? Postmortem & Process Improvement Plan ? 事后总结, 并提出过程改进计划 20 10
    合计 290 230

    PSP表格-<script>

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 170 150
    Development 开发 120 100
    • Analysis • 需求分析 (包括学习新技术) 0 0
    • Design Spec • 生成设计文档 0 0
    • Design Review • 设计复审 0 0
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 0 0
    • Design • 具体设计 0 0
    • Coding • 具体编码 120 100
    • Code Review • 代码复审 0 0
    • Test • 测试(自我测试,修改代码,提交修改) 20 10
    Reporting 报告 0 0
    • Test Report • 测试报告 0 0
    • Size Measurement • 计算工作量 0 0
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 0 0
    合计 140 110
  • 相关阅读:
    Django框架简介
    前端之Bootstrap
    前端之JQuery
    前端之BOM和DOM
    前端知识之js
    前端知识之CSS
    假期学习总结2-10
    假期学习总结2-9
    假期学习总结2-8
    假期学习总结2-7
  • 原文地址:https://www.cnblogs.com/CodingMaster/p/10753647.html
Copyright © 2020-2023  润新知