系统整体需求
收益模型
广告
- 访客及普通用户展现广告
付费内容
- 访客及普通用户无法查看付费内容的全部内容
- 付费内容免费浏览
- 付费内容可单篇付费
- 付费资源附件需要付费购买(普通用户原价,VIP 会员 X 折)
会员
- VIP 会员免广告
- 付费内容免费浏览
系统架构图
模块说明
用户中心
注册、登录
- Github 账号登录
- 微信扫码登录
- 短信验证码登录
- 账号密码登录
会员中心
- 非会员:提示开通
- 会员:显示到期时间和提示续费
支付历史
主要可以查询以下三类支付数据:
- 会员开通记录
- 内容付费记录
- 资源购买记录
内容
文章、页面、代码片段
字段 | 说明 | 必填 | 文章 | 页面 | 代码片段 |
---|---|---|---|---|---|
slug | 链接 | ✅ | ✅ | ✅ | ✅ |
title | 标题 | ✅ | ✅ | ✅ | ✅ |
content | 内容 | ✅ | ✅ | ✅ | ✅ |
paid | 是否为付费 | ❌ | ✅ | ✅ | ✅ |
price | 售价 | ❌ | ✅ | ✅ | ✅ |
tags | 标签 | ❌ | ✅ | ❌ | ✅ |
标签
slug
: stringname
: i18nObjdesc
: i18nObj
附件
slug
: stringtitle
: i18nObjdesc
: i18nObjpath
: stringtags
: Tag[]
付费内容核心业务流程
广告
暂定为两类广告:
- 默认展示 Google Adsense
- 广告位可付费预定(分阶段完成)
要求
对浏览器广告屏蔽插件进行检测,如果访客(非 VIP 用户)开启了广告拦截插件,则禁止显示文章内容正文,改为提示关闭广告拦截插件。
系统详细设计
待完善。
系统结构设计
用户模块
- 注册登录
- 个人信息补全
- 会员模块
支付模块
- Prisma Schema
- 支付宝二维码订单预创建
- 支付回调处理
- 手动查询更新订单状态
内容模块
- Sanity Schema
- 广告模块
项目代码结构
.
├── app # 核心应用代码,下属目录酌情添加
│ ├── components # 前端组件
│ ├── i18n # 翻译
│ ├── layout # 布局页面(可省,算组件也行)
│ ├── routes # Nested 路由
│ ├── services # 后端服务,如 Cache、Prisma 等
│ └── types # 类型定义 (不一定需要)
├── prisma # Prisma 数据库 Schema
├── public # Assets 静态资源
└── styles # Tailwind CSS 源码
项目根目录还会放置其他配置类的文件,如 Sanity、 ESLint、Prettier 配置等。
功能模块详细设计
用户模块
使用 Authing 服务,注册、登录合并,支持第三方登录(如 Github、Gitee、支付宝、微信小程序等)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。