2017.07.13版 因为对之前版本做了较多修改,所以重新发了,并且在博客下方保留原有版本作为记录。
头脑风暴结果:
刚开始我们无法确定要做一个什么样的应用程序,总结之前可视化课程的作业,我们提出了几个想法:音乐,视频,学院网站等。但是觉得这些方向已经有很成熟的应用,我们做的话基本是模仿,可以创新的地方不多。老师提了一个意见,让我们从自身实际校园生活出发,找到痛点,再针对这方面设计一个好的应用。
校园生活当然是衣食住行和学习。我们觉得最痛苦的就是每天选择吃什么。由于学校地理位置偏僻,外卖可以选择的种类不多也不太方便卫生。我们大多在食堂吃。虽然食堂菜的种类还比较多,但是时间长了还是不知道该选择什么。而且在我们下课很晚的时候,食堂可能没有什么菜了,这时再去走走看有什么吃的更加浪费时间。所以我们设想了一个可以帮助我们决策吃什么并且可以实时统计菜量的应用程序。
设想的功能首先是要能提供决策的选择,统计实时菜单菜量。其他基本功能,如用户登录,口味选择,界面美化等。还设想了如忘记带饭卡可以在线求助的功能,但是经过后来的讨论,觉得此功能并不必要,所及删除了此功能。后来我们组的成员提出了希望可以浏览校园的一些活动,最好是整合起来的活动推送。经过讨论,这个功能可以增加我们的应用使用时间,给用户提供更好的体验。但是一些用户不喜欢接收推送,所以我们增加了可以选择是否推送校园活动的功能。
在我们学校,食堂新品上市一般是在门口或扶梯口摆一个牌子,不是很明显,使用我们的应用程序可以快速知道食堂是否有新品上市。当然也少不了对食堂菜品的评价吐槽功能。
我们暂时没有将如何盈利纳入考虑范围。主要目的就是满足大家对选择吃什么的需求。最终提交一个能有效解决问题,设计合理的应用。
核心竞争力:
- hunger-killer 让选择吃什么更简单
功能集:
- 功能1 用户注册
- 功能2 用户登录
- 功能3 用户兴趣口味选择:
- 功能4 每日推荐菜品:根据协调过滤推荐菜品,实现
- 功能5 食堂实时菜单菜量:实现对实时菜单菜量的掌握
- 功能6 用户评价菜品:管理数据库,实现评分和评论功能
- 功能7 食堂新品浏览:由管理员发布的新品通知
- 功能8 后台统计数据,生成统计报告:实现对数据库的
- 功能9 校园活动推送:根据校园最近活动进行推送,通知。
- 功能10 手机版(暂未设计)
- 功能11 趣味决策(转盘,否决卡片,戳泡泡):实现对推荐菜品的随机选择
- 功能12 管理员功能:实现对用户评论,用户账户,食堂新品和校园活动推送的管理。(用户管理主要通过用户敏感度控制。)
图1 功能模块划分
NABCD
N(NEED)需求:
现在的学生吃饭可以选择去外面吃饭,吃外卖。但是由于安全,价格等种种原因,学生们用餐的第一选择依然是食堂,但是,对于学生来说吃食堂也有一些不便。像是学生们有时并不知道食堂具体有什么饭菜是自己喜欢吃的,这样经常会导致学生去食堂找一圈之后却没有满意的菜品。另外,再用餐时间比较紧张的时候,由于不知道菜量,经常会导致用餐时间不够。
结合我们自身和用户调研的结果,我们针对每天不知道吃什么的问题设计了一个应用。它主要针对以下典型用户:
- 典型用户1:课不多选择时间充足,可以早点去食堂,此时菜品较全,但是不知道吃什么,选择困难,想要一个懂得自己口味的APP来帮助自己做决定。
- 典型用户2:课多,下课晚,不知道去食堂还剩什么了,想提前知道什么菜量比较多,直接去排队,节省时间。
- 典型用户3:知道自己的口味,但是之前没尝试过这个菜品,希望通过这个应用获得其他人对这道菜品的评价。
用户调研问题 |
1.您一般吃饭是在食堂还是选择外卖? |
2.您有遇到过不知道吃什么的问题么? |
3.那么您一般可以用于选择在食堂吃什么的时间多么? |
4.如果有一个可以让您提前知道食堂实时菜单菜量并且可以给您推荐菜品,趣味选择的应用,您会使用么? |
5.您会查看一道食堂菜品的评论,和大家一起吐槽么? |
6.您对校园活动感兴趣么?希望接收校园活动的推送么? |
A(APPROACH)做法:
- 使用基于协同过滤推荐给用户每餐的菜品:
【注】协同过滤是一种在推荐系统中广泛采用的推荐方法。这种算法基于一个“物以类聚,人以群分”的假设,喜欢相同菜品的人肯具有相同的口味。基于协同过滤的推荐系统一般应用于有用户评分的系统之中,通过分数去刻画用户对于菜品的喜好。协同过滤被视为利用集体智慧的典范,不需要对项目进行特殊处理,而是通过用户建立物品与物品之间的联系。它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好。我们使用这种算法,可以让用户发现自己的潜在喜好。
- 使用转盘方法让用户趣味决策,首先用户可以通过推荐系统获得八道菜品,形成转盘。
- 开发工具:Visual Studio 2015/2017+SQL Server
- 通过Xaml语言设计前端,C#语言实现后端,数据库的连接和管理。
B(BENEFIT)好处:
- 当用户不知道在食堂吃什么的时候给用户一个可以帮助决定吃什么的功能,满足他们的想法。
- 用户使用我们的系统可以趣味的决策,甚至快速选定吃什么,从而节约时间,提高效率。对抗选择困难症~有更多的时间做其他事情。
- 用户可以实时了解食堂的菜单菜量,可以让同学们在时间不宽裕的时候快速找到菜量多的菜品,节省吃饭的时间。
- 我们可以直接的了解到食堂新出的菜品,并且所有的菜品都可以让同学们进行评价。这可以使同学们有一个参考。通过评论的功能也可以增加大家的互动。
- 通过我们这个APP可以了解到校园最新的活动。
C(COMPETITORS)竞争:
- 在我们自己看来,我们的想法足够新,并没有什么竞争对手,就比如类似的美团、糯米、饿了吗都是针对校外的外卖,还没有针对学校食堂的APP。我们目前没有什么竞争对手,但是我们还要保持创造力,时时改进。
D(DELIVERY)交付:
- 我们的宣传推广方式很多,开始可以从自己身边出发让周围的同学尝试,再到我们的整个学校。
- 然后可以获取对应其他高校食堂的数据,开始发动以前的高中同学等,在他们的学校帮助我们推广。
- 还可以和校园社团的公众号进行合作推广。
- 进一步的推广,我们可以和安卓市场等进行合作。
以下为2017.07.11版本
头脑风暴结果:
核心竞争力:
- hunger-killer 让吃饭更简单
功能集:
- 功能1 用户注册
- 功能2 用户登录
- 功能3 用户兴趣口味选择
- 功能4 每日推荐菜品
- 功能5 食堂实时菜单菜量
- 功能6 用户评价菜品
- 功能7 食堂新品浏览
- 功能8 后台统计数据,生成统计报告
- 功能9 校园活动推送
- 功能10 手机版(暂未设计)
- 功能11 趣味决策(转盘,否决卡片,戳泡泡)
N(NEED)需求:
- 典型用户1:选择时间充足,菜品较全,但是不知道吃什么,选择困难,想要一个懂得自己口味的APP来帮助自己做决定。
- 典型用户2:课多,下课晚,不知道去食堂还剩什么了,想提前知道什么菜量比较多,直接去排队。
A(APPROACH)做法:
- 我们会帮助用户节约时间,减少困扰
- 获取实时菜量,让用户更好更快的看到有什么可以吃
- 使用基于协同过滤的推荐:
【注】协同过滤是一种在推荐系统中广泛采用的推荐方法。这种算法基于一个“物以类聚,人以群分”的假设,喜欢相同物品的用户更有可能具有相同的兴趣。基于协同过滤的推荐系统一般应用于有用户评分的系统之中,通过分数去刻画用户对于物品的喜好。协同过滤被视为利用集体智慧的典范,不需要对项目进行特殊处理,而是通过用户建立物品与物品之间的联系。它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。
这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好。
B(BENEFIT)好处:
- 当用户不知道吃什么的时候给用户一个可以帮助决定吃什么的功能,满足他们的想法。
- 用户使用我们的系统可以趣味的决策,甚至快速选定吃什么,从而节约时间,提高效率。对抗选择困难症~有更多的时间做其他事情。
C(COMPETITORS)竞争:
- 在我们自己看来,我们的想法足够新,并没有什么竞争对手,就比如类似的美团、糯米、饿了吗都是针对校外的外卖,还没有针对学校食堂的APP。我们目前没有什么竞争对手的,但是我们还要保持创造力,时时改进。
D(DELIVERY)交付:
- 我们的宣传推广方式很多,开始可以从自己身边出发让周围的同学尝试,,再到我们的整个学校,然后开始发动以前的高中同学等,在他们的学校帮助我们推广。还可以和校园社团的公众号进行合作推广。
用例文档
标题:用户评论菜品
角色:用户
主要成功场景:
- 用户登录系统
- 用户点击菜品卡片的“我要吐槽”按钮进入评论界面
- 用户点击菜品图片下方评分按钮进行评分,分值满分为五分
- 用户在下方输入框输入评论内容,点击发送。
- 系统显示评论成功
扩展场景:
- 用户敏感度过高,系统显示“您的账户暂不能发表评论”。
- 用户浏览评论,点赞评论,刷新后评论按赞数排序
功能说明书
假设:用户已经注册本系统
STEP1:用户登录系统,进入主页面
STEP2:用户点击主页下方菜品卡片的“我要吐槽”进入评论界面
STEP3:用户点击菜品图片下方的评分按钮进行评分,分值满分五分,最低为零分。
STEP4:用户点击评论按钮,在下方输入框输入内容,点击发送。
STEP5:系统显示评论成功或“您的账户暂不能发表评论”
技术说明书
- 从主页的我要吐槽链接到评论界面,采用button
- 评分连接数据库,最终菜品的平均得分是查询数据库这道菜的所有得分取平均值的整数、
并且显示为星星。
- 用户点击发送BUTTON时,通过数据库获取用户敏感度,判断是否超过设定值
- 超过设定值,弹出窗口显示“您的账户暂不能发表评论”评论失败
- 未超过设定值,将评论输入数据库,并将评论按赞数显示在下方,弹出“评论成功”
- 对于评论界面用一个GRID,四行两列
第一行第一列:title:hunger-killer
第一行第二列:无
第二行第一列:嵌套grid,左侧image,右侧三个textblock竖直排列 分别为菜品名,评分, 详细信息。菜品名从主页的传值获取。评分从数据库中查找,计算平均 值并取整。详细信息则是从数据库中获取菜品位置。
第二行第二列:一个textblock显示“相似菜品”,正下方一个list box显示从数据库中 获取的相同口味信息。
第三行第一列: 第一行显示五个星星,用户点击星星进行评分,点到第几个,前面的 星星亮起,评分为星星序号。左侧是textblock“给这道菜打分吧”
第二行显示一个输入框。左侧textblock“一起来吐槽”。Textblock左侧是一个button,内容“发布评论”。Click事件是将评分和输入框中的内容输入数据库中对应菜品的评论表中。评论字数为140字以内。
第三行第二列:暂无
第四行第一列:显示用户评论,每一个评论由左侧用户头像,用户名,中间打分,评论内容,右侧点赞button 赞数,评论时间组成。其中点赞button的click事件为赞数+1,存入数据库。
第四列第二行:logo