1.项目目标与要求
1.1 目标:
本项目旨在为买家与卖家搭建一个在线食品交易平台,既能帮助不方便出门的顾客购买食物,又能帮助食品实体店的店家通过本平台赚钱。通过天黑黑外卖系统卖家可以发布各种各样食品的信息(价格、简介、图片等),买家可以通过浏览店铺或者搜索菜名找到心仪的食品并下单购买。天黑黑外卖系统计划在 2016.7.22 日前完成,力求为买卖双方提供快捷便利的外卖平台。
1.2 项目功能需求:
- 数据库建表,服务器平台搭建,网页界面设计
- 用户登录,包括商家、用户
- 用户修改个人信息,电话,送餐地址,密码等
- 管理员可对用户信息进行查看和管理;管理员对商家进行查看和管理;
- 商家录入菜单;
- 餐点信息包括:
-
- 餐点名称
- 餐点类型(饮料、小吃、主食)
- 库存数量
- 餐点单价
- 餐点图片
- 菜单的修改、删除
-
- 根据类型或关键字筛选相关菜单
- 用户登录,选择餐点加入购物车
- 购物车内餐点数量的修改、删除
- 用户订单提交
-
- 商家确认点单,库存数量修改
- 历史订单查询,根据用户号或者用户信息查询用户历史订单
- 餐点欢迎度分析,统计各类餐点的选购频率,按频率排序
2.项目内容
2.1 功能需求
2.1.1业务流程描述
系统功能模块的划分:
2.1.2处理流程的分析(顾客寻找菜品并且下单):
2.2 界面设计
顾客界面设计
顶部导航 |
顶部导航 |
左部导航 |
个人信息展示区 |
左部导航 |
其他简略信息展示区 |
店家界面设计
顶部导航 |
顶部导航 |
左部导航 |
店家信息展示区 |
左部导航 |
其他简略信息展示区 |
首页界面设计
Logo 区 |
登录入口 |
搜索框 |
搜索框 |
展示店铺区(自动按销量排序) |
展示店铺区(自动按销量排序) |
店铺界面设计
顶部导航 |
顶部导航 |
用户状态 |
商家信息展示区 |
商家信息展示区 |
商家信息展示区 |
菜品展示区 |
公告区 |
公告区 |
菜品展示区 |
顾客购物车区 |
顾客购物车区 |
2.3 系统设计
2.3.1 软件层次结构:
2.3.2 类图:
2.3.3 时序图
2.3.4 数据库表
表 1 顾客表
字段名称 |
数据类型 |
数据大小 |
存储信息 |
customerID |
VCHAR |
20 |
顾客的 ID |
customerName |
VCHAR |
50 |
名字 |
customerPassword |
VCHAR |
32 |
用户密码 |
customerTel |
VCHAR |
20 |
用户电话 |
customerPhoto |
VCHAR |
500 |
用户头像 |
customerAddress |
VCHAR |
500 |
送餐地址 |
securityQuestion |
VCHAR |
500 |
密保问题 |
securityAnswer |
VCHAR |
500 |
密保问题答案 |
customerMoney |
DOUBLE |
消费者的余额 |
表 2 店家表
字段名称 |
数据类型 |
数据大小 |
存储信息 |
sellerID |
VCHAR |
20 |
店家的 ID |
sellerName |
VCHAR |
50 |
店家名字 |
sellerPassword |
VCHAR |
32 |
店家密码 |
sellerTel |
VCHAR |
20 |
店家电话 |
shopID |
VCHAR |
20 |
店铺电话 |
securityQuestion |
VCHAR |
500 |
密保问题 |
securityAnswer |
VCHAR |
500 |
密保问题答案 |
表 3 店铺表
字段名称 |
数据类型 |
数据大小 |
存储信息 |
shopID |
VCHAR |
20 |
店铺的 ID |
shopName |
VCHAR |
50 |
店名 |
shopType |
VCHAR |
10 |
店铺主营类型 |
shopTel |
VCHAR |
20 |
店铺电话 |
shopID |
VCHAR |
20 |
商家所开店铺 ID |
shopAddress |
VCHAR |
500 |
商家地址 |
shopPhoto |
VCHAR |
500 |
店铺图片 |
shopLicense |
VCHAR |
10 |
店铺是否有执照 |
shopIntroduction |
VCHAR |
500 |
店铺简介 |
notice |
VCHAR |
500 |
店铺公告 |
state |
INT |
店的状态信息 |
表 4 菜品表
字段名称 |
数据类型 |
数据大小 |
存储信息 |
dishID |
VCHAR |
10 |
菜 ID |
dishName |
VCHAR |
50 |
菜名 |
dishType |
VCHAR |
10 |
菜品类型(主食,小吃,饮料) |
dishIntroduction |
VCHAR |
500 |
菜的介绍 |
shopID |
VCHAR |
20 |
菜所属店铺 ID |
dishPrice |
DOUBLE |
菜单价 | |
dishStock |
INT |
菜的库存 | |
dishPhoto |
VCHAR |
500 |
菜的照片 |
hot |
INT |
菜的销量 |
表 5 订单表
字段名称 |
数据类型 |
数据大小 |
存储信息 |
orderID |
VCHAR |
10 |
订单 ID |
shopID |
VCHAR |
20 |
店铺 ID |
customerID |
VCHAR |
20 |
顾客 ID |
dishID |
VCHAR |
10 |
菜品 ID |
quantity |
INT |
购买数量 | |
totalPrice |
DOUBLE |
本份订单总价 | |
dealTime |
DATE |
下单时间 |
表 6 管理员表
字段名称 |
数据类型 |
数据大小 |
存储信息 |
adminID |
VCHAR |
20 |
管理员 ID |
userName |
VCHAR |
50 |
用户名 |
password |
VCHAR |
32 |
管理员密码 |
2.4 系统测试
2.4.1 测试环境:
- 所有实现与测试都是在 Windows10 操作系统的 PC 下实现的;
- JSP 页面和 servlet 代码的编写是在 Eclipse;
- 用 Tomcat 来响应 JSP 页面的请求;
- 所有数据都保存在 MySQL 数据库下。
2.4.2 测试截图:
首页:
店铺的浏览:
登录:
注册:
用户个人中心
用户订单查询:
用户资料修改:
店家店铺中心:
店家订单处理:
店家食品编辑:
3.课程总结
3.1 成果:
项目圆满完成了外面系统预期实现的所有功能。
在顾客方面,实现了以下功能:
- 浏览菜单
- 搜索(按热度搜索/按食品种类搜索)
- 编辑个人资料,包括:
-
- 顾客的头像,
- 顾客的名字,
- 顾客的联系电话,
- 顾客希望送餐的地址 ,
- 顾客登录的密码,
- 顾客用以找回密码的密保问题和密保答案
- 购买商品
- 查看历史订单
在店家方面,实现了如下功能:
- 编辑个人资料,包括
-
- 店家名字,
- 店家联系电话,
- 店家登入密码,
- 店家用以找回密码的密保问题和密保答案
- 店家开店
- 编辑店铺资料,包括:
-
- 店铺的图片,
- 店铺的名字,
- 店铺联系电话,
- 店铺实际地址,
- 店铺的介绍,
- 店铺最近公告
- 编辑食品资料,包括:
-
- 食品图片,
- 食品名称,
- 食品价格,
- 食品类型,
- 食品库存
- 处理订单:接受订单 | 拒单
在管理员方面,实现了下面的功能:
- 店家审核
- 添加/修改店家
- 添加/修改用户
- 订单处理
所有用户都有登录,注册等功能。
另外用户,商家和客户可以修改自己信息并能够通过密保找回密码;
在安全性方面,系统对用户的登录密码进行加密,确保用户密码不外泄;
在智能推荐方面,系统通过对食品销量进行排序,优先对顾客提供高质量的菜品等等。
3.2 不足之处:
虽然项目完成了预期实现的功能但仍然有不足之处,首先,即使对密码加密,数据库没有用安全软件保护,所以可能被不法黑客恶意攻击,窃取数据库信息,存在较大的信息遭窃取的风险,其次,用户上传新的图片之后,系统不会删除之前上传的图片,在一定程度上在形成了系统的冗余。