MvpFast 文档
指南

了解项目

帮助你了解 MvpFast 的技术栈和项目架构

技术栈

类别技术版本
框架Next.js (App Router)15
语言TypeScript5
UI 框架Tailwind CSS + DaisyUI4 / 5
数据库MongoDB Atlas + Prisma ORM-
认证NextAuth.js v5 + RBAC5 (beta)
国际化next-intl-
状态管理Redux Toolkit-
文档/博客Fumadocs + MDX-
AI 服务OpenRouter / SiliconFlow-
文件存储Cloudflare R2-
部署Vercel / Docker-
支付微信支付 v3 API-
短信/邮件阿里云短信 / SMTP 邮件-

项目架构

MvpFast 使用 路由组 (Route Groups) 分离两套独立的布局系统:

src/app/
├── (fumadocs)/           # 文档/博客(Fumadocs UI 布局)
│   ├── docs/             # /docs/*
│   └── blog/             # /blog/*

├── (main)/               # 主应用(自定义布局)
│   ├── [local]/          # 国际化路由 /zh/* 和 /en/*
│   │   ├── page.tsx      # 首页 Landing Page
│   │   ├── auth/         # 登录 / 注册
│   │   ├── dashboard/    # 后台管理(RBAC 保护)
│   │   └── pay/          # 支付页面
│   └── api/              # API 路由
│       ├── admin/        # 管理员接口(需鉴权)
│       ├── user/         # 用户接口(需登录)
│       └── wx/           # 微信登录 + 微信支付

路由组名称 (fumadocs)(main) 不会出现在 URL 中。

根布局

主应用的根布局位于 src/app/(main)/layout.tsx,包含以下功能:

  • 国际化 SEO — 通过 next-intlgetTranslations 动态生成多语言 metadata
  • Open Graph / Twitter Card — 自动生成社交分享信息
  • JSON-LD 结构化数据<GlobalJsonLd /> 组件输出搜索引擎结构化数据
  • 主题控制 — 强制亮色主题,通过 DaisyUI 的 data-theme 切换
  • 全局 Provider — SessionProvider (认证)、ReduxProvider (状态)、ThemeProviders (主题)
  • Google Analytics — 通过独立组件按需加载,不阻塞渲染

核心目录

目录说明
src/components/landingpage/首页组件 (Hero、Feature、Price、FAQ 等)
src/components/dashboard/后台组件 (Table 等)
src/components/weChat/微信登录/支付组件
src/models/数据库操作函数 (CRUD 封装)
src/lib/工具库 (鉴权、支付签名、R2 存储、RBAC 等)
src/i18n/messages/国际化翻译文件 (zh.json / en.json)
src/store/Redux 全局状态管理
src/constants/常量定义 (路由、API 地址、消息等)
prisma/schema.prisma数据库模型定义
content/MDX 文档和博客内容

认证与权限

系统使用 RBAC (基于角色的访问控制),定义在 src/lib/rbac.ts

  • admin — 全部权限 (用户管理、订单、系统配置等)
  • user — 基础权限 (个人信息、AI 对话、自己的订单等)

权限在三层生效:

  1. 中间件层 (src/middleware.ts) — 根据路由自动拦截未授权访问
  2. API 层requireAdmin()requirePermission() 鉴权
  3. 页面层hasPermission() 控制 UI 显示

配置管理

MvpFast 采用 代码配置 + 数据库配置 双层模式:

配置类型位置说明
购买模式 / 商品src/config.ts支持 direct (直接购买) 和 credits (积分购买) 两种模式
站点名称 / 登录方式 / 支付方式数据库 SystemConfig通过后台管理界面修改,支持审计日志
国际化文本src/i18n/messages/*.json首页、导航、价格等所有展示文本
主题色src/app/(main)/globals.cssDaisyUI 主题变量 --p
环境变量.env数据库、密钥、第三方服务凭据

On this page