团队名称: 云打印
做业要求: 团队做业第一次—团队展现
做业目标:团队配合,开发项目,加强动手实践能力javascript
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
团队名称: 云打印
团队项目描述:打印资料就上云打印。
php
队员姓名 | 队员介绍 |
---|---|
陈宇 | 性格:开朗乐观,擅长的技术:擅长javaee后端开发,编程兴趣:对编程有较大的兴趣,但愿担任开发,PM等,宣言:不作代码的搬运工 |
陈迎仁 | 性格:内向;擅长的技术:会一点微信小程序,有点菜;编程兴趣:通常;但愿的软工角色:开发;少熬夜,坚定不掉发。 |
蔡森林 | 性格:随和 技术:后端python开发 兴趣:跑步 角色:开发 一句话:人生苦短,好好学习 |
陈诗娴 | 个人性格比较内向,在努力变得开朗,擅长前端web的设计,对编程的兴趣其实不大,但愿担任测试的角色。一句话宣言:学得越多就越能成功 |
蔡鸿键 | 性格:内向 技术:测试 前端html 兴趣:喜欢解bug曾被邀请参加ioccc比赛 角色:开发和测试 一句话:不作码农 |
团队的首次合照
css
团队的特点描述:
拥有妹子的团队,男生敲代码积极性很高,团队成员大部分有获奖经历,代码实践能力较强,有较强的责任心。html
团队名称: 云打印
做业要求: 团队做业第二次—项目选题报告
做业目标:团队配合,开发项目,加强动手实践能力
选题报告下载
评审表下载
演示PPT下载前端
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
云打印是一款以微信小程序为基础的在线打印服务,经过和实体打印店合做,用户能够经过微信小程序上传word,ppt,pdf等文档,后台能够经过代码计算页数而后返回给前端计算出价格,经过微信下单,付款。商家经过网页界面接单和下载文档,并进行打印和配送。java
现代生活是快节奏的生活方式,低效率的服务已经逐渐被淘汰,便利快捷的服务方式逐渐被人们所认同,而在线打印就是解决了传统的打印方式用人工打印算钱的低效率方式,利用在线支付下单,线下实体打印店打印,配送,用户只需利用微信小程序操做,无需到实体打印店排队,提升了打印店的打印效率,合理利用打印资源,提升盈业额。python
一、文档打印:用以打印用户须要打印的文档文件
二、图片打印:用以打印用户须要打印的图片
三、历史订单:用以查询用户历史打印文档或图片等消费记录
四、扫一扫:待开发mysql
一、注册登陆:微信受权登陆
二、用户信息管理:用户管理本身的帐户和我的信息linux
进入云打印的首页,有4个功能按钮,分别为文档打印,图片打印,历史订单以及扫一扫。选择文档打印或图片打印功能,进入订单填写页面,填写我的信息,上传须要打印的文档或图片以后,设置打印属性,可选单双面和黑白或者彩色打印,以后提交订单,核对订单信息,而后进入支付页面,支付成功后就提交订单到服务器,服务器会将订单实时反馈到商检的web端,商家能够在订单列表中选择订单,而后打印订单中的文档,而且根据须要安排配送人员进行资料的配送。git
一、增长图像文字识别功能,让用户随时拍照想要的文字内容,随时生成对应的文档,随时打印相应的文档,达到即拍即印的效果。
二、增长路径规划功能,用户可经过在线输入当前所在地址,系统自动匹配距离最近的打印店供用户选择,提升用户获取资料的时效。
三、增长年度帐单功能,让用户知道本年度所打印文档或图片的相关消费记录。
四、增长资源共享功能,让用户不用经过其余途径,直接经过本程序达到资源共享的效果。
本项目将传统的线下打印流程所有移植到线上,经过小程序一步完成,省去了本身去打印店打印的过程,并且线上上传要打印的文件,可选单面(双面)、黑白(彩色)打印,高度还原了打印店应有的全部服务,免去了在电脑拷贝的过程,并且不用排队,既方便了本身,商家也更加省事。还有效地避免了一些没必要要的麻烦,例如咱们常常在打印店打印资料时,可能会遇到下列问题:U盘会感染一些病毒,忘记带U盘,资料缺损。。。
在技术实现上,本项目的客户端采用了时下最流行的微信小程序,这无疑极大地方便了广大师生的打印流程,免去了安装app的麻烦,随时随地就能够下单。商家端,本项目采用了html+css+javascript语言,展示的形式为web,商家只需打开浏览器就能接单,订单列表一目了然,操做方便。
D(Delivery,推广)
队员学号 | 队员姓名 | 这次做业任务 | 贡献比例 |
---|---|---|---|
221600412 | 陈宇 | 安排任务,文档撰写,博客撰写,PPT制做,整理报告,演讲答辩,回答问题,提问 | 27% |
221600411 | 陈迎仁 | 文档撰写,问卷调查,PPT制做 | 24% |
221600401 | 陈诗娴 | 评审表撰写,文档撰写 | 19% |
221600409 | 蔡森林 | 文档撰写 | 15% |
221600408 | 蔡鸿键 | 文档撰写 | 15% |
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
云打印是一款以微信小程序为基础的在线打印服务,经过和实体打印店合做,用户能够经过微信小程序上传word,ppt,pdf等文档,后台能够经过代码计算页数而后返回给前端计算出价格,经过微信下单,付款。商家经过网页界面接单和下载文档,并进行打印和配送。
现代生活是快节奏的生活方式,低效率的服务已经逐渐被淘汰,便利快捷的服务方式逐渐被人们所认同,而在线打印就是解决了传统的打印方式用人工打印算钱的低效率方式,利用在线支付下单,线下实体打印店打印,配送,用户只需利用微信小程序操做,无需到实体打印店排队,提升了打印店的打印效率,合理利用打印资源,提升盈业额。
为了更好的了解用户需求,咱们采用了发放问卷的方式。问卷主要涵盖三个方面:我的状况调查、打印资料习惯调查和平台满意度调查以及功能需求调查。其中我的状况题1题,打印资料习惯调查4题,平台满意度调查1题,功能需求调查2题,意见反馈1题。
本着自愿的原则,咱们共邀请了142名被试者。为了使数据层次更加丰富,咱们向不一样年级的人发放了问卷,覆盖大一到大四学生。
2019年3月18日开展调查,并于3月20日完成数据的统计分析工做。
受访的142名参与者中常常去打印店打印资料的占42.96%,较多人仍是有去打印店打印资料的需求。在这142名参与者,较多人选择打印试卷、练习,比例达到86.62%,论文报告以及课件等也分别占到了60.56%、53.52%。这些打印者对于他们资料的私密性,总的来看仍是可被分享的占绝大多数。对于资料私密性要求较高的仅有25.35%。紧接着对于打印店碰到的问题,也是咱们这个平台想解决的用户痛点,大部分被调查的人都遇到了打印店人多拥挤的状况,比例占到90.85%;还有其余好比错印、多印的状况也占到52.82%;因此去打印店打印碰到的问题仍是较多的。
是否常常去打印店打印资料?
去打印店主要打印什么类型的材料?
资料的保密性如何
在打印店遇到的问题?
对于开发一个平台来解决打印者在打印店碰到的一些问题的这个想法仍是比较受到你们的欢迎以及支持;有55.63%的被调查者很是但愿有这样一个平台来解决问题,也仅仅只有4.23%的人较为不须要这个平台提供帮助。
针对平台的载体咱们进行了调查,81.69%的人更但愿经过简单的微信小程序来使用这个平台,更加便捷和方便。针对功能上除了提供在线打印和上传资料,他们还对配送提出了一些但愿的要求,好比配送费以及时效性等。固然也提到了文件的保密问题。
D(Delivery,推广)
功能部分:
一、文档打印:用以打印用户须要打印的文档文件
二、图片打印:用以打印用户须要打印的图片
三、历史订单:用以查询用户历史打印文档或图片等消费记录
四、扫一扫:待开发
一、注册登陆:微信受权登陆
二、用户信息管理:用户管理本身的帐户和我的信息
3.2 微信小程序的制做
使用微信web开发者工具进行开发小程序
3.3微信小程序所能提供的服务
进入云打印的首页,有4个功能按钮,分别为文档打印,图片打印,历史订单以及扫一扫。选择文档打印或图片打印功能,进入订单填写页面,填写我的信息,上传须要打印的文档或图片以后,设置打印属性,可选单双面和黑白或者彩色打印,以后提交订单,核对订单信息,而后进入支付页面,支付成功后就提交订单到服务器,服务器会将订单实时反馈到商检的web端,商家能够在订单列表中选择订单,而后打印订单中的文档,而且根据须要安排配送人员进行资料的配送。
一、增长图像文字识别功能,让用户随时拍照想要的文字内容,随时生成对应的文档,随时打印相应的文档,达到即拍即印的效果。
二、增长路径规划功能,用户可经过在线输入当前所在地址,系统自动匹配距离最近的打印店供用户选择,提升用户获取资料的时效。
三、增长年度帐单功能,让用户知道本年度所打印文档或图片的相关消费记录。
项目原型设计--微信小程序 (点击左边进入墨刀预览)
项目原型设计--商家端 (点击左边进入墨刀预览)
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 0 | 0 |
• Estimate | • 估计这个任务须要多少时间 | 800 | 1000 |
Development | 开发 | 0 | 0 |
• Analysis | • 需求分析 (包括学习新技术) | 60 | 90 |
• Design Spec | • 生成设计文档 | 50 | 60 |
• Design Review | • 设计复审 | 50 | 50 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 40 | 45 |
• Design | • 具体设计 | 500 | 600 |
• Coding | • 具体编码 | 0 | 0 |
• Code Review | • 代码复审 | 0 | 0 |
• Test | • 测试(自我测试,修改代码,提交修改) | 30 | 35 |
Reporting | 报告 | 30 | 30 |
• Test Report | • 测试报告 | 30 | 30 |
• Size Measurement | • 计算工做量 | 30 | 35 |
• Postmortem & Process Improvement Plan | • 过后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 850 | 1005 |
首先咱们先介绍咱们的项目是一个以微信小程序为基础的在线打印服务,能在线下单并配送至宿舍,接着向它演示如何使用在线打印,其次在说明传统的打印店模式,人多,U盘容易中毒,U盘容易丢失等问题,最后推荐它注册并使用一下小程序。
咱们程序分为小程序端和商家端 咱们小组分别对原型进行了讨论并进行了设计。
首先咱们讨论小程序的登陆注册和上传文件,接着进行了用户界面的原型设计
其次咱们讨论了商家网页端的原型设计过程。
针对调查发现 25%的资料是隐私的 75%的资料是能够公开的
能够具体实现保密配送和非保密配送。
保密配送对于客户的隐私保护是有一套规范和严格的流程的:
1. 首先用户使用小程序前要赞成用户隐私协议
二、保密文件由咱们专门的配送员派送,并会事先与您约好收货地点,这样就避免了贸然上门派件时遇到的尴尬状况;
三、在外包装上,咱们会使用统一的文件带包裹打印的文件,不会留下任何标示及产品说明。
四、使用中继号来联系配送和顾客。
安全: 将配送过程分红三方责任人
1.商家
2.配送
3.顾客
经过app进行网上登记来肯定安全责任的划分。
非隐私文件:
支持到店自取 和 打印店配送员配送至宿舍
首先完善基础功能,其次针对用户打印文件可能格式出错,和隐私问题进行针对性解决。对于打印文件的格式的问题,预期解决方案提供一个在线编辑的word文档,并在用户提交订单后后台自动把word转成pdf保持文件格式不变,或者就是用户本身上传pdf文件格式,这两种文件都能保持文件不变,针对用户隐私问题,咱们会在用户上传的文件的时候进行提醒,并独立出一个用户隐私文件打印模块,由咱们指定的商家进行打印配送。
队员学号 | 队员姓名 | 这次做业任务 | 贡献比例 |
---|---|---|---|
221600412 | 陈宇 | 安排任务,博客撰写,原型设计,问题的回答,整理问题 | 20% |
221600411 | 陈迎仁 | 小程序原型设计,问题的回答 | 19% |
221600401 | 陈诗娴 | 网页原型设计,问题的回答 | 21% |
221600409 | 蔡森林 | 小程序原型设计,问题的回答 | 22% |
221600408 | 蔡鸿键 | 网页原型设计,问题的回答 | 18% |
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
1.首先咱们组员先进行了对需求规格说明书的内容进行讨论
2.接着对这个项目的类和用况进行了分析,并进行分工
3.增改原型设计,画出类图、用例图、活动图,提交新增页面的功能设计
4.整合文档,制做PPT
队员学号 | 队员姓名 | 这次做业任务 | 贡献比例 |
---|---|---|---|
221600412 | 陈宇 | 安排任务,需求规格说明书第一部分,博客撰写,修改评审表,整理文档 | 22% |
221600411 | 陈迎仁 | 画用况图,ppt制做,答辩 | 22% |
221600401 | 陈诗娴 | 需求规格说明书第五部分,用例文本 | 19% |
221600409 | 蔡森林 | 需求规格说明书第三部分,类图 | 19% |
221600408 | 蔡鸿键 | 需求规格说明书第二部分 | 18% |
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
1.先针对上次答辩的问题进行了修改很整理
2.开始对系统设计和数据库设计的分析
3.改进类图
4.查找资料
5.组员分工
5.整理文档
6.撰写PPT
队员学号 | 队员姓名 | 这次做业任务 | 贡献比例 |
---|---|---|---|
221600412 | 陈宇 | 安排任务,系统设计说明书,数据库设计说明书,博客,PPT | 25% |
221600411 | 陈迎仁 | 数据库设计说明书,数据库设计说明书 | 23% |
221600401 | 陈诗娴 | 数据库设计说明书本 | 17% |
221600409 | 蔡森林 | 数据库设计说明书数据库设计说明书 | 20% |
221600408 | 蔡鸿键 | 数据库设计说明书 | 15% |
团队名称: 云打印
做业要求: 团队做业第六次—团队Github实战训练
做业目标:搭建一个相对公平公正的抽奖系统,根据QQ聊天记录,完成从统计参与抽奖人员颁布抽奖结果的基本流程。
Github地址:Github地址
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
队员学号 | 队员姓名 | 这次做业任务 | 贡献比例 |
---|---|---|---|
221600412 | 陈宇 | 项目管理、后端代码的编写,服务器的部署 | 23% |
221600411 | 陈迎仁 | 后端逻辑模块的编写,聊天记录过滤的处理,博客文档的编写 | 21% |
221600401 | 陈诗娴 | 编写博客文档结构,前端美工设计 | 15% |
221600409 | 蔡森林 | 附加功能的实现,数据处理与挖掘、编写附加功能部分的博客文档 | 21% |
221600408 | 蔡鸿键 | 前端代码的编写与设计 | 20% |
本项目为web项目,搭载在阿里云服务器上,web访问连接为: 项目运行地址
前端:
开发工具为PhpStorm,开发语言为Ajax、js、css、HTML,框架为boostrap;运行环境为各种浏览器(谷歌浏览器、火狐浏览器、IE6以上的IE浏览器等)
后端
开发工具为IntelliJ IDEA Ultimate,开发语言为java,框架为boostrap;运行环境为java环境
***
@RequestMapping("/draw") public ResponseData draw(String email,String name, String document, Integer winnerNum, String startTime, String endTime, String resultTime, String keyWord, Integer filterType, String award, HttpServletRequest request) throws ClientException, IOException, MessagingException { ResponseData responseData = new ResponseData(); LotteryDrawRule lotteryDrawRule=new LotteryDrawRule(LotteryDrawFilter.getFilterTypeString(filterType),keyWord,startTime, endTime,resultTime, winnerNum); //LotteryDrawFilter lotteryDrawFilter=new LotteryDrawFilter(lotteryDrawRule,"/home/QQrecord-2022.txt"); LotteryDrawFilter lotteryDrawFilter=new LotteryDrawFilter(lotteryDrawRule,"G:\\MyJavaWeb\\Luckydraw\\src\\main\\resources\\QQrecord-2022.txt"); Map<String, Integer> users = lotteryDrawFilter.doFilter(); List<User> awardUsers = LcgRandom.getResult(users,winnerNum); String str[] = award.split("\\,"); int j = 0; for(String s : str){ String awardName = s.split(":")[0]; Integer awardNum = Integer.valueOf(s.split(":")[1]); for (int i = 0; i<awardNum;i++){ if(j<awardUsers.size()){ awardUsers.get(j).setAward(awardName); j++; } } } StringBuilder awardString = new StringBuilder(); for (User u: awardUsers) { awardString.append(u.toString()+"\r\n"); } awardString.append(" "); DrawLuckResult dr = new DrawLuckResult(name,document,keyWord,startTime,endTime,resultTime,winnerNum,award, LotteryDrawFilter.getFilterTypeString(filterType),awardString.toString()); drawLuckResultDao.insert(dr); responseData.setData(dr); Thread t = new Thread(new Runnable() { @Override public void run() { try { StringBuilder sb = new StringBuilder(); for (User u: awardUsers) { sb.append(u.toString()+"</br>"); } sb.append(" "); EmailUtil.send465("中奖结果","<h1>中奖结果通知</h1></br>" + sb.toString(),email); } catch (MessagingException e) { e.printStackTrace(); } for (User u: awardUsers) { try { String name = u.getName(); String email = null; if(name.contains("(")){ email = name.substring(name.indexOf("(") +1 ,name.lastIndexOf(")")); if (!email.contains("@qq.com")){ email += "@qq.com"; } }else if(name.contains("<")){ email = name.substring(name.indexOf("<") +1 ,name.lastIndexOf(">")); } // System.out.println(email); // 为了避免打扰其余人只通知本身 if (email.contains("947205926")){ EmailUtil.send465("中奖通知","恭喜" + u.getName() + "得到" + u.getAward(),"947205926@qq.com"); } } catch (Exception e) { e.printStackTrace(); } } } }); t.start(); return responseData; }
public static List<User> getResult(Map<String, Integer> users, Integer awardNum) { Iterator it = users.entrySet().iterator(); List<User> listUser = new ArrayList<>(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String name = (String) entry.getKey(); Integer weight = (Integer) entry.getValue(); // System.out.println(name + " " + weight); listUser.add(new User(name, weight)); } Random random = new Random(); // 对全部参与的用户进行随机排序 Collections.sort(listUser, new Comparator<User>() { @Override public int compare(User o1, User o2) { return random.nextInt(2) - 1; } }); int i = 0; int size = listUser.size(); LcgRandom lcg = new LcgRandom(); List<User> awardList = new ArrayList<>(); if (size > 0) { while (i < awardNum) { int ran = lcg.nextInt(size); // 对水群的用户下降获奖权重 if (listUser.get(ran).getWeight() > 0) { listUser.get(ran).setWeight(listUser.get(ran).getWeight() - 1); } else { awardList.add(listUser.get(ran)); listUser.remove(ran); size = listUser.size(); i++; } } } return awardList; }
LCG(linear congruential generator)线性同余算法,是一个古老的产生随机数的算法。由如下参数组成:
| 参数 | m|a | c|X|
|:---- |:---|:----- |----- |----- |
|性质 |模数 |乘数 |加数 |随机数 |
|做用 |取模 |移位 |偏移 |做为结果 |
LCG算法是以下的一个递推公式,每下一个随机数是当前随机数向左移动 log2 a 位,加上一个 c,最后对 m 取余,使随机数限制在 0 ~ m-1 内
2、伪随机数算法
伪随机数产生的方法有个逼格挺高的名字---伪随机数发生器。伪随机数产生器中最最最基础的思想是均匀分布(固然这不是惟一的思路)。通常来讲,只敢说"通常来讲",由于我也不敢百分百确定,现在主流的编程语言中使用的随机数函数基本采用这种均匀分布思想,而其中最经常使用的算法就是"线性同余法"。
1. 什么是线性同余法?
线性同余法基于以下线性同余方程组
用于产生均匀型伪随机数的线性同余产生器(与上面的方程符号没有对应关系)
其中,a为"乘数",b为"增量",m为"模数",x0为"种子数"。
若是产生的是区间实在(0,1)之间的,则只须要每一个数都除以m便可,即取
2. 线性同余法产生均匀型伪随机数须要注意什么?
2.1)种子数是在计算时随机给出的。好比C语言中用srand(time(NULL))函数进行随机数种子初始化。
2.2)决定伪随机数质量的是其他的三个参数,即a,b,m决定生成伪随机数的质量(质量指的是伪随机数序列的周期性)
2.3)通常b不为0。若是b为零,线性同余法变成了乘同余法,也是最经常使用的均匀型伪随机数发生器。
3. 高性能线性同余法参数取值要求?
3.1)通常选取方法:乘数a知足a=4p+1;增量b知足b=2q+1。其中p,q为正整数。 PS:不要问我为何,我只是搬运工,没有深刻研究过这个问题。
3.2)m值得话最好是选择大的,由于m值直接影响伪随机数序列的周期长短。记得Java中是取得32位2进制数吧。
3.3)a和b的值越大,产生的伪随机数越均匀
3.4)a和m若是互质,产生随机数效果比不互质好。
反正这图我没有发现明显的规律。所以这种伪随机数在必定条件下是能够知足随机性性质的。
基本过滤:
首先经过正则表达式进行聊天记录的切割,分为用户信息和用户聊天内容;经过用户信息获取用户的ID(昵称+帐号);根据用户ID的开头进行判断是不是系统消息、助教、教师,对这三类的对象进行过滤,不参与后续的抽奖活动,实现基本过滤。
if (Pattern.matches("系统消息\\([0-9]+\\)", userID) || Pattern.matches("教师_.*\\(.*\\)", userID)|| Pattern.matches("助教_.*\\(.*\\)", userID)) { userID = null; }
不过滤
针对抽奖名单的过滤,只实现基本过滤,并不对名单进一步的进行筛选,即只去除系统消息、教师、助教这三类对象。
普经过滤
针对抽奖名单的过滤,首先实现基本过滤,去除系统消息、教师、助教这三类用户;其次针对只发表抽奖关键字的对象,也进行过滤。主要经过去除聊天记录中的关键字后,若是为空,则这条消息对应的说话人则不加入待抽奖名单。
深度过滤
针对抽奖名单的过滤,首先实现基本过滤,去除系统消息、教师、助教这三类用户;其次针对只发表抽奖关键字的对象,也进行过滤;而且对于聊天内容只有图片和抽奖关键字的对象也进行必定抽奖几率的下降,但不进行过滤。
BufferedReader bufferedReader = openFile(); //读取文件 String talkContent = null; String temp = null; while ((temp = bufferedReader.readLine()) != null) { if (textType.equals("USER_TALK_CONTENT")) { if (!(isUserInfo(temp))) { talkContent += temp; } else{ //判断发言是否有抽奖关键字 if (hasKeyWord(lotteryDrawRule.getKeyWord(), talkContent) && userID != null) { talkContentFilter(talkContent); } talkContent = null; userID = null; textType = "USER_INFO"; } } if (textType.equals("USER_INFO")) { userID = getUser(temp); if (userID != null) { //去除系统消息、教师、助教 if (Pattern.matches("系统消息\\([0-9]+\\)", userID) || Pattern.matches("教师_.*\\(.*\\)", userID) || Pattern.matches("助教_.*\\(.*\\)", userID)) { userID = null; } } textType = "USER_TALK_CONTENT"; } } //测试 for (String key : users.keySet()) { System.out.println(key + ":" + users.get(key)); } read.close(); return users;
* 过滤函数 filterType=NO_FILTER:表示不过滤;全部人参与抽奖 filterType=NORMAL_FILTER:表示普经过滤;过滤只有抽奖关键字的用户 filterType=DEEP_FILTER:表示深度过滤;过滤只有抽奖关键字的用户或下降只有图片+抽奖关键字的用户的获奖几率 */ public void talkContentFilter(String talkContent) { boolean flag = true; //判断其需不须要被过滤 int deepNum = 0; //知足深度过滤的次数 //若是为NO_FILTER;不执行任何过滤 if ((lotteryDrawRule.getFilterType().equals("NO_FILTER"))) { } else if((lotteryDrawRule.getFilterType().equals("NORMAL_FILTER"))){ //去除抽奖关键关键字 talkContent = talkContent.substring(talkContent.lastIndexOf('#')+1); //符合NORMAL_FILTER if (talkContent == null || talkContent.equals("")) { flag = false; } } else{ //去除抽奖关键关键字 talkContent = talkContent.substring(talkContent.lastIndexOf('#')+1); //符合NORMAL_FILTER if (talkContent == null || talkContent.equals("")) { flag = false; } //符合DEEP_FILTER if (talkContent.equals("[图片]") && lotteryDrawRule.getFilterType().equals("DEEP_FILTER")) { deepNum = 1; } } if (!users.containsKey(userID) && flag) { // 若是该用户id未出现过且不须要过滤 users.put(userID, deepNum); // 存入map } else if (deepNum > 0) { //若是该用户知足深度过滤的要求,就保存他的言论次数,用于计算几率时下降它的获奖权值 deepNum = (int) users.get(userID) + 1; users.put(userID, deepNum); } }
用户各时间段发言统计
总体分析用户各时间段的发言状况,统计每一个用户各个时间段的发言次数,而后以柱形图形式展示,经过柱状图咱们很容易得出用户在哪些时间段发言频率较高。
def get_time(self): times = re.findall(r'\d{2}:\d{2}:\d{2}', self.data)#提取用户发言时间哪小时 Xi = [time.split(":")[0] for time in times] sns.countplot(Xi, order=[str(i) for i in range(0, 24)]) plt.plot() plt.rcParams['font.sans-serif'] = ['SimHei'] plt.title("各时间段发言统计") plt.xlabel("时间00:00—24:00") plt.ylabel("发言次数/次") plt.savefig(r"img\hour.png", format='png') plt.close()
活跃用户的发言状况
局部分析前五名活跃用户的发言状况,统计每一个用户的发言次数,而后进行排序提取前五个活跃用户的发言状况,而后以折线图的形式展示,经过折线图咱们很容易发现这五个用户在哪些时间段发言频率较高。
def get_active(self): str_list = re.findall(r'\d{2}:\d{2}:\d{2} .*?\n', self.data) chat = {} i = 0 for string in str_list:#提取用户昵称及其发言的时间段分布 size = len(string) - 1 dict2 = {} if string[9:size] != "系统消息(10000)": if not chat.__contains__(string[9:size]): i = i + 1 dict2[string[0:2]] = 1 chat[string[9:size]] = dict2 else: if not chat[string[9:size]].__contains__(string[0:2]): chat[string[9:size]][string[0:2]] = 1 else: chat[string[9:size]][string[0:2]] = chat[string[9:size]][string[0:2]] + 1 dict3 = {} for key, dic in chat.items():#降序排序统计用户活跃状况 count = 0 for val in dic.values(): count += val dict3[key] = count result = dict(sorted(dict3.items(), key=operator.itemgetter(1), reverse=True)) colors = ['red', 'green', 'blue', 'orange', 'black'] Xi = [str(k) for k in range(0, 24)] i = 0 for key in result.keys():#遍历前五名活跃用户的发言状况 if i >= 5: break Yi = [] for j in range(0, 24): Yi.append(0) for key2 in chat[key].keys(): Yi[int(key2)] = chat[key][key2] plt.plot(Xi, Yi, color=colors[i], label=key) i = i + 1 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.xticks(range(len(Xi))) plt.legend() plt.title("活跃用户统计") plt.xlabel("时间00:00—24:00") plt.ylabel("发言次数/次") plt.savefig(r"img\active.png", format='png') plt.close()
分析聊天记录有效关键词
对用户聊天记录进行有效关键词提取与分析,而后对这些关键词进行整合分析,绘出词云图,经过词云图咱们很容易得出,聊天记录中哪些关键词使用频率较高。
def get_wordcloud(self): pattern = re.compile(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} .*?\(\d+\)\n(.*?)\n', re.DOTALL) contents = re.findall(pattern, self.data) word_list = [] for sentence in contents: sentence = sentence.replace("[表情]", "").replace("[图片]", "").replace("@全体成员", "") if sentence != "" and not sentence.__contains__("撤回了一条消息") and not sentence.__contains__("加入本群。") and \ not sentence.__contains__('长按复制此消息,打开最新版支付宝就能领取!') and not sentence.__contains__('请使用新版手机QQ查收红.'): word_list.append(" ".join(jieba.cut(sentence.strip()))) new_text = " ".join(word_list) wordcloud = WordCloud(background_color="white", width=1200, height=1000, min_font_size=50, font_path="simhei.ttf", random_state=50, ) my_wordcloud = wordcloud.generate(new_text) plt.imshow(my_wordcloud) plt.axis("off") wordcloud.to_file(r'img\wordcloud.png')
实验结果以下
PlusA.txt聊天记录数据分析
PlusB.txt聊天记录数据分析
一、思路分析
经过接受服务器传来的获奖名单json数据,而后对json字符串进行相应的处理,提取出获奖者的昵称,QQ号或邮箱和奖品名称,而后对相应的模块进行绘画,生成海报图。
header = '[云打印抽奖] QQ互动' title = '2019年4月QQ互动获奖名单' chapter = ['昵称', 'QQ号', '奖品'] string = '恭喜以上获奖的同窗,咱们将在近期发出本次活动的奖励,请有获奖的同窗注意关注本平台抽奖动态,感谢您的参与,谢谢!' n = 19 foot = [string[i:i + n] for i in range(0, len(string), n)] # 设置字体和颜色 font_type = r'font\my_font.ttc' header_font = ImageFont.truetype(font_type, 40) title_font = ImageFont.truetype(font_type, 23) chapter_font = ImageFont.truetype(font_type, 25) email_font = ImageFont.truetype(font_type, 18) list_font = ImageFont.truetype(font_type, 24) foot_font = ImageFont.truetype(font_type, 20) header_color = '#FFFFFF' title_color = '#EE0000' chapter_color = '#CD3333' list_color = '#EE2C2C' foot_color = '#EE3B3B' # 设置图片 img = 'img/mode.png' new_img = 'img/scholarship.png' image = Image.open(img) draw = ImageDraw.Draw(image) width, height = image.size # header header_x = 38 header_y = 880 draw.text((header_x, height - header_y), u'%s' % header, header_color, header_font) # title title_x = header_x + 30 title_y = header_y - 140 draw.text((title_x, height - title_y), u'%s' % title, title_color, title_font) # chapter chapter_x = title_x - 20 chapter_y = title_y - 40 draw.text((chapter_x, height - chapter_y), u'%s' % chapter[0], chapter_color, chapter_font) draw.text((chapter_x + 140, height - chapter_y), u'%s' % chapter[1], chapter_color, chapter_font) draw.text((chapter_x + 270, height - chapter_y), u'%s' % chapter[2], chapter_color, chapter_font) # 获取student_list data = sys.argv[1] contents = data.split('\\r\\n') student_list = [] size = len(contents) - 1 for i in range(0, size): item = [] if contents[i].__contains__('):'): nick_name = re.findall(r'(.*?)\(', contents[i]) elif contents[i].__contains__('>:'): nick_name = re.findall(r'(.*?)<', contents[i]) if contents[i].__contains__('):'): qq = re.findall(r'\((.*?)\)', contents[i]) elif contents[i].__contains__('>:'): qq = re.findall(r'<(.*?)>', contents[i]) reward = re.findall(r':(.*?),', contents[i]) item.append(nick_name[0]) item.append(qq[0]) item.append(reward[0]) student_list.append(item) list_x = chapter_x - 20 list_y = chapter_y - 40 for student in student_list: for i in range(0, len(student)): if student[i].__contains__('@'): draw.text((list_x + i * 140, height - list_y), u'%s' % student[i], list_color, email_font) else: draw.text((list_x + i * 140, height - list_y), u'%s' % student[i], list_color, list_font) list_y = list_y - 40 #footer foot_x = chapter_x - 30 foot_y = list_y - 40 for i in range(0, len(foot)): foot_y = foot_y - 40 draw.text((foot_x, height - foot_y), u'%s' % foot[i], foot_color, foot_font) draw.text((chapter_x + 30, height - (foot_y - 40)), u'%s(云打印)' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), foot_color, foot_font) image.save(new_img, 'png')
二、实验结果以下
增长了对中奖学生的邮件提醒,经过处理聊天记录中的用户信息,获取用户的邮箱信息好比qq邮箱,实现对中奖用户的邮件提醒,提升用户的体验。
public class EmailUtil { // 发件人 帐号和密码 public static final String MY_EMAIL_ACCOUNT = "cy947205926@163.com"; public static final String MY_EMAIL_PASSWORD = "**********";// 密码,是你本身的设置的受权码 public static void send465(String subject,String content,String receiveEmail) throws AddressException, MessagingException { Properties p = new Properties(); p.put("mail.smtp.ssl.enable", true); p.setProperty("mail.smtp.host", MEAIL_163_SMTP_HOST); p.setProperty("mail.smtp.port", "465"); p.setProperty("mail.smtp.socketFactory.port", SMTP_163_PORT); p.setProperty("mail.smtp.auth", "true"); p.setProperty("mail.smtp.socketFactory.class", "SSL_FACTORY"); Session session = Session.getInstance(p, new Authenticator() { // 设置认证帐户信息 @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(MY_EMAIL_ACCOUNT, MY_EMAIL_PASSWORD); } }); session.setDebug(true); MimeMessage message = new MimeMessage(session); // 发件人 message.setFrom(new InternetAddress(MY_EMAIL_ACCOUNT)); // 收件人和抄送人 message.setRecipients(Message.RecipientType.TO, receiveEmail); // 内容(这个内容还不能乱写,有可能会被SMTP拒绝掉;多试几回吧) message.setSubject(subject); message.setContent("<h1>"+ content +"</h1>", "text/html;charset=UTF-8"); message.setSentDate(new Date()); message.saveChanges(); Transport.send(message); } }
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 20 |
Estimate | 估计这个任务须要多少时间 | 10 | 10 |
Development | 开发 | 200 | 320 |
Analysis | 需求分析 (包括学习新技术) | 60 | 120 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 20 | 30 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 160 | 210 |
Code Review | 代码复审 | 20 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 120 |
Reporting | 报告 | 30 | 40 |
Test Repor | 测试报告 | 0 | 0 |
Size Measurement | 计算工做量 | 10 | 10 |
Postmortem & Process Improvement Plan | 过后总结, 并提出过程改进计划 | 15 | 20 |
合计 | 575 | 960 |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 10 |
Estimate | 估计这个任务须要多少时间 | 10 | 10 |
Development | 开发 | 160 | 220 |
Analysis | 需求分析 (包括学习新技术) | 60 | 150 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 5 | 5 |
Design | 具体设计 | 0 | 0 |
Coding | 具体编码 | 120 | 160 |
Code Review | 代码复审 | 30 | 80 |
Test | 测试(自我测试,修改代码,提交修改) | 40 | 140 |
Reporting | 报告 | 40 | 120 |
Test Repor | 测试报告 | 0 | 0 |
Size Measurement | 计算工做量 | 10 | 10 |
Postmortem & Process Improvement Plan | 过后总结, 并提出过程改进计划 | 15 | 20 |
合计 | 500 | 925 |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 5 | 10 |
Estimate | 估计这个任务须要多少时间 | 0 | 0 |
Development | 开发 | 60 | 60 |
Analysis | 需求分析 (包括学习新技术) | 20 | 40 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 0 | 0 |
Design | 具体设计 | 60 | 60 |
Coding | 具体编码 | 60 | 60 |
Code Review | 代码复审 | 10 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 15 |
Reporting | 报告 | 10 | 15 |
Test Repor | 测试报告 | 0 | 0 |
Size Measurement | 计算工做量 | 0 | 0 |
Postmortem & Process Improvement Plan | 过后总结, 并提出过程改进计划 | 10 | 10 |
合计 | 245 | 280 |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 60 |
Estimate | 估计这个任务须要多少时间 | 150 | 300 |
Development | 开发 | 120 | 300 |
Analysis | 需求分析 (包括学习新技术) | 40 | 100 |
Design Spec | 生成设计文档 | 20 | 40 |
Design Review | 设计复审 | 30 | 100 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 20 |
Design | 具体设计 | 40 | 80 |
Coding | 具体编码 | 120 | 300 |
Code Review | 代码复审 | 30 | 150 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 90 |
Reporting | 报告 | 20 | 20 |
Test Repor | 测试报告 | 20 | 10 |
Size Measurement | 计算工做量 | 15 | 30 |
Postmortem & Process Improvement Plan | 过后总结, 并提出过程改进计 | 775 | 1640 |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 30 |
Estimate | 估计这个任务须要多少时间 | 120 | 300 |
Development | 开发 | 120 | 300 |
Analysis | 需求分析 (包括学习新技术) | 40 | 80 |
Design Spec | 生成设计文档 | 20 | 20 |
Design Review | 设计复审 | 20 | 120 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 20 |
Design | 具体设计 | 30 | 60 |
Coding | 具体编码 | 120 | 300 |
Code Review | 代码复审 | 30 | 120 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 60 |
Reporting | 报告 | 20 | 20 |
Test Repor | 测试报告 | 20 | 10 |
Size Measurement | 计算工做量 | 15 | 30 |
Postmortem & Process Improvement Plan | 过后总结, 并提出过程改进计划 | 20 | 40 |
合计 | 645 | 1510 |
团队名称: 云打印
做业要求: Alpha代码规范、冲刺任务与计划
做业目标:代码规范、冲刺任务与计划。
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
后端采用Springboot编写 java代码规范我一直是用阿里云java开发手册上的要求。(有些浏览器可能不支持pdf在线预览,那就只能直接下载,我正常使用的都是Google浏览器)
阿里巴巴Java开发手册记念版.pdf在线预览
代码规范参考阿里巴巴Java开发手册记念版:
【强制】代码中的命名均不能如下划线或美圆符号开始,也不能如下划线或美圆符号结束。
反例:_name / name / $name / name_ / name$ / name
【强制】代码中的命名严禁使用拼音与英文混合的方式,更不容许直接使用中文的方式。
说明:正确的英文拼写和语法可让阅读者易于理解,避免歧义。注意,即便纯拼音命名方式也要避免采用。国际通用的名称,可视同英文。
反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3
【强制】类名使用 UpperCamelCase 风格,但如下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须听从驼峰形式。
正例: localValue / getHttpMessage() / inputUserId
【强制】常量命名所有大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
正例:MAX_STOCK_COUNT
反例:MAX_COUNT
【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。
【强制】包名统一使用小写,点分隔符之间有且仅有一个天然语义的英语单词。包名统一使用单数形式,可是类名若是有复数含义,类名能够使用复数形式。
正例:应用工具类包名为 com.alibaba.ai.core.util、类名为 MessageUtils(此规则参考 spring 的框架结构)
【强制】杜绝彻底不规范的缩写,避免望文不知义。
反例:AbstractClass“缩写”命名成AbsClass;condition“缩写”命名成 condi,此类随 意缩写严重下降了代码的可阅读性。
【推荐】为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽可能完整的单词组合来表达其意。
正例:在 JDK 中,表达原子更新的类名为:AtomicReferenceFieldUpdater。
反例:变量 int a 的随意命名方式。
【强制】大括号的使用约定。若是是大括号内为空,则简洁地写成{}便可,不须要换行;若是是非空代码块则:
左大括号前不换行。
左大括号后换行。
右大括号前换行。
右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
【强制】if/for/while/switch/do 等保留字与括号之间都必须加空格。
【强制】采用 4 个空格缩进,禁止使用 tab 字符。
【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容/格式,不得使用 // xxx 方式。
说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 能够正确输出相应注释;在 IDE 中,工程调用方法时,不进入方法便可悬浮提示方法、参数、返回值的意义,提升阅读效率。
【强制】全部的抽象方法(包括接口中的方法)必需要用 Javadoc 注释、除了返回值、参数、异常说明外,还必须指出该方法作什么事情,实现什么功能。
说明:对子类的实现要求,或者调用注意事项,请一并说明。
【强制】全部的类都必须添加建立者和建立日期。
【强制】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释 使用/ */注释,注意与代码对齐。
【强制】全部的枚举类型字段必需要有注释,说明每一个数据项的用途。
【推荐】与其“半吊子”英文来注释,不如用中文注释把问题说清楚。专有名词与关键字保持英文原文便可。
反例:“TCP链接超时”解释成“传输控制协议链接超时”,理解反而费脑筋。
【推荐】代码修改的同时,注释也要进行相应的修改,尤为是参数、返回值、异常、核心逻辑等的修改。
说明:代码与注释更新不一样步,就像路网与导航软件更新不一样步同样,若是导航软件严重滞后,就失去了导航的意义。
一、变量名称用先小写后大写命名,如:maxStudy
二、前后端数据变量一导致用后端命名方式
三、若在小范围的命名变量中使用三个字母的命名,如:msg
四、避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不该直接使用数字,必须用有意义的静态变量来代替。
五、不要使用难懂的技巧性很高的语句,除非颇有必要时。说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。
六、css、js语句代码后加“ ; ”断句
七、使用空行来分割逻辑
任务 | 内容 | 时间 |
---|---|---|
第一天 | 阅读代码规范,安装相应的环境 | 4.24 |
次日 | 完成微信小程序登陆受权 | 4.25 |
第三天 | 完成微信小程序上传文件 | 4.26 |
第四天 | 完成后台计算页数 | 4.27 |
第五天 | 学习微信支付接口 | 4.28 |
第六天 | 完成小程序微信支付接口 | 4.29 |
第七天 | 后端和小程序和微信支付对接 | 4.30 |
第八天 | 完成商家端接单和查看订单 | 5.1 |
第九天 | 整合代码,测试程序 | 5.2 |
第十天 | 发布Alpha版本程序 | 5.3 |
第十一天 | 发布一篇冲刺总结随笔,描述项目预期计划、现实进展、过程体会、组员分工及在Alpha阶段的工做量比例、下阶段展望。 | 5.4 |
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
阅读代码规范,你们一块儿安装好相应的环境,规划好每一个人的任务
第一次安装环境遇到了好多问题,你们对敏捷开发的规划、设计方式也都不太熟悉
已经安装好环境,能够准备着手开发了,但愿不要常常熬夜
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
完成微信小程序登陆受权、微信小程序登陆受权后台的相应开发和部分GUI界面
调试,运行网页代码操做不流畅
刚开始还没遇到很难的问题,查找资料把问题都解决了,但愿后续任务也能这样
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
完成微信小程序上传文件、后端上传文件的接口和相应的小程序界面
搭建测试环境的时候出现bug、上传文件字符编码有些问题、按原型设计编写CSS比较困难
你们都专一于各自的部分,按时完成了当天的任务,在这种氛围下敲代码也颇有动力
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
完成后台计算页数,后端计算word页数,调用第三方库进行转pdf和相应的小程序界面
在linux上转pdf很困难,计算word页数出现不许确
一边自学一边完成任务,你们都好棒啊!
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
完成后端微信支付接口、相应的小程序界面,并实现成功的调用
微信支付须要企业认证、须要押金,不了解微信支付接口
认真的组长开始协调任务进度,看进度根据时间稳步增加,颇有继续作下去的动力
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
完成小程序微信支付接口、后端微信支付回调接口和加密算法的实现
微信支付验证流程比较麻烦,请求支付的接口加密算法不熟悉,回调接口须要解密
你们各部分的进度都达到预期,感受很快就能够对接了
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
完成后端和小程序和微信支付对接、填写订单信息页面以及交互
将各部分对接遇到了不少问题
熬夜一时爽,一直熬夜一直爽。。。
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ |
| 221600408 |蔡鸿键 |https://www.cnblogs.com/jichiwoyaochi/||
完成商家端接单和查看订单、后端商家端接口、打印属性选择的页面,订单确认页面以及数据交互
Web和后端跨域有些问题,拒绝访问
快结束了,再肝一下
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
整合代码,优化代码,测试程序
整合代码时出现问题,导入bootstrap框架比较麻烦
快结束了,你们最后肝一次
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标: 完成项目Alpha版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
发布Alpha版本程序
服务器和windows环境不同,部署时容易出问题,有些代码整合在一块儿报错
终于完成了alpha冲刺,感恩!
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
测试用例文档下载
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
模块 | 测试人 | 测试内容 |
---|---|---|
单元测试 | 陈宇、陈迎仁、陈诗娴、蔡森林、蔡鸿键 | 各自编写的代码的覆盖率 |
界面测试 | 陈迎仁、蔡鸿键 | 测试界面的布局和易用性 |
功能测试 | 陈宇、蔡森林 | 测试功能的正确性 |
数据库测试 | 陈迎仁 | 测试数据库接口和性能 |
总体测试 | 陈宇、陈诗娴 | 测试系统总体的使用是否正常 |
模块 | 测试工具 |
---|---|
单元测试 | Junit |
界面测试 | Instrumentation |
功能测试 | Jprofile |
数据库测试 | mysqlslap |
课程名称:软件工程1916|W(福州大学)
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标:Alpha冲刺总结随笔
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ |
小程序端代码Github地址
商家端代码Github地址
后端代码Github地址
项目预期计划 | 现实进展 |
---|---|
阅读代码规范,安装相应的环境和开发者工具 | 100% |
微信小程序登陆受权,后端相应的开发 | 100% |
后端上传文件的接口,进行相应的测试 | 99% |
后端计算word页数,调用第三方库进行转pdf和进行计算页数 | 100% |
学习微信支付接口 ,后端微信支付接口,督促队友 | 97% |
微信支付接口,后端微信支付回调接口,协调任务进度 | 98% |
后端和小程序和微信支付对接,督促队友完成相应的开发 | 98% |
商家端接单和查看订单,后端商家端接口,商家端的部分GUI | 97% |
整合代码,测试程序,协调队友完成相应的开发 | 99% |
发布Alpha版本程序 | 100% |
陈宇(组长)
在Alpha冲刺,我学到了如何更高效的管理团队,和协调团队成员之间的关系,明确天天本身的任务,当天的代码当天测试,多和组员沟通,及时了解队员的难处,五一放假都在忙此次的Alpha冲刺,虽然很累但也很充实,
最后咱们团队也按预期完成了任务。在开发过程当中也踩了不少坑,也常常熬夜,历尽了千辛万苦终于完成了Alpha冲刺,但愿咱们的团队能在Beta作得更好。
陈诗娴
这一次任务感受时间很是紧,组长在第一天就分配了天天应完成的任务进度,明确本身天天要完成的工做,我为了赶进度天天都要自主学习新知识并完成当天的工做,这一次放假也基本上都在忙项目了。这一次任务咱们终于在上课前搞完了,虽然很累,但也感受很充实,颇有成就感,在此次任务中也学到了不少新的知识,还会继续努力的。
蔡鸿键
第一次你们在一块儿作一个项目,由于什么都不会,感受拖累了你们。还好你们耐心的帮助我,让我感觉到了一我的写代码无聊与你们一块儿写代码的乐趣
蔡森林
在Alpha冲刺过程当中,我学到了不少东西,开始接触开发微信小程序,虽然本身能作得很少,只是对界面上的小修小补和一些功能测试,但愿在接下来的时间里,多学习一些微信小程序开发的相关知识,在Beta冲刺阶段能为个人团队多作贡献。
陈迎仁
在Alpha冲刺中,学到了不少和小程序相关的知识,先是文件上传界面,接着是微信支付,还有一些七七八八的配置,这个阶段虽然很累可是也很充实,但愿本身接下来能作得更好,少熬夜。
学号 | 姓名 | 任务 | 百分比 |
---|---|---|---|
221600412 | 陈宇(队长) | 后端开发,任务安排,撰写博客 | 22% |
221600401 | 陈诗娴 | 美工,撰写博客 | 17% |
221600408 | 蔡鸿键 | 商家web端开发 | 20% |
221600409 | 蔡森林 | 微信小程序界面美化及测试,撰写博客 | 19% |
221600411 | 陈迎仁 | 微信小程序 | 22% |
总结经验教训,事先明确分工任务,作好计划安排。针对Alpha冲刺遗留的问题,进一步完善项目结构与功能。尤为是一些接口问题,常常会出现bug问题,须要进一步再优化。在下阶段的Beta冲刺过程当中,但愿能够充分调动组员的积极性,多进行交流讨论,把咱们的项目作得更好。
# alpha冲刺过后诸葛亮(团队)
课程名称:软件工程1916|W(福州大学)
团队名称: 云打印
做业要求: 项目Alpha冲刺(团队)
做业目标:完成Alpha冲刺的过后诸葛亮
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鸿键 | https://www.cnblogs.com/jichiwoyaochi/ | 转出 |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ | 转入 |
1.咱们的软件要解决什么问题?是否认义得很清楚?是否对典型用户和典型场景有清晰的描述?
咱们软件主要解决传统线下打印的一些弊端,好比线下打印店人多拥挤、排队时间长,U盘中毒、丢失,对打印机不熟悉错印多印,商家须要时刻关注各台打印机的打印情况等传统弊端。对软件功能的定位是很清晰的。主要针对目前大学生的打印场景以及目前大学生的群体进行了清晰的调查,经过问卷和实地考察,进行清晰的描述。
2.咱们达到目标了么(原计划的功能作到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
微信小程序端原计划主要实现5个大功能模块:文件打印、图片打印、联系客服、联系商家、扫一扫;每一个大功能模块下还划分了许多子功能,好比文件上传、微信支付、订单列表、订单填写;按照原计划a阶段实现了主功能文件上传以及微信支付即文件打印功能。原计划达到的用户数尚未达到。
3.和上一个阶段相比,团队软件工程的质量提升了么? 在什么地方有提升,具体提升了多少,如何衡量的?
团队软件工程的质量提升了,对于整个软件的开发以及管理和计划的把握上有了必定的提升,从没有计划的建瓦房达到了有图纸有规划的建平楼,经过开发的软件项目质量以及开发过程当中对问题的处理以及初始的计划安排状况来衡量
4.用户量, 用户对重要功能的接受程度和咱们事先的预想一致么? 咱们离目标更近了么?
用户量离预期还有较大的距离,用户对文件打印功能的接受程度与事先的预想相差很少,但在一些细节上还不够完善,还须要进一步改进。
5.有什么经验教训? 若是历史重来一遍, 咱们会作什么改进?
经验教训:初期只是规划在10天内完成的一系列功能,粗糙地 安排天天的工做量,可是在后面的执行欠缺更加严格的监督,致使其中一两天耽搁,没有按照预期的进度去作,还好后面几天加班完成预期功能。经过这个教训,感觉到应该严格监督天天的进度。若是从新来一遍,咱们会更加合理的安排人员以及时间,清晰划分每一个任务的deadline,严格监督天天进度。
1.是否有充足的时间来作计划?
作计划上的时间仍是挺充足的,作好计划,有助于工程的顺利进行。
2.团队在计划阶段是如何解决同事们对于计划的不一样意见的?
当遇到不一样意见时,咱们主要采用投票表决,决策出最优方案。
3.你原计划的工做是否最后都作完了? 若是有没作完的,为何?
大部分任务如期完成,未作完的部分由于突发缘由或技术问题影响工程的进度。
4.有没有发现你作了一些过后看来不必或没多大价值的事?
这个却是没有遇到。
5.是否每一项任务都有清楚定义和衡量的交付件?
每一项任务基本都有明确的目标。
6.是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为何没有估计到?
项目未彻底按照计划进行,中间由于某些技术上的问题,致使进度有些落后。对于风险的问题,这个却是没考虑到。
7.在计划中有没有留下缓冲区,缓冲区有做用么?
咱们计划中留有必定的缓存区,某种程度上较好地弥补落下的工做。
8.未来的计划会作什么修改?(例如:缓冲区的定义,加班)
根据技术上的难度适当调整天天的工做量。
9.咱们学到了什么? 若是历史重来一遍, 咱们会作什么改进?
在这个过程当中,咱们学到了微信小程序开发的相关技术,先后端交互的问题解决能力以及开发过程当中遇到的种种问题的解决经验等
1.咱们有足够的资源来完成各项任务么?
技术资源不够,须要边学习边开发,工做量大,压力大。
2.各项任务所需的时间和其余资源是如何估计的,精度如何?
主要按照工程中功能实现的难易程度进行估计,精度上还须要进一步改进。
3.测试的时间,人力和软件/硬件资源是否足够? 对于那些不须要编程的资源 (美工设计/文案)是否低估难度?
测试时间不够,人力和软硬件资源凑凑有余,对于美工、文案设计确实低估了工程难度,在界面设计中遇到了许多问题。
4.你有没有感到你作的事情可让别人来作(更有效率)?
这个却是没有,本身正在作的事情本身比较熟悉,忽然交付给别人来作,须要花费时间跟他交流讨论,才能真正交接,这样效率反而不高。
5.有什么经验教训? 若是历史重来一遍, 咱们会作什么改进?
代码复用性不是很好,后期修改的工做量大,若是能够再来一次的话,咱们打算对代码进行重构,提升代码复用性和整洁性。
1.每一个相关的员工都及时知道了变动的消息?
收到变动通知后,咱们及时和组员进行了沟通和交流,保证了消息的时效性,让组员第一时间收到通知。
2.咱们采用了什么办法决定“推迟”和“必须实现”的功能?
根据这个功能对软件的必要性和开会讨论。
3.项目的出口条件(Exit Criteria – 什么叫“作好了”)有清晰的定义么?
在前面的需求分析报告,和系统分析报告中有比较清晰的定义。
4.对于可能的变动是否能制定应急计划?
没有,全靠熬夜加班。
5.员工是否可以有效地处理意料以外的工做请求?
在alpha冲刺中没有遇到意料以外的工做请求。
6.咱们学到了什么? 若是历史重来一遍, 咱们会作什么改进?
保证消息的时效性,制定好应急计划。
1.设计工做在何时,由谁来完成的?是合适的时间,合适的人么?
设计是在初期原型设计的时候由团队多名队员一块儿完成的,是合适的时间,合适的人。
2.设计工做有没有碰到模棱两可的状况,团队是如何解决的?
有,会团队一块儿讨论把模棱两可的地方肯定。
3.团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其余工具来帮助设计和实现?这些工具备效么? 比较项目开始的 UML 文档和如今的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
4.什么功能产生的Bug最多,为何?在发布以后发现了什么重要的bug? 为何咱们在设计/开发的时候没有想到这些状况?
5.代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
6.咱们学到了什么? 若是历史重来一遍, 咱们会作什么改进?
1.团队是否有一个测试计划?为何没有?
有。
2.是否进行了正式的验收测试?
进行了。
3.团队是否有测试工具来帮助测试?
有,如Junit等。
4.团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工做有用么?应该有哪些改进?
有用Jprofile对软件的功能进行测试。有用,确保了软件功能的正确性。
5.在发布的过程当中发现了哪些意外问题?
6.咱们学到了什么? 若是重来一遍, 咱们会作什么改进?
1.团队的每一个角色是如何肯定的,是否是人尽其才?
每一个成员负责本身擅长的部分,充分发挥团员的优势。
2.团队成员之间有互相帮助么?
有
3.当出现项目管理、合做方面的问题时,团队成员如何解决问题?
团队一块儿沟通讨论
每一个成员明确公开地表示对成员帮助的感谢 (而且写在各自的博客里):
陈宇
感谢chj在完成先后端的任务中给与个人帮助,即便离开了团队也继续完成了前端的任务。
陈迎仁
我感谢cy同窗对个人帮助, 由于在出现的一些bug的时候都是他和我一块儿克服,还指导我学习java后端。
蔡鸿键
我感谢cy对个人帮助,由于某个具体的事情: 帮我一步一步改BUG。
蔡森林
我感谢cyr对个人帮助,由于某个具体的事情: 他让我开始接触和开发微信小程序。
陈诗娴
我感谢cy同窗对个人帮助,由于某个具体的事情:冲刺阶段写代码遇到bug帮我找缘由和修改方法。
1.你以为团队目前的状态属于 CMM/CMMI 中的哪一个档次?
可重复级(Repeatable)档次。
2.你以为团队目前处于 萌芽/磨合/规范/创造 阶段的哪个阶段?
从磨合到规范的阶段。
3.你以为团队在这个里程碑相比前一个里程碑有什么改进?
代码规范度更高,配合也更默契。
4.你以为目前最须要改进的一个方面是什么?
增长团队成员的配合度。
5.其它软件工具的应用,应该如何提升?
参考网络上的教程自学,或请求掌握该工具使用的同窗的指导。
6.项目文档的质量如何提升?
参考网络中优秀的项目文档是怎么写的。
工做交接:
1,传给新成员原成员写的源码,由于原成员是web端,因此咱们把全部的HTML+CSS+JS的网页代码交给他。
2,由于新成员学习过基本的WEB知识,就不用另行学习。
3,由原成员带新成员学习web使用的框架。
4,因为新成员是作UI的,会帮派一些UI图标优化。
培养计划
1,温习基础HTML+CSS+JS知识
2,由原成员带新成员浏览代码,学习框架,并运用
3,使新成员了解接下来的项目需求,提出本身的看法,使加快融入小组
4,由先后端同窗交流接口,使之理解数据交付,熟悉AJAX和DOM原理等
5,自我界面美感优化
讨论的照片
课程名称:软件工程1916|W(福州大学)
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标:Beta冲刺
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
没人想当。
在Alpha阶段中团队的分工仍是比较明确,可是开发比较分散,虽然沟通都比较及时可是队员不能及时处理出现的问题,会出现拖拉现象。在Beta阶段,咱们团队成员一块儿开发,及时沟通和解决问题提升效率。
目前没有比较须要改进的工具和流程
任务 | 内容 | 时间 |
---|---|---|
第一天 | 完善文件上传接口 | 5.23 |
次日 | 文件下载 | 5.24 |
第三天 | 增长订单优先级 | 5.25 |
第四天 | 增长装订属性 | 5.26 |
第五天 | 商家接单,完成订单 | 5.27 |
第六天 | 修改了后端的代码,完善服务 | 5.28 |
第七天 | 美化商家网页端界面,完善小程序端的界面 | 5.29 |
用户试用的调查报告 | 用户试用,完成一份用户试用的调查报告。 | 5.31 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
蔡森林
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 24 | 队长 |
221600411 | 陈迎仁 | 23 | |
221600409 | 蔡森林 | 21 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 16 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 24 | 队长 |
221600411 | 陈迎仁 | 23 | |
221600409 | 蔡森林 | 21 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 16 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
添加优先级功能
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 24 | 队长 |
221600411 | 陈迎仁 | 23 | |
221600409 | 蔡森林 | 21 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 16 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 25 | 队长 |
221600411 | 陈迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 13 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 25 | 队长 |
221600411 | 陈迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 13 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 25 | 队长 |
221600411 | 陈迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 13 |
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标: 完成项目Beta版本
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
队员学号 | 队员姓名 | 比例 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 25 | 队长 |
221600411 | 陈迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陈诗娴 | 16 | |
221600307 | 李姣 | 13 |
微信小程序---云打印
云打印是一款以微信小程序为基础的在线打印服务,经过和实体打印店合做,用户能够经过微信小程序上传pdf文档,后台能够经过代码计算页数而后返回给前端计算出价格,经过微信下单,付款。商家经过网页界面接单和下载文档,并进行打印和配送。
用户随时随地能够进行文件资料在线打印,享受配送等快捷服务。
- 测试对象:福州大学全校学生
- 测试时间:2019.05.30-2019.05.31
(测试对象主要是在校大学生,在此简单列几个测试对象)
一、福州大学数计学院学生 女
优势: 界面简洁明了,布局也比较合理,可选的打印属性基本具有,基本知足咱们学生文档打印需求,用起来挺方便的。
缺点: 若是能多增长其余格式的文档打印功能,那就更好了。
二、福州大学数计学院学生 男
优势: 界面简单明了,功能基本能够达到,用起来很是方便,不用排队,能够省掉好多时间。
缺点: 界面若是加一些好看的背景会更好看。
三、福州大学经管学院学生 男
优势: 界面风格简约,功能还行,能实现文件的在线打印,用起来很方便。以前去打印店打印文件,常常习惯性忘记U盘,经过这个小程序,能够大大避免U盘的丢失,还不错。
缺点: 要是能增长一些表格文件打印功能就更好了。
四、福州大学外国语学院学生 女
优势: 界面还不错,打印功能基本能实现,常常我每次去打印文件,老是出错,要打印双面,忘记单击向左翻页,结果打印成单面,好气呀。若是用在线打印文件,将能帮我省掉许多没必要要的麻烦,挺好用。
缺点: 主要是图片打印功能没实现,要是能实现会更好。
五、福州大学电气学院学院学生 男
优势: 界面还不错,功能也还能够,重要的是能帮我省掉好多时间,这样我就不用排队,还能够享受文件装订,配送服务,挺不错的。
缺点: 有点好奇,那个扫一扫是用来干吗的?
六、福州大学土木学院学生 男
优势: 界面还行,功能也能够,我一直讨厌去打印店,排队很痛苦,用U盘还很容易中毒,这让我很难受。经过这个在线打印,我想我就不用担忧U盘再中毒了,挺好用的。
缺点: 我的信息可能会泄露,安全性不是很可靠。
(汇总了大部分试用者所认为的优势和缺点)
用户 | 评分(十进制) | |
---|---|---|
1 | 9 | |
2 | 8 | |
3 | 7 | |
4 | 9 | |
5 | 8 | |
6 | 7 | |
平均分 | 8 |
整体来讲,你们对咱们的界面和功能仍是持好评的,对此咱们的内心仍是挺高兴的。
咱们的微信小程序设计的初衷就是界面简洁、操做简单。经过调查,咱们发现了咱们项目在功能和界面上还存在许多不足。例如上面提到的打印文件格式只局限pdf文件,部分功能还未实现,文件的安全性不是很可靠等问题,咱们会继续优化。
界面美观上,咱们的设计主要以简约风格为主,对一些界面布局,设计的还不是很好看,后期有时间的话,咱们会进行相应的调整,适当搭配好看的背景图片;在功能实现上,由于时间的缘由,有些功能来不及实现,例如多种格式的文档打印功能,后期有时间的话,咱们会进行相应的改进,增长一些实用的功能。
课程名称:软件工程1916|W(福州大学)
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标:做业集合
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
第一次上手体验感受如何?可否正常运行?
能正常登陆注册运行。
该产品具备哪些功能?
能在在平台查到关于校园的动态,二手交易等。
该产品解决了什么样的关键问题?
解决了校园功能分散的问题,使得上大学只须要要一个APP。
分析这个软件目前的优劣 (和相似软件相比), 推理出这个软件团队在软件工程方面能够提升的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每一个软件各自的优势和缺点。
对比超级课程表,该软件具备这些优缺点:
| 优势 | 缺点 |
| :------|:------ |
| 功能更加丰富 | 没有课程表 |
| UI设计简洁|UI设计体验不是很友好 |
建议: 完善本身自己的服务,并提升用户体验和产品的核心竞争力。
以为该产品有哪些须要改进的地方
给出一个评价:
好,不错
列举你找到的两个bug,配图更佳
没有比较明显的bug
就是功能不是很完善,扩展功能没有实现。
评分
根据你的体验和项目的完成状况,
方面 | 分数 |
---|---|
用户体验方面 | 7 |
UI界面美观度 | 8 |
核心功能 | 8 |
完成度 | 7 |
合计 | 30 |
队伍测试分工表
队员学号 | 队员姓名 | 分工 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 下载,安装,体验,测试 | 队长 |
221600411 | 陈迎仁 | 体验,测试 | |
221600409 | 蔡森林 | 体验,测试 | |
221600401 | 陈诗娴 | 下载,安装,体验 | |
221600307 | 李姣 | 下载,安装,体验 |
课程名称:软件工程1916|W(福州大学)
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标:做业集合
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
第一次上手体验感受如何?可否正常运行?
能正常登陆运行。界面简洁明了
该产品具备哪些功能?
微信小程序:查看小区公告、便民电话、个人工单、以及物业报修
web:管理学生、更改维修状态、问卷推送等
该产品解决了什么样的关键问题?
解决了校园物业信息更新不及时,致使一些不方便
分析这个软件目前的优劣 (和相似软件相比), 推理出这个软件团队在软件工程方面能够提升的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每一个软件各自的优势和缺点。
对比福大易班和山园物业,该软件具备这些优缺点:
| 优势 | 缺点 |
| :------|:------ |
| 具备物业通知功能,可以及时通知住户一些停水之类 | 功能更少一些 |
| UI设计简洁|web端的设计较为简陋 |
建议: 完善本身自己的服务,并提升用户体验和产品的核心竞争力。
以为该产品有哪些须要改进的地方
给出一个评价:
好,不错,具备较高的实用性
列举你找到的两个bug,配图更佳
修改学生的宿舍时有问题
扩展功能没有实现,web端的界面须要进一步优化
评分
根据你的体验和项目的完成状况,
方面 | 分数 |
---|---|
用户体验方面 | 8 |
UI界面美观度 | 7 |
核心功能 | 8 |
完成度 | 8 |
合计 | 31 |
队伍测试分工表
队员学号 | 队员姓名 | 分工 | 备注 |
---|---|---|---|
221600412 | 陈宇 | 体验,测试 | 队长 |
221600411 | 陈迎仁 | 体验,测试 | |
221600409 | 蔡森林 | 体验,测试 | |
221600401 | 陈诗娴 | 体验,测试 | |
221600307 | 李姣 | 体验,测试 |
课程名称:软件工程1916|W(福州大学)
团队名称: 云打印
做业要求: 项目Beta冲刺(团队)
做业目标:Beta冲刺总结
队员学号 | 队员姓名 | 我的博客地址 | 备注 |
---|---|---|---|
221600412 | 陈宇 | http://www.cnblogs.com/chenyuu/ | 队长 |
221600411 | 陈迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陈诗娴 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
小程序端代码Github地址
商家端代码Github地址
后端代码Github地址
项目预期计划 | 现实进展 |
---|---|
完善文件上传接口 | 100% |
文件下载 | 100% |
增长订单优先级 | 99% |
增长装订属性 | 100% |
商家接单,完成订单 | 97% |
修改了后端的代码,完善服务 | 98% |
美化商家网页端界面,完善小程序端的界面 | 98% |
商家端接单和查看订单,后端商家端接口,商家端的部分GUI | 97% |
用户试用的调查报告 | 99% |
发布Beta版本程序 | 100% |
陈宇(组长)
此次冲刺主要在调试上次冲刺的bug和问题,主要在微信支付和文件上传,新功能的增长比较少,主要完善了核心功能,我的感受一个微信小程序应该先把核心功能作好作精,因此Beta对扩展功能关注比较少,另外一方面也是时间安排不合理,对任务的预期不许确,好比安装https证书,原本预期一个小时搞定,结果硬生生调了一天才完成。总之,时间不够,熬夜来补。
陈诗娴
Beta阶段感受主要是对Alpha阶段出现的问题进行修改,例如微信回调接口在Alpha阶段存在异常。代码方面队员都帮了我不少,如今对于java的使用比刚开学时熟练了不少,也自学了不少课本上没有的知识,接下来会继续加油的。
李姣
此次β冲刺我做为新成员首先遇到的难点是如何短期内上手一个全新的项目。此前在原来的小组我负责的是ui和界面的修改,主要是安卓端,而到新的组以后接手的工做是web端。幸亏以前web端也有必定的知识积累,不至于啥也作不了给小组拖累。web端是商家端的一些基础功能实现,α阶段已经完成了大部分,我只需对细节进行修饰和增改便可。也感谢新的小组成员对个人帮助,让我能尽快上手,了解项目结构,更好地完成工做。
蔡森林
通过Beta冲刺,我学到了不少东西,对于微信小程序的布局有更进一步的理解,以及一些请求接口的交互,常常须要不断调试,但每一次的调试,对本身都是一种成长。在接下来的日子里,我会继续不断努力,让本身不断成长。
陈迎仁
虽然在此次软工实践吃尽了苦头,花费了大把的时间和心思,可是最后看到本身产品可以完整的运行,内心的成就感仍是很是知足的,虽然项目作出来可能没有其余组的酷炫华丽,但在这个过程当中和队友学习了不少知识,不只提升了本身敲代码的课外能力,也实践到了一些软件工程的理论知识,也是由于本身对软件项目管理的工程量把握不许确,致使两个阶段的开发时而紧张时而轻松,因此经过此次实践,吸收教训,提升本身。痛并快乐着!
学号 | 姓名 | 任务 | 百分比 |
---|---|---|---|
221600412 | 陈宇(队长) | 后端开发,任务安排,撰写博客 | 22% |
221600401 | 陈诗娴 | 美工,撰写博客 | 16% |
221600307 | 李姣 | 商家web端开发 | 21% |
221600409 | 蔡森林 | 微信小程序界面美化及测试,撰写博客 | 19% |
221600411 | 陈迎仁 | 微信小程序 | 22% |
总结经验教训,事先明确分工任务,作好计划安排。及时跟队员进行沟通协调进度。小组多人合做方面也存在不少问题,先后端合做不完美,前端也在改,后端也在改,每一次前端把代码给我,我也不知道前端修改了啥,啥没有修改,这样致使我得从新把前端代码都换掉,挺麻烦了;而后就是任务分工方面,有的任务不能严格的分给前端或者后端,必须先后端合做,这样就得俩人共同协做,而后是现实老是很不理想,心不齐,固然解决不了问题。仍是那句话,团结起来力量大。