Part One
组员职责分工
- 前端:曾宏健、陈志达、郑小华
- 后端:何翱翔
- 文档:沈明炜、林琳、郑小华
- 群内截图:林琳
- 博客:李康华、郑小华、王玉珊
思维导图
GitHub提交日志截图
学号 |
commit次数 |
221701423 |
9 |
221701222 |
10 |
221701203 |
4 |
041701407 |
10 |
221701305 |
3 |
221701121 |
2 |
221701404 |
0 |
221600423 |
4 |
221701320 |
3 |
程序运行截图
程序运行环境
alembic==1.0.11
blinker==1.4
certifi==2019.6.16
Click==7.0
cssmin==0.2.0
Flask==1.1.1
Flask-DebugToolbar==0.10.1
Flask-SQLAlchemy==2.4.0
itsdangerous==1.1.0
Jinja2==2.10.1
jsmin==2.2.2
Mako==1.1.0
MarkupSafe==1.1.1
public==2019.4.13
python-dateutil==2.8.0
python-dotenv==0.10.3
python-editor==1.0.4
python-http-client==3.1.0
SQLAlchemy==1.3.7
timedelta==2019.4.13
virtualenv==16.7.4
virtualenv-clone==0.5.3
webassets==0.12.1
Werkzeug==0.15.5
wrapt==1.12.0
Flask-Cors==3.0.8
GUI界面
基础功能实现
- 实现了一个市民便捷预约、限量采购口罩的应用,市民可在网上登记信息预约口罩。系统采用web服务的方式,前后端分离实现。
功能点 |
完成度 |
具体情况 |
身份证、手机号格式验证及错误提示 |
0 |
为便于测试并没有进行测试 |
身份证、手机号的唯一性及错误提示 |
1 |
|
间隔三次才能预约及错误提示 |
0 |
条件仅仅是进行了单一身份验证 |
存储预约信息 |
1 |
|
预约结束后的中签计算 |
1 |
|
预约查询及提示 |
1 |
|
工具:HTML/CSS,JavaScript,Python,Flask
附加功能实现
暂无,还在努力中。
新功能
暂无,还在努力中。
用户体验
- 系统功能针对性强,在疫情期间为市民提供了便利,用户打开网页即可使用我们的口罩预约服务,用户在主页面上选择不同的功能跳转到相应的页面获取相关服务。
- 在使用预约服务时,用户需要在网页上完善相关信息,包括姓名、电话、身份证号以及购买口罩数量进行登记,预约成功时将给出预约编号,若手机号及身份证号在本次登记过或在此前3次预约成功过,则弹出预约失败信息。
- 在使用查询服务时,用户需要在网页上填写预约编号,点击查询则可以生成购买凭证,包括姓名、电话号、身份证号、数量等信息。
- 开始预约按钮和结束预约按钮为方便测试所添加的,点击开始预约则可以开始新一轮的口罩预约服务,点击结束预约,则结束当前的口罩预约服务,不可再进行口罩预约操作。
遇到的困难及解决方法
- 曾宏健:困难:跨域问题 解决方案:使用flask_cors库,并设置origins:*
- 陈志达:困难:前端各组件的整合部署 解决方案:利用css,百度设置
- 郑小华:主要负责基础前端的构建和文档的编写,暂无遇到困难。
- 沈明炜:困难:接口文档的编写 解决方案:百度,观看实例。
- 李康华:
- 何翱翔:
- 王玉珊:协助撰写博客,没有遇到困难。
- 林琳:困难:之前没有接触过Flask,虽然已经在学习了,但是感觉应用还是不太熟练 解决:继续学习Flask相关知识
- 林轶凡:
组员贡献比例
学号 |
贡献度 |
221701423 |
14 |
221701222 |
14 |
221701203 |
13 |
041701407 |
14 |
221701305 |
9 |
221701121 |
9 |
221701404 |
10 |
221600423 |
9 |
221701320 |
8 |
组员PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
10 |
Estimate |
估计这个任务需要多少时间 |
10 |
10 |
Development |
开发 |
310 |
310 |
Analysis |
需求分析 (包括学习新技术) |
20 |
20 |
Design Spec |
生成设计文档 |
30 |
30 |
Design Review |
设计复审 |
30 |
30 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
20 |
20 |
Design |
具体设计 |
30 |
30 |
Coding |
具体编码 |
120 |
120 |
Code Review |
代码复审 |
20 |
20 |
Test |
测试(自我测试,修改代码,提交修改) |
40 |
40 |
Reporting |
报告 |
45 |
45 |
Test Report |
测试报告 |
10 |
10 |
Size Measurement |
计算工作量 |
5 |
5 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
30 |
30 |
合计 |
|
|
375 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
120 |
150 |
Estimate |
估计这个任务需要多少时间 |
100 |
120 |
Development |
开发 |
120 |
150 |
Analysis |
需求分析 (包括学习新技术) |
100 |
120 |
Design Spec |
生成设计文档 |
30 |
30 |
Design Review |
设计复审 |
15 |
15 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
15 |
15 |
Design |
具体设计 |
30 |
30 |
Coding |
具体编码 |
40 |
40 |
Code Review |
代码复审 |
10 |
10 |
Test |
测试(自我测试,修改代码,提交修改) |
20 |
20 |
Reporting |
报告 |
10 |
10 |
Test Report |
测试报告 |
10 |
10 |
Size Measurement |
计算工作量 |
20 |
20 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
20 |
20 |
合计 |
|
675 |
745 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
60 |
60 |
Estimate |
估计这个任务需要多少时间 |
10 |
10 |
Development |
开发 |
265 |
300 |
Analysis |
需求分析 (包括学习新技术) |
60 |
80 |
Design Spec |
生成设计文档 |
30 |
30 |
Design Review |
设计复审 |
45 |
50 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
15 |
30 |
Design |
具体设计 |
30 |
40 |
Coding |
具体编码 |
45 |
40 |
Code Review |
代码复审 |
25 |
15 |
Test |
测试(自我测试,修改代码,提交修改) |
15 |
15 |
Reporting |
报告 |
60 |
80 |
Test Report |
测试报告 |
30 |
50 |
Size Measurement |
计算工作量 |
15 |
10 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
20 |
30 |
合计 |
|
460 |
395 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
30 |
20 |
Estimate |
估计这个任务需要多少时间 |
120 |
90 |
Development |
开发 |
120 |
120 |
Analysis |
需求分析 (包括学习新技术) |
120 |
90 |
Design Spec |
生成设计文档 |
30 |
10 |
Design Review |
设计复审 |
30 |
10 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
60 |
10 |
Design |
具体设计 |
30 |
10 |
Coding |
具体编码 |
120 |
90 |
Code Review |
代码复审 |
30 |
20 |
Test |
测试(自我测试,修改代码,提交修改) |
30 |
10 |
Reporting |
报告 |
30 |
10 |
Test Report |
测试报告 |
30 |
20 |
Size Measurement |
计算工作量 |
20 |
10 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
60 |
40 |
合计 |
|
860 |
560 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
30 |
30 |
Estimate |
估计这个任务需要多少时间 |
30 |
30 |
Development |
开发 |
390 |
430 |
Analysis |
需求分析 (包括学习新技术) |
30 |
40 |
Design Spec |
生成设计文档 |
30 |
40 |
Design Review |
设计复审 |
30 |
20 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
30 |
20 |
Design |
具体设计 |
60 |
70 |
Coding |
具体编码 |
90 |
90 |
Code Review |
代码复审 |
60 |
60 |
Test |
测试(自我测试,修改代码,提交修改) |
60 |
90 |
Reporting |
报告 |
60 |
60 |
Test Report |
测试报告 |
30 |
30 |
Size Measurement |
计算工作量 |
10 |
10 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
20 |
20 |
合计 |
|
480 |
520 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
30 |
20 |
Estimate |
估计这个任务需要多少时间 |
120 |
90 |
Development |
开发 |
120 |
120 |
Analysis |
需求分析 (包括学习新技术) |
120 |
90 |
Design Spec |
生成设计文档 |
30 |
10 |
Design Review |
设计复审 |
30 |
10 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
60 |
10 |
Design |
具体设计 |
30 |
10 |
Coding |
具体编码 |
100 |
100 |
Code Review |
代码复审 |
200 |
200 |
Test |
测试(自我测试,修改代码,提交修改) |
200 |
200 |
Reporting |
报告 |
10 |
20 |
Test Report |
测试报告 |
20 |
20 |
Size Measurement |
计算工作量 |
20 |
30 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
30 |
20 |
合计 |
|
950 |
900 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
30 |
30 |
Estimate |
估计这个任务需要多少时间 |
30 |
30 |
Development |
开发 |
60 |
60 |
Analysis |
需求分析 (包括学习新技术) |
30 |
25 |
Design Spec |
生成设计文档 |
30 |
35 |
Design Review |
设计复审 |
30 |
45 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
20 |
30 |
Design |
具体设计 |
90 |
45 |
Coding |
具体编码 |
90 |
120 |
Code Review |
代码复审 |
25 |
20 |
Test |
测试(自我测试,修改代码,提交修改) |
30 |
30 |
Reporting |
报告 |
60 |
45 |
Test Report |
测试报告 |
30 |
35 |
Size Measurement |
计算工作量 |
15 |
20 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
10 |
20 |
合计 |
|
580 |
590 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
120 |
120 |
Estimate |
估计这个任务需要多少时间 |
15 |
15 |
Development |
开发 |
50 |
55 |
Analysis |
需求分析 (包括学习新技术) |
15 |
20 |
Design Spec |
生成设计文档 |
25 |
20 |
Design Review |
设计复审 |
15 |
10 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
20 |
25 |
Design |
具体设计 |
40 |
45 |
Coding |
具体编码 |
90 |
120 |
Code Review |
代码复审 |
20 |
25 |
Test |
测试(自我测试,修改代码,提交修改) |
15 |
10 |
Reporting |
报告 |
15 |
10 |
Test Report |
测试报告 |
15 |
15 |
Size Measurement |
计算工作量 |
10 |
10 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
20 |
20 |
合计 |
|
485 |
520 |
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
15 |
15 |
Estimate |
估计这个任务需要多少时间 |
30 |
30 |
Development |
开发 |
120 |
120 |
Analysis |
需求分析 (包括学习新技术) |
60 |
60 |
Design Spec |
生成设计文档 |
30 |
10 |
Design Review |
设计复审 |
20 |
20 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
15 |
10 |
Design |
具体设计 |
30 |
30 |
Coding |
具体编码 |
120 |
90 |
Code Review |
代码复审 |
30 |
15 |
Test |
测试(自我测试,修改代码,提交修改) |
30 |
30 |
Reporting |
报告 |
15 |
15 |
Test Report |
测试报告 |
15 |
15 |
Size Measurement |
计算工作量 |
20 |
30 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
30 |
30 |
合计 |
|
580 |
460 |
Part Two
团队展示——问题重解
1.面向什么用户
愿意辅导的同学和需要被辅导的同学都是我们程序面向的用户人群
2.辅导是如何结对的
被辅导人员搜索科目/姓名,挑选好辅导人员后可在线进行联系,确定辅导时间和费用后完成结对
3.辅导人员的要求
程序将通过福大教务处的认证页面确认辅导人员的绩点,绩点符合要求则可以开始辅导
4.APP是否收费
目前没有收费的打算,但是因为信息收集的成本,后期考虑讨论再做决定
5.如何进行知识的对接
辅导人员发布自己擅长的,可进行辅导的科目,被辅导人员搜索到自己需要的科目,选择适合自己的辅导人员进行辅导,完成知识对接
6.中介平台在用户自行结对之后会被用户遗弃,平台很难追踪用户
用户自行结对不可能完成所有科目的辅导需求,本平台提供基本所有科目的N多辅导人员,用户可自行选择科目,以及同一科目下可选择辅导风格适合自己的辅导人员。用户一次结对完成需求后需要辅导双方提供评价反馈以确定辅导费用。用户下次有不同科目需求自然还会选择我们平台,因为目前大学生辅导市场基本空白,我们平台的多科目多学长可以满足不同用户不同科目的需求。届时可以考虑加个问题社区,简化结对,认证,甚至不提供收费,纯信息展示交流平台
7.如何吸引辅导人员的入驻
辅导人员相当于一份家教兼职,只不过辅导对象变成了在校大学生,被辅导人员会向辅导人员支付辅导费用,以此吸引想要勤工俭学的辅导人员入驻平台,当然项目完成后初期也会进行推广以吸引用户(例如和社委会、党员服务站一起合作,通过综测的奖励或者党员时长奖励)
新的思考
- 我们团队初步制定的方案需求比较少,在老师同学的提议下,我们考虑在细节方面增加一些能够吸引客户的需求点。比如一对一帮扶的活动,共同进步可以获得奖金这样的功能。不仅能促进同学们结对学习,还对大家的学习态度有了积极的引导。另外,应用所面向的用户应该扩大一些范围,增加中学生甚至是小学生这样的受众,旨在为更多的人提供学习的便利,同时提升应用的热度。