乐趣区

关于前端:搭建个人知识付费应用系统整体需求及详细设计

零碎整体需要

收益模型

  • 广告

    • 访客及普通用户展示广告
  • 付费内容

    • 访客及普通用户无奈查看付费内容的全部内容
    • 付费内容收费浏览
    • 付费内容可单篇付费
    • 付费资源附件须要付费购买(普通用户原价,VIP 会员 X 折)
  • 会员

    • VIP 会员免广告
    • 付费内容收费浏览

零碎架构图

graph LR
    app[常识付费零碎]
    app --- user[用户核心]
    app --- content[内容]
    app --- ad[广告]
    
    user --- 注册 / 登录
    user --- 会员中心
    user --- 领取历史

    content --- 文章 --- 免费附件
    content --- 页面 --- 免费附件
    content --- 代码片段 --- 免费附件
    content --- comp1[禁止文本选中复制组件]
    content --- comp2[代码复制组件]
    
    ad --- 会员免广告组件
    ad --- comp3[AntiAdBlock 插件]

模块阐明

用户核心

注册、登录
  • Github 账号登录
  • 微信扫码登录
  • 短信验证码登录
  • 账号密码登录
会员中心
  • 非会员:提醒开明
  • 会员:显示到期工夫和提醒续费
领取历史

次要能够查问以下三类领取数据:

  • 会员开明记录
  • 内容付费记录
  • 资源购买记录

内容

文章、页面、代码片段
字段 阐明 必填 文章 页面 代码片段
slug 链接
title 题目
content 内容
paid 是否为付费
price 售价
tags 标签
标签
  • slug:string
  • name:i18nObj
  • desc:i18nObj
附件
  • slug:string
  • title:i18nObj
  • desc:i18nObj
  • path:string
  • tags:Tag[]
付费内容外围业务流程
graph TB
    Start([Start]) -- 拜访付费内容 -->
    check1{是否登录} --F--> free[仅收费内容可见]
    check1 --T--> check2{是否为 VIP 会员} --F-->
    check3{是否购买该内容} --F--> free
    check2 --T--> paid[可见全部内容]
    check3 --T--> paid
    paid -- 下载付费资源 --> check4{是否购买付费资源}
    free -- 下载付费资源 --> check4
    check4 --F--> payment[购买领取页面]
    check4 --T--> download[下载]

    download --> Stop([Stop])
    payment --> Stop

广告

暂定为两类广告:

  • 默认展现 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、支付宝、微信小程序等)。

界面具体设计

退出移动版