From 65c4c5ecf453602a8c0b5c980ba3974b034818b3 Mon Sep 17 00:00:00 2001 From: zhh Date: Mon, 26 Nov 2018 17:10:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=9A=E5=8A=A1=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++-- document/resource/mall_business_arch.png | Bin 0 -> 24970 bytes 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 document/resource/mall_business_arch.png diff --git a/README.md b/README.md index 0a7acc1..13f8e61 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ ## 项目介绍 `mall`项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。 -前台商城系统包含用户中心、会员成长、优惠券、积分、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务等模块。 -后台管理系统包含商品、订单、用户、促销、运营、内容、统计、财务、设置、权限等管理系统模块。 +前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 +后台管理系统包含商品、订单、用户、促销、运营、内容、统计、财务、设置、权限等管理模块。 ### 项目演示 @@ -73,6 +73,8 @@ nprogress | 进度条控件 | [https://github.com/rstacruz/nprogress](https://gi ##### 业务架构图 +![系统架构图](document/resource/mall_business_arch.png) + #### 模块介绍 ##### 后台管理系统 `mall-admin` diff --git a/document/resource/mall_business_arch.png b/document/resource/mall_business_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..b932cd1a56a5638430e3d2f23d6d475235cc6ccc GIT binary patch literal 24970 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
=JnElXwD;ZFWjUjEBDAE?+@jA|IPOMA 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 literal 0 HcmV?d00001