Next.js+Spring boot开源电子商务项目


使用Next.js+Spring boot开发的多供应商电子商务开源项目。

1、后端应用:
需求:用户可以在其中创建自己的商店并销售产品,但需要订阅。用户创建商店后,需要管理员批准,并且用户需要订阅其中一项计划才能开始销售产品。

2、业务特征:

  • 横幅
  • 目录
    • 类别(多级支持)
    • 产品(变体支持)
  • 命令
  • 购物车
  • 最喜欢的产品
  • 供应商|商店
  • 订阅计划
  • 订阅促销代码
  • 评论
  • 用户

3、要求

  1. Java(如果要启用虚拟线程,请使用Java 17Java 21 )
  2. PostgreSQL
  3. 2C2P支付网关凭证
  4. Firebase 身份验证设置

该项目使用 Firebase auth 作为身份验证层。因此,您首先需要设置 firebase 身份验证并手动创建一个所有者帐户。或者您可以使用任何其他身份验证提供商,例如 AWS Cognito、Auth0 等,并进行相应的设置。

为不同的活动配置文件(例如,dev、staging、prod)使用额外的 YML 配置文件。这是env.development.yml内部的示例配置/marketplace-application/src/main/resources/

app:
  database:
    url: jdbc:postgresql://localhost:5432/marketplace-db
    username: <username>
    password: <password>
  image:
    base-url: (http|https)://<your-domain>/images
    base-path: <image-base-path> # for storing uploaded image (e.g, /var/www/html/images)
  payment:
    merchant-id: <2c2p-merchant-id>
    merchant-sha-key: <2c2p-merchant-sha-key>
    token-request-url: <2c2p-payment-token-request-url>
  firebase:
    api-key: <firebase-api-key>
    jwk-set-uri: https://www.googleapis.com/service_accounts/v1/jwk/securetoken%40system.gserviceaccount.com
    issuer-uri: https://securetoken.google.com/<projectId>
  super-user:
    name: <owner-name>
    email: <owner-email-address> # The one you created from firebase auth
    uid: <firebase-auth-user-uid> # The one you created from firebase auth
  misc:
    website-url: http://localhost:3000 # for payment redirection
    cors-origins: # cors domains for font-end website
      - http://localhost:3000


4、api:
后端生成三个主要 API 类别:

  • 管理 API
  • 供应商 API
  • 消费者API

探索 api 文档 : http://localhost:8080/api-docs-ui

5、前端

  1. Node.js 18.17 或更高版本
  2. TinyMCE 自托管

该项目使用TinyMCE进行富文本编辑。您需要在此处下载 TinyMCE 自托管源代码,然后解压缩并放置在公共文件夹中,或者您可以托管在您想要放置的任何地方。在此处阅读有关 TinyMCE 自托管的更多信息。

所需的.env.local文件属性。


NEXT_PUBLIC_APP_NAME=Marketplace

NEXT_PUBLIC_APP_DESCRIPTION=Multi-vendor marketplace ecommerce website

NEXT_PUBLIC_CONTACT_LOCATION=Yangon, Myanmar

NEXT_PUBLIC_CONTACT_EMAIL=yoursitename@domain.com

NEXT_PUBLIC_BASE_URL= # http://localhost:3000 or (http|https)://yourdomain.com

NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=

NEXT_PUBLIC_MAP_API_KEY=

NEXT_PUBLIC_API_URL= # backend api url

NEXT_PUBLIC_TINYMCE_SCRIPT_SOURCE=http://localhost:3000/tinymce/tinymce.min.js # Self-hosted TinyMCE source url 

该项目使用Bootstrap 5进行样式设置。可以修改bootstrap中的scss文件/styles/scss/bootstrap-custom.scss然后重新编译
npm run sass


6、架构: