大型软件设计实验:多人点餐小程序—第一轮迭代报告

1 需求分析

中华民族自古以来有着谦逊礼让的优良传统美德,在当今时代的餐桌文化上亦是如此,但有时这种互相谦让的精神也会给同坐一桌的食客带来一些困扰。我们一定遇到过这种情况:朋友家人来饭店聚餐,大家围坐一桌准备点菜时,就会开始相互让着菜单给其他人点菜。这样虽然展现了对在座其他客人的尊敬和理解,但如此周旋的确会延长点菜动作的时间,更重要的是,最后菜品上桌,却发现很多是自己不喜欢或不能吃的食物,从而让自己的肚子受了罪。

针对以上现象,我们小组发现目前市面上的点餐软件产品仅有少数支持多人同时点餐,且没有让顾客标记忌口或菜单中不喜欢的菜品的功能。于是,我们决定开发一个能够使同桌食客共享点餐并且都能满意的微信小程序,以作为本次大型软件设计实验的作业项目。

2 产品定义

2.1 产品介绍

随着经济发展,饮食文化逐渐趋向多元化,多人聚餐成为了年轻人社交方式的主流。但是,多人聚餐面临着重口难调、点餐局面混乱、每个人不能够充分表达个人饮食诉的问题和局限性。本次软件开发的出发点便是解决这些尚存的问题,共享点餐功能以实现在个人手机上实时显示本桌已点菜品,从而让每个人都同时参与到菜品的选择之中,在让大家满意的同时也减少了时间消耗。

该小程序通过微信这一社交平台邀请他人参与到本桌点餐之中,具有跨空间性的特点。同时,成员可以在菜单中标注出自己忌口或不中意的菜品,从而他人获知自身的喜好。在后续开发中,我们拟添加智能点菜功能,利用推荐算法,根据每个人口味喜好、历史点菜记录已经当前聚餐人数等因素生成一份推荐菜单以供参考。

2.2 产品功能简介

① 多人同时点餐:菜品添加删减信息同步出现在多人客户端中;
② 邀请好友:通过微信分享的功能将其他用餐人员拉入同一点餐房间中,此功能可邀请尚未到场的朋友加入共同点菜;
③ 扫描菜单:通过二维码扫描,导入商家的菜单,以此实现用本小程序可在多个不同商家店内点餐的功能
④ 标记我的忌口:选择“我”不吃的配菜、调料等,以及“我”能接受的辣度;
⑤ 标记不喜欢菜品:在菜单中按下标记按钮表示自己不想吃此道菜,标记信息会同步出现在多人客户端中;
⑥ 智能推荐菜单:根据本点餐房间中每个人口味的喜好(忌口)、历史点菜的记录与用餐人数等因素生成一份推荐菜单,以供参考;
⑦ 结账:直接跳转微信付款界面完成结账,可选择仅支付个人所点菜品、AA制买单及请客等选项。

3 开发平台

本次小程序的开发平台为Windows上的微信web开发者工具和云开发。其中云开发(Tencent Cloud Base,TCB)是腾讯云为移动开发者提供的一站式后端云服务,它帮助开发者统一构建和管理资源,免去了移动应用开发过程中繁琐的服务器搭建及运维、域名注册及备案、数据接口实现等繁琐流程,让开发者可以专注于业务逻辑的实现,而无需理解后端逻辑及服务器运维知识,开发门槛更低,效率更高。

4 项目分工

项目人数:6人

项目经理:督促项目进度
产品经理:需求分析、产品定义
架构师:模块划分、接口规划
设计师:界面设计
测试师:进行产品测试
机动:听从项目经理安排

同时,该6人都作为程序员参与编码。

5 产品设计

5.1 界面设计

前三幅图为前端设计师成员的手稿,第四幅图为编码实现的页面框架:
大型软件设计实验:多人点餐小程序—第一轮迭代报告大型软件设计实验:多人点餐小程序—第一轮迭代报告大型软件设计实验:多人点餐小程序—第一轮迭代报告大型软件设计实验:多人点餐小程序—第一轮迭代报告

5.2 数据库设计

大型软件设计实验:多人点餐小程序—第一轮迭代报告
Collection:
菜品
菜品编号,菜品名称,菜品特征,菜品类别,菜品价格)
顾客
点菜人ID,忌口,偏好特征)
点菜
点菜人(外键)菜品编号(外键),点菜数量,备注)

说明:每个商家对应一张菜品表单,该表单可生其对应菜单。每次食客新建一个房间,都将新建一张点菜表单,多人点餐可对该表单进行操作。顾客表单中记录授权过的用户信息,该数据便于后续推荐算法的使用。

6 第一轮迭代进展

6.1 第一轮迭代目标

① 设计小程序界面,实现界面在客户端的显示
② 实现单份菜单的导入
③ 实现多人建立房间、同时点餐功能
④ 实现结账金额获取

6.2 第一轮迭代进度

① 第一次课后:组建队伍,初步探讨选题;
② 第一次会议:讨论选题方向,发散思维后对每一个想法进行深入探讨,讨论其中优劣及可行性,最终确定开发内容;
③ 每个成员开始准备,配置各自的开发环境,组建GitHub小组,创建博客账户,确定团队成员分工角色,确定项目背景;
④ 第二次会议:确定每个成员的任务分工,讨论确定一轮迭代应完成的目标,即小程序的基本功能及其如何实现;
⑤ 前端成员设计小程序界面手稿,团队成员共同认可后开始利用代码对其实现,做出初步UI框架;云开发成员学习关于微信小程序云开发内容,掌握数据库、云函数等使用方法;
⑥ 第三次会议:集中讨论当前已完成的成果及再次明确小程序所能实现的功能;
⑦ 第四次会议:为团队成员配置git多人协同,以实现前端组及云开发组成果的及时对接;
⑧ 云开发组成员分工实现云函数;
⑨ 第五次会议:当面拼接各部分任务代码,进行资源整合与调试;
⑩ 继续对前后端代码进行更改调试,撰写博客内容。

6.3 第一轮迭代成果

① 完成界面设计及实现
说明:能够实现菜品类别切换,打开左侧侧边栏选择忌口,查看已选择项目。(部分实时渲染还未写入,第二轮迭代将进行完善)
大型软件设计实验:多人点餐小程序—第一轮迭代报告大型软件设计实验:多人点餐小程序—第一轮迭代报告
② 实现单份菜单的导入
③ 实现多人建立房间、同时点餐功能
说明:现在已点菜品栏已经可以实现多人点餐的同步显示

7 第二轮迭代展望

将尽快实现多份菜单的导入,以及不同菜单的二维码指引。
将为菜品编写特征、获取用户喜好,为推荐算法做下铺垫。

PS:git多人协作、云开发项目入门教程可见成员博客,链接如下link.