mall is a free, open source databases project written in Java and released under Apache-2.0. It has 84,789 GitHub stars, 29,826 forks and 15 open issues, and was last pushed 3 days ago. On this registry it ranks #1 of 81 tracked projects in Databases, with 5 head-to-head comparisons available. It gained 19 stars over the last 3 tracked days.

What is mall?

What it is

mall is a complete e-commerce system built on Spring Boot and MyBatis, distributed as a Java project under the Apache-2.0 license. It ships two applications in one repository: a storefront system for shoppers and an administrative back office for operators. The storefront covers the home portal, product recommendation, product search, product display, shopping cart, order flow, member center, customer service, and help center. The back office covers product management, order management, member management, promotion management, operations management, content management, statistics reports, finance management, permission management, and settings. Deployment is containerized with Docker. The project lives in the Java and Spring ecosystem, and its topic list places it alongside MySQL, Redis, MongoDB, Elasticsearch, RabbitMQ, and the ELK stack.

The concrete problem it solves is the gap between a demo storefront and a working commerce stack. A team that needs catalog, cart, checkout, membership, promotions, and reporting normally assembles those pieces from scratch, wiring an ORM, an authorization framework, a search engine, a message broker, a cache, and object storage by hand. mall provides those layers already integrated: MyBatis with MyBatisGenerator for data access, Spring Security with JWT for authentication and authorization, Elasticsearch for the search subsystem, RabbitMQ for messaging, Redis for in-memory storage, and MongoDB as a NoSQL store. The repository is split into mall-common, mall-mbg, mall-security, mall-admin, mall-search, mall-portal, and mall-demo, so the administrative API, the storefront API, and the search service can be read and deployed separately.

Key capabilities

  • Storefront API in mall-portal covering home portal, product recommendation, product search, product display, cart, order flow, member center, customer service, and help center.
  • Administrative API in mall-admin covering product, order, member, promotion, operations, content, statistics report, finance, permission, and settings management.
  • Dedicated search service in mall-search built on Elasticsearch.
  • Authentication and authorization through Spring Security with JWT login support, packaged as the reusable mall-security module.
  • Data layer generated by MyBatisGenerator and exposed through MyBatis, with Druid as the connection pool and PageHelper for physical pagination.
  • Object storage support for both Aliyun OSS and MinIO.
  • Log collection and visualization through LogStash and Kibana, with Nginx serving static resources.

Who uses it and how

  • Teams evaluating a full commerce stack can open the hosted admin demo and the hosted storefront demo before installing anything.
  • Developers learning Spring Boot, Spring Security, and MyBatis use the project as a reference implementation, following the written tutorial and the video tutorial published alongside the code.
  • Operators running a self-hosted shop deploy the backend with Docker and pair it with the separate mall-admin-web
project readme (upstream, from github) — read inline

mall

公众号 交流 学习教程 SpringCloud版本 后台管理系统 前台商城项目 码云

友情提示

  1. 快速体验项目在线访问地址
  2. 全套学习教程《mall学习教程》
  3. 视频教程《mall视频教程》
  4. 微服务版本:基于Spring Cloud Alibaba的项目:mall-swarm
  5. 分支说明master分支基于Spring Boot 3.5+JDK 17,dev-v2分支基于Spring Boot 2.7+JDK 8。

前言

mall项目致力于打造一个完整的电商系统,采用现阶段主流技术实现。

项目文档

文档地址:https://www.macrozheng.com

项目介绍

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

项目演示

后台管理系统

前端项目mall-admin-web地址:https://github.com/macrozheng/mall-admin-web

项目演示地址: https://www.macrozheng.com/admin/index.html

后台管理系统功能演示

前台商城系统

前端项目mall-app-web地址:https://github.com/macrozheng/mall-app-web

项目演示地址(将浏览器切换为手机模式效果更佳):https://www.macrozheng.com/app/

前台商城系统功能演示

组织结构

mall
├── mall-common -- 工具类及通用代码
├── mall-mbg -- MyBatisGenerator生成的数据库操作代码
├── mall-security -- SpringSecurity封装公用模块
├── mall-admin -- 后台商城管理系统接口
├── mall-search -- 基于Elasticsearch的商品搜索系统
├── mall-portal -- 前台商城系统接口
└── mall-demo -- 框架搭建时的测试代码

