1.项目目标与要求
1.1 目标:
本项目旨在为买家与卖家搭建一个在线食品交易平台,既能帮助不方便出门的顾客购买食物,又能帮助食品实体店的店家通过本平台赚钱。通过天黑黑外卖系统卖家可以发布各种各样食品的信息(价格、简介、图片等),买家可以通过浏览店铺或者搜索菜名找到心仪的食品并下单购买。
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 测试截图:
首页:
店铺的浏览:
登录:
注册:
用户个人中心
用户订单查询:
用户资料修改:
店家店铺中心:
店家订单处理:
店家食品编辑: