Giter Site home page Giter Site logo

Mallfoundry

Mallfoundry 是一个完全开源的使用 Spring Boot 开发的多商户电商平台。它可以嵌入到已有的 Java 程序中,或者作为服务器、集群、云中的服务运行。

领域模型(Interface)

领域模型采用接口化设计,将模型(Model)设计成接口(Interface)。

public interface Product extends ProductBody, StoreOwnership {

    ProductId toId();

    String getName();

    void setName(String name);

    ProductType getType();

    void setType(ProductType type);

    // ...
}

将领域模型设计成接口有以下优点:

  • 模型设计与编码分离。
  • 调用者使用 API 编程。
  • 与运行环境解耦,可以运行在独立进程、微服务之上。
  • 与持久技术解耦,业务代码与持久化的技术代码横向切分。

业务模块(Package)

Modules

Mallfoundry 整体由共享内核、支撑域、业务域和核心域四个部分组成。

  • Commons 模块:公用组件(Commons)、共享内核(Shared)组成。
  • Keystone 模块:身份(Identity)、安全(Security)组成。
  • Finance 模块:Payment(支付)、提现(Withdrawal)、充值(Recharge)、转账(Transfer)等组成。
  • Catalog 模块:商品(Product)、商品类目(Category)、商品品牌(Brand)、商品集合(Collection)等组成。
  • Trade 模块:购物车(Cart)、结算台(Checkout)、订单(Order)等组成。
  • Store 模块:商家(Store)、行业(Industry)、店铺员工(Staff)、店铺角色(Role)、店铺会员(Member)等组成。
  • Customer 模块:顾客(Customer)、收货地址(Address)、顾客积分(Point)、搜索词条(SearchTerm)等组成。
  • Marketing 模块:优惠券(Coupon)、广告(Banner)等组成。
  • Analytics 模块:数据仓库(EDW)、报表(Report)组成。
  • Shipping 模块:物流信息(Track)、运费模板(Rate)等组成。
  • Storage 模块:提供对象存储(OSS),集成 Aliyun OSS、Qiniu OSS、FTP 等存储服务。
  • Test 模块:提供一个总体测试环境。

环境要求(Requirements)

  • JDK11+ — 我们使用 JDK11 或以上版本。
  • Spring Boot — 我们使用 Spring Boot 作为后端的服务。
  • Spring Data JPA — 我们使用 JPA 作为主要的持久化框架。
  • PostgreSQL — 默认使用 PostgreSQL 作为数据源,也可以使用 MySQL 作为数据源。

开发(Development)

使用 Git 克隆到本地进行开发。

$ git clone https://gitee.com/mallfoundry/mallfoundry.git
$ cd mallfoundry
$ mvn compile

项目的默认启动入口在 spring-boot 项目中:

$ cd components/launch-modules/spring-boot
$ cd src/main/java/org/mallfoundry
$ cat StandaloneSpringBootApplication.java

REST API Docs

我们提供了一个部分 REST API 接口的文档:

http://mallfoundry.gitee.io/mallfoundry-api-reference

前端界面(UI)

整个 Mallfoundry 采用前后端分离的架构,后端服务不包含前端界面,需要另行编译安装前端。

商家后台

store-list

store-dashboard

store-product-list

store-product

store-order-list

store-order

store-coupon-list

store-balance

前台(H5)

持续更新中...

参与共建

获得 Mallfoundry 的最新动态,可以关注公众号「不够具体」。

qrcode-for-mp

和优秀的小伙伴们一起探讨领域驱动设计(DDD),可以添加 QQ 群。

qrcode-for-qq-group

许可证(License)

Mallfoundry 使用 GPLv2 许可证。有关详细信息,请参阅许可文件:

https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

mallfoundry's Projects

taroify icon taroify

Taroify 是移动端组件库 Vant 的 Taro 版本,两者基于相同的视觉规范,提供一致的 API 接口,助力开发者快速搭建小程序应用。

unitify icon unitify

Unitify 是移动端组件库 Vant 的 Uniapp & Taro Vue3 版本,两者基于相同的视觉规范,提供一致的 API 接口,助力开发者快速搭建小程序应用。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.