这是18年浙江省服务外包大赛的赛题,从寒假前选定这个题目开始,我们团队就开始了需求分析等一系列流程。我在这个项目中的职责是作为项目经理,实际的工作是分析好整个流程,然后给团队成员分配好任务。在开发工作中我负责整个项目的服务端开发,还有门禁系统的物业web端界面和业主web端界面。
然后寒假便开始了整个架构的设计。一开始是调试虹软的接口从Node.js版到最后的Python版,最后终于是能成功提出出了特征值。(Node.js版能进行人脸的比对,而且更方便,但当时我还想提取出特征值,经过好多天的尝试后,还是换成了Python版,然后学了一下Flask框架,把他变成了接口开放出来。短短几句话,,真的有好多泪)。
需求分析
我先和团队成员对比赛需求文档进行了研究,然后讨论了几次,用xmind画了需求图。
系统架构
为了提升用户体验,项目规定了性能要求和业务需求。
- 满足1000人的注册需求
- 识别成功并开门速度要求在1秒内
- 有机器学习能力,跨年龄也能识别
因此,整体架构设计采用微服务架构,子系统间解耦,将复杂的人脸计算提交给性能强大的后端服务器,并实现服务的弹性扩容。使用Redis数据库来存储人脸特征值,使得人脸能快速比对。
技术选型
这一块我是负责服务端还有后台管理端的。其中服务端用了Python的Flask框架,WebSocket用了Swoole,主服务器是用Laravel的。后台管理端这边就都是用vue。
还有服务端开的API都是RESTful风格的。
服务端技术栈
门禁客户端技术栈
后台管理端技术栈
移动端技术栈
数据库
总结
两月初开始写,然后是五月初去比赛,最后拿了省赛一等奖,结果还行。就是项目最后冲刺的时候还是有点累的,那个星期还通宵了几次,跟大家合作开发也蛮愉快的,要我一个人肯定吃不消。然后也更好的熟悉了一下各种框架吧,最后放一下我的github小绿点吧。