Skip to content

tzx666/eatWhat

Repository files navigation

这是一个react-native项目

作者:tzx,BUCT

版本0.0添加菜单选择功能

版本0.1添加网络功能

版本0.2完善用户登陆注册功能

版本0.3:添加管理员注册系统,添加菜品评分系统,添加本地存储系统,实现了外网穿透

版本0.5完成所有基本功能,没有调bug,没有美工,后端文件已上传至文件夹after-end for eatWhat

后端文件解读,所有文件内均有大致注释

App功能

1.提供所有学校数据库内的菜品,用户可以选择菜品并统计每顿饭的花费,用户可以在历史选餐的选项内查询每天选了什么 2.提供普通用户登陆,管理员登陆,退出功能及app说明页

对于普通用户功能如下:

1.如果可以申请未在数据库内的新学校,申请成功后用户将成为唯一一个该学校的超级管理员(默认第一个申请的是超级管理员)
2.用户可以对数据库内存在的菜品打分,并查看打分之后的结果
3.用户可以修改已经存在的菜品,并提交给管理员审核

对于管理员:

1:新增其注册学校的食堂和菜品,可修改食堂内菜品
2:处理普通用户提交到后台的预修改数据,并决策是否同意

程序流程图:

users.png

用户功能介绍:

1主界面:

该界面列举了本app支持的所有学校,食堂及菜品,您可以查看其他学校的学生都在吃什么(不推荐您选择他们的菜品,因为我们还没来得及更新删除历史订单的功能),您也可以选择自己的学校(如果不存在您所在的学校请看下文),并选择自己决定的菜品(我们没有来得及根据您选择的时间添加菜品,所以请您自行判断),在选择完毕后您可以通过购物车按钮结算

2用户界面

1:用户登陆:您可以以普通用户或管理员身份登陆,这将决定你的操作权限,您也可以注册账号
2:历史选餐:您可以在这里查看您选的餐,并查看最近自己吃了什么和消费金额
3:我的信息,如果您是普通用户,请参考权限普通用户功能,如果您是管理员,请参考管理员权限
4:设置:您可以在这里退出登陆 5:关于我们,您可以在这里了解此app的版本信息和制作目的

开发者笔记

复杂功能:个人认为最复杂的功能是如何做通后台与app的连接服务,这花了大约一周的时间,因为是从0开始学习后端,开始真的很难理解fetch应该如何发送数据,当然,最后成功之后,我认为这个后台管理系统虽然bug较多,但是非常有意义,它极大的扩展了这个app的使用范围,我认为这是一个可商用软件的雏形,我也有一个较为明确的改进方案,具体的我将会在后面详细阐述 最有意义的部分:将用户和管理员之间的权限分开和完整的后台系统,所有数据全部来自本地服务器的数据库,并且支持用户添加,用户使用越多,app的功能越完善,开发者只需要保证用户可以正常与后台通信即可,这减少了开发者维护和修改数据的工作量,也是我认为这个app最出色的设计

测试笔记

测试:因为使用了模块化设计,首先先写入了一些固定的菜品,最开始只是想做一个专门为北京化工大学服务的app,但是食堂工作人员禁止我拍照,于是我决定将这个app向商业化的方向规划,在这个方案中,我的主要精力放在了前后端的交互上,你可以在我的github项目里看到一个test.js的文件,这个里面的fetch函数就是为了前后端交互测试的,只有在这个文件内测试好的php脚本才会被添加到app中

测试例子

对每个组件,你都可以看到打印的log,在模块化设计中,我对每个组件都会打印log,直到他们可以正常的与其他组件通信,在前后端交互中,你可以在我的GitHub提交和test.js文件内找到debug的记录,不得不承认,模块化设计降低了工作量

还有什么精彩的地方?

我认为这只是一个简单的课设,尽管它做起来并没有那么简单,我认为它值得更多分数的特色有两点:
1 这个app有我一个人全部完成,我的队友没有参与任何工作,并且我并不知道为什么他拒绝做这个课设
2 它有一个完整的商用框架,并且我认为它可以较快的被移植到微信小程序或者更换服务器,添加登陆管理功能只需要添加php脚本和对应组件而不影响用户日常使用

App改进计划

关于用户体验

由于时间匆忙,我没有加入一些虽然微不足道但是影响用户体验的功能,例如,输入密码的遮盖条,用户选餐记录的自主删除功能,管理员的删除菜品和食堂的功能等等

关于商用化的规划

每一个大学应该有一个独特识别码,或者像飞机应答机一样的统一规范,举个例子,北京化工大学,BUCT,清华大学,PKU,并且每个用户只能注册在一所大学内
另外,我自己也承认这个app的设计真的非常简陋,我很抱歉,但是如果我有一个队友的话我认为会更好
在最初规划app时,我想到加入外卖功能,我将这个任务交给了我的队友,但是很遗憾,它没有机会上线了

About

a demo app by react native

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published