使用Next.js+Spring boot开发的多供应商电子商务开源项目。
1、后端应用:
需求:用户可以在其中创建自己的商店并销售产品,但需要订阅。用户创建商店后,需要管理员批准,并且用户需要订阅其中一项计划才能开始销售产品。
2、业务特征:
- 横幅
- 目录
- 命令
- 购物车
- 最喜欢的产品
- 供应商|商店
- 订阅计划
- 订阅促销代码
- 评论
- 用户
3、要求
- Java(如果要启用虚拟线程,请使用Java 17或Java 21 )
- PostgreSQL
- 2C2P支付网关凭证
- 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 文档 : http://localhost:8080/api-docs-ui
5、前端:
- Node.js 18.17 或更高版本
- 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、架构: