军舰队-软件工程之现场编程实战

这个作业属于哪个课程
https://edu.cnblogs.com/campus/fzu/SE2020
这个作业要求在哪里
https://edu.cnblogs.com/campus/fzu/SE2020/homework/11480
这个作业的目标
做一个可以投票的网站,并且显示投票结果
团队名
军舰队
GitHub链接
https://github.com/m1nme/votesystem
部署地址>
http://106.54.91.96:8080/static/student/student_login.html

一、PSP表格

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

二、GitHub&&接口文档链接

https://github.com/m1nme/votesystem
https://www.showdoc.com.cn/1123459570872814?page_id=5728959415008677

三、组员职责分工

分工
姓名
后端&服务器部署
陈龙辉
接口文档
应俊杰
前端(学生端)
应俊杰 陈凯强 张雨晗
前端(管理员端)
刘国强 王延鹏 杨静
博客
陈凯强 陈龙辉

四、提交日志截图

五、程序运行截图

后端代码测试

以下测试均为通过POSTMAN测试部署在服务器上动态可用的接口

学生端

学生端登陆功能测试

  1. 未登录无法访问其它页面

  1. 登陆

    1. 登陆后可以正常访问其它接口

学生获取投票列表功能测试

  1. 学生获取投票列表

学生获取某一具体投票内容

  1. 学生获取某一具体投票内容

学生投票

  1. 学生投票

  2. 当投票给自己时返回错误

  3. 重复投票

学生获取投票结果

  1. 学生获取投票结果

教师端

教师登陆

  1. 教师登入

教师新建投票

  1. 教师新建投票

教师获得投票列表

  1. 教师获得投票列表

教师获得某一投票结果数据

  1. 教师获得某一投票结果详细数据

教师删除某一个投票

  1. 教师删除某一个投票

系统测试

教师端

  1. 教师登陆,从首页(http://106.54.91.96:8080/static/teacher/teacher_login.html)进入,或者从学生端首页点击管理员登陆即可进入教师端登陆界面

  2. 登陆成功后将看到所有投票的列表

  3. 可以对列表中的投票进行查看或者删除,同时可以在左上角新建投票,我们在这里新建一个投票试试

    点击提交之后就可以在投票列表中看到我们刚刚新建的投票

    我们尝试将第一个测试投票删除

  4. 点击查看就可以看到具体的投票详情及投票结果,教师端可以具体看到每一支队伍有哪一些人给他投票

学生端

  1. 进入首页(http://106.54.91.96:8080/static/student/student_login.html),输入学号姓名和组号进行登陆

  2. 登陆完之后就进入投票列表页面,可以查看当前存在的所有投票

  3. 点击查看进入投票,查看投票详情

  4. 首先,后端添加了验证。无法为自己的队伍投票!

  5. 其次,只能根据投票类型进行投票,所选小组不能超过限选组数

  6. 以及投过一次票之后就不能进行第二次投票

  7. 投票成功之后就可以查看投票的结果,学生端只能够看到最终的投票数,无法查看具体投票内容

六、程序运行环境

CentOS7+Python+Django+sqlite3

七、贡献分比例

姓名
贡献比
应俊杰
30%
陈龙辉
30%
陈凯强
7%
刘国强
12%
王延鹏
8%
杨静
7%
张雨晗
6%

八、成员总结

应俊杰:

 这次限时编程对我来说印象深刻,虽然题目看起来简单,但是做起来还是感到困难,我来简要说明一下我们遇到的问题
  • 1.分工问题
    我们队伍9人在场7人,2位因为种种原因来不了,在我们紧张刺激的讨论之后,把这个投票系统分成了三个部分:学生网页端,管理员网页端、后端,在布置好大概的方向、要实现的功能之后,我让前端们去实现前端样式、后端实现登录注册的功能,而我来写前后端对接的 文档
  • 2.跨域问题
    在开发中,前端的样式开发大家都没问题,而当对接的时候,大家就都头疼了,因为后端用 django 的自带鉴权的模块(需要通过前端传 cookie ) 这可难倒了我们,而且我们的成员大部分甚至不会前后端交互,尽管后端完成了登入注册接口、但我们仍然卡在了对接上,整个上午都停滞不前
  • 3.对跨域问题的解决方案和几种尝试
    1).后端配置 后端修改跨域信息使任何请求都可以被后端接受但我们采用原生的 ajax 构造的 http 请求无能为力,只能实现登录、后面的鉴权都做不了。
    2). nginx 反向代理,这个最靠谱的方式,竟然也失败了,我们头疼了半天,后面想出了原因 当时我是把 nginx 配置在前端这里 而静态文件构造的 ajax 请求和本地的跨域还是会冲突 解决办法应该是把静态文件放进nginx里做到可以访问,才能解决跨域问题
    3). 迫于无奈,我们只能暂时取消前后端分离的开发方式、前端开发者要同时跑后端代码,这样在本地进行开发,最后我们是通过这种方式解决了问题
    4). 反思 下次再也不会用 cookie 了 ,jwt 不香吗? 总之我们学习到了很多,成员们对前后端分离都有了大概的了解

陈龙辉:

​ 这一次的限时编程我主要是负责后端的编写。由于代码写的不熟练,导致现场的三小时只写了个注册登陆。还是太菜了,不过最终还是花了十个小时左右写完了后端。也算是比较圆满的完成的这次的任务。菜是原罪。不过这次限时编程也学到了不少东西,为接下来的小程序后端的编写做了一定的铺垫。冲冲冲!

陈凯强:

​ 无助。被分到了学生端前端的页面设计,在最开始面向CSDN和百度的情况下写出了第一版的页面(但最后被舍弃了),在编码过程中似乎只能给大佬们端茶递水揉肩捶腿,希望在今后的实践中能加紧学习,不再拖队伍后腿,辛苦队友们了。

刘国强:

look了一上午组长和队友的编程,分配到了教师端的查看结果的页面,但是由于框架使用不够熟练,最后还是要靠组长来完成我的任务,深刻认识到了自己的不足,不过还是对接下来的任务抱有期待,希望能够帮上团队的忙,分担队友的压力.最后表示组长和大家辛苦了- -

王延鹏:

这次编程任务我要写的是新建投票的网页,在这个任务中我学习了一下如何使用bootstrap框架,虽然只会复制粘贴组件,但是至少对它有了一点点认知。虽然最后只写了一点界面和基本的函数。
总结是平时要多学习,不然短时间内自己肯定做不好;同时也要感谢组里的大佬们,他们对这次任务的贡献非常大。

杨静:

​ 尝试利用 JQuery 通过后台获取数据遍历到前端,虽然没有成功,学到了很多知识,初步认识了ajax,进一步学习了JQuery、JavaScript等等,深刻认识到自己还有很大的不足,需要学习的还有很多,还要更加努力,不拖团队的后腿。

张雨晗:

​ 这次软工限时编程总体还是很有挑战性的,主要是之前也并没有团队开发的经。我主要是负责前端(学生端)的一些页面设计,由于时间紧张,再加上对于html和css,js掌握不是那么强,所以在上机的时间变成了面向csdn的编程,结果做出来的网页虽然能用,但是美观性大打折扣,框架什么的也没有考虑,全是大佬在带飞。接下来就要阿尔法冲刺了,希望小程序的前端能够顺顺利利,自已也能从前端的工作中有所收获吧。

posted on 2020-11-07 11:35  军舰队  阅读(164)  评论(1编辑  收藏  举报