一、“御膳房”App需求分析
(一)功能需求分析
1.普通用户
鉴于目前尚无精确定量的定量指标可供参照,本项目拟开发针对我国4-60岁群体膳食结构特点的软件体系。在对目前市面上已经存在的美食网站和手机软件展开了研究,并对它们展开了分析,得出了移动客户端的主要功能。
2.系统管理员
系统管理员的责任包括:系统参数调整,系统功能维护,数据信息管理,数据信息分析。该项目采用网络浏览器的方式实现了对该项目的支持,并在此基础上对该项目的管理系统进行了详细的分析。
(二)非功能需求分析
1.界面设计
由于手机的主要目标人群为4-60岁之间的一般人群,所以在对手机的 UI界面进行设计时,必须遵守“导航的易用性、操作的可记忆性和相关信息的可获得性”三个基本原则。接口的设计达到了清晰明了,结构连贯,美观大方的目的。
2.性能需求
(1)稳定性:在发展的时候,要确保对资源的合理利用,防止用户在使用的时候,出现布局混乱,按键失灵,数据报错,系统瘫痪等情况。
(2)安全性:大多数服务器每天都要受到各种未知来源的网络攻击,常见的有:结构式询问语言(SQL)注入,跨域攻击(CSRF),跨站脚本攻击(XSS)等等。为了保证网络服务的安全、可靠,服务器端必须有一套完善的网络防御系统。
二、总体方案设计
(一)交互展现层
移动客户端的主要内容是为用户提供与推荐软件之间的功能互动,在网页的设计中,主要内容有:身份验证、菜品查询和饮食推荐。后台管理端面对的是系统管理员,它的主要功能是对用户数据进行分析,以及对日常数据进行管理与维护,在页面设计中,主要包含了数据分析、数据信息管理、意见反馈处理等内容。
(二)业务逻辑层
在此基础上,提出了一种基于业务逻辑的新概念,并对其进行了深入研究。在接收到了使用者的动作指示之后,会分析这个请求,然后从资料服务层获得所需的资料,最终,经过处理的资料会以 JS对象简谱 JavaScript Object Notation (JSON)的格式,经由 Ajax将资料传回至前端 UI,并进行网页呈现。
(三)数据服务层
以数据服务层为核心,以用户界面为接口,实现了与数据库的直接互动,为用户界面的设计和实现奠定了坚实的技术基础。数据的增加,修改,删除,以及查询都必须通过这一层。
三、“御膳房”App软件各模块设计
(一)数据库设计
数据库概念模型是用实体-关系(E-R)模型来表示的。管理员—用户—菜品—食材的数据库E-R模型具体表现在图3.1中,管理员与用户、管理员与菜品之间都是一对多的关系,用户与菜品、菜品与食材之间都是多对多的关系。以E-R图为基础,构建了该模型的数据库表格。
图3.1 “御膳房”App数据库E-R图
(二)基础功能模块设计与实现
1.移动客户端
(1)身份验证模块
用户账户的身份验证是进入系统的首要步骤,它包括注册、登录和密码获取三个部分。如果是首次登陆,那么首先要进行注册,然后按照一定的格式,完成相关的登记,然后按照自己的电话号码,使用 getVerificationCode ()来获得四个数字的短消息验证代码,这个代码中包含了阿里云的短消息服务 API,当完成之后,如果没有任何错误,那么就可以使用 addUser ()来保存这些消息,然后进入到一个新的登陆页面。如果是新注册的,或者是很久没有登陆的,那么就必须要输入自己的账户密码,以及可以用来防止恶意登陆的随机验证码。账户可以是用户的手机号或账号名。在点击登陆之后,会调用 getUser ()方法来获得相应的用户信息,并展开验证。如果被批准,那么就会进入到客户端 APP的页面,如果没有被批准,那么就会将错误信息发送到客户端并弹出 toast提醒。如果一个用户忘记了自己的密码,那么就必须以他在注册时填写的手机号为基础,收到四位短信验证码,对其进行确认。如果经过确认,并且重新设置密码的格式都是对的,那么就会呼叫 updateUserPassword ()方式,对数据库进行更新,从而完成密码的重新设置,然后进入到用户登陆页面。
(2)菜品搜索模块
在对菜肴的模糊搜索中,采用了采用规则表示式的搜索算法。比如在搜索栏中键入“豆腐”两个字,就会在“鱼香豆腐”和“青菜豆腐汤”两个字中找到自己想要的菜,然后在每一次搜索中,都会使用 AddSearchHistory ()这个函数,将自己想要的东西保存在自己的数据库中。
2.后台管理端
(1)数据统计模块
当管理员进入系统时,可以直接查看用户数,菜品数,食材数,昨天登陆的用户数等等。此外,该模块还利用 Vue中的v-charts工具,实现了对部分数据的可视化。使用ve-pie标签,用饼图的形式,将菜系、用户性别和年龄段的分布进行了展示,使用ve-histogram标签,用柱状图形式,将菜品的历史评分榜和收藏热度榜进行了展示。
(2)反馈处理模块
这一模块与 APP上的评论反馈功能相匹配,主要是为系统管理人员提供评论反馈的功能。当管理者在进入到反馈处理界面的时候,他将会调用 getUserOpinion ()方法来获得全部用户的意见反馈信息,可以利用下拉菜单来过滤意见的反馈类型和反馈状态,还可以利用 updateCommentState ()方法来对意见信息的状态进行修改。其状态主要有未阅览、已阅览和已处理三种,此外还可调用 deleteComment ()方法来对意见进行删除。。
四、总结
目前市面上针对公众的饮食建议应用程序较少,且大部分应用程序都是基于盈利的,缺乏对使用者个人饮食偏好、情境信息对其饮食决策的作用和个性化的个人饮食习惯的研究。针对这一现状,本课题拟开发一款以健康膳食为基础的个性化膳食推荐应用,旨在为使用者提供一种满足个体不同口味偏好、且精准、科学的膳食建议。
参考文献
[1] 张斌, 齐佳敏. 个性化推荐的健康饮食手机应用[J]. 今日湖北(下旬刊), 2014, 000(007):50-50.
作者简介:龙安忠(2000年3月22日),男,苗族,贵州榕江,本科,学生,兴义民族师范学院,java工程师。