技术选型

后端技术
技术 说明 官网
SpringBoot Web应用开发框架 https://spring.io/projects/spring-boot
SpringSecurity 认证和授权框架 https://spring.io/projects/spring-security
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatisGenerator 数据层代码生成器 http://www.mybatis.org/generator/index.html
Elasticsearch 搜索引擎 https://github.com/elastic/elasticsearch
RabbitMQ 消息队列 https://www.rabbitmq.com/
Redis 内存数据存储 https://redis.io/
MongoDB NoSql数据库 https://www.mongodb.com
LogStash 日志收集工具 https://github.com/elastic/logstash
Kibana 日志可视化查看工具 https://github.com/elastic/kibana
Nginx 静态资源服务器 https://www.nginx.com/
Docker 应用容器引擎 https://www.docker.com
Jenkins 自动化部署工具 https://github.com/jenkinsci/jenkins
Druid 数据库连接池 https://github.com/alibaba/druid
OSS 对象存储 https://github.com/aliyun/aliyun-oss-java-sdk
MinIO 对象存储 https://github.com/minio/minio
JWT JWT登录支持 https://github.com/jwtk/jjwt
Lombok Java语言增强库 https://github.com/rzwitserloot/lombok
Hutool Java工具类库 https://github.com/looly/hutool
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
SpringDoc API文档生成工具 https://github.com/springdoc/springdoc-openapi
Hibernator-Validator 验证框架 http://hibernate.org/validator
前端技术
技术 说明 官网
Vue 前端框架 https://vuejs.org/
Vue-router 路由框架 https://router.vuejs.org/
Vuex 全局状态管理框架 https://vuex.vuejs.org/
Element 前端UI框架 https://element.eleme.io
Axios 前端HTTP框架 https://github.com/axios/axios
v-charts 基于Echarts的图表框架 https://v-charts.js.org/
Js-cookie cookie管理工具 https://github.com/js-cookie/js-cookie
nprogress 进度条控件 https://github.com/rstacruz/nprogress
移动端技术
技术 说明 官网
Vue 核心前端框架 https://vuejs.org
Vuex 全局状态管理框架 https://vuex.vuejs.org
uni-app 移动端前端框架 https://uniapp.dcloud.io
mix-mall 电商项目模板 https://ext.dcloud.net.cn/plugin?id=200
luch-request HTTP请求框架 https://github.com/lei-mu/luch-request
架构图
系统架构图

系统架构图

业务架构图

业务架构图

模块介绍
后台管理系统 mall-admin
前台商城系统 mall-portal

功能结构图-前台.jpg

开发进度

项目开发进度图

环境搭建

开发工具

工具 说明 官网
IDEA 开发IDE https://www.jetbrains.com/idea/download
RedisDesktop redis客户端连接工具 https://github.com/qishibo/AnotherRedisDesktopManager
Robomongo mongo客户端连接工具 https://robomongo.org/download
SwitchHosts 本地host管理 https://oldj.github.io/SwitchHosts/
X-shell Linux远程连接工具 http://www.netsarang.com/download/software.html
Navicat 数据库连接工具 http://www.formysql.com/xiazai.html
PowerDesigner 数据库设计工具 http://powerdesigner.de/
Axure 原型设计工具 https://www.axure.com/
MindMaster 思维导图设计工具 http://www.edrawsoft.cn/mindmaster
ScreenToGif gif录制工具 https://www.screentogif.com/
ProcessOn 流程图绘制工具 https://www.processon.com/
PicPick 图片处理工具 https://picpick.app/zh/
Snipaste 屏幕截图工具 https://www.snipaste.com/
Postman API接口调试工具 https://www.postman.com/
Typora Markdown编辑器 https://typora.io/

开发环境

readme truncated — read the full docs on github

Frequently asked questions

Is mall free to use?

mall is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mall do?

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容

What is mall written in?

mall is primarily written in Java. Its source is publicly available at https://github.com/macrozheng/mall, and it has 84,789 GitHub stars.