健身CRM
与AI代理一起构建
影响者健身 CRM 后端

影响者健身 CRM 后端模板
教练档案、客户记录、宏目标和消息线程

一个在 Back4app 上的生产就绪的 影响者健身 CRM 后端,包含教练、客户档案、宏目标、锻炼日志、签到和消息线程记录。包括 ER 图、数据字典、JSON 模式、API 沙盒,以及一个用于快速引导的 AI 代理 提示。

关键CRM要点

此模板为您提供了一个包含教练、客户档案、宏目标、锻炼日志、签到和消息线程记录的影响者健身CRM后端,以便您的教练团队可以在更少的手动交接中从接收转到跟进。

  1. 教练和客户档案记录保持链接在每个客户档案上使用教练指针模型分配的教练,以便协调员可以看到每个客户的归属。
  2. 宏目标计划与客户时间线相匹配存储每个客户档案目标更新的卡路里、蛋白质克数、碳水化合物克数、脂肪克数和有效日期。
  3. 锻炼日志和签到历史一起存在在一个教练流程中跟踪训练分割、会话总结、锻炼次数、完成状态、体重(千克)、遵守评分和教练备注。
  4. 消息线程保持后续可见使用主题、未读计数、置顶和最后消息时间来显示需要回复的签到回顾线程。

网红健身 CRM 后端一览

网红健身 CRM 中的截止日期很少是可选的;结构化的记录层将日期转变为提醒而不是惊喜。可靠性是一项特性,而不是脚注。 Back4app 为需要截止日期、文档和通讯的网红健身 CRM 实践锚定教练、客户资料、宏目标、锻炼记录和签到,所有功能都在一个有权限的工作空间内。架构涵盖教练(用户名、电子邮件、显示名称、角色、是否活跃)、客户资料(客户代码、全名、电子邮件、目标、状态、教练、开始日期)、宏目标(客户、卡路里、蛋白质克、碳水化合物克、脂肪克、生效日期、备注)、锻炼记录(客户、锻炼日期、训练分割、课程总结、锻炼次数、负荷、完成状态)、签到(客户、签到日期、体重公斤、腰围厘米、遵守分数、睡眠小时、能量水平、照片网址、教练备注)和消息线程(客户、教练、最后消息时间、未读计数、置顶、主题),并内置身份验证和隐私控制。连接您喜欢的前端,并更快速地交付。

最佳用途:

健身网红教练应用宏目标仪表盘锻炼记录工具客户签到系统消息跟进工作流程团队选择BaaS作为教练产品

这个Influencer Fitness Crm后端是如何组织的

当系统消除了关于记录什么、在哪里找到它以及谁可以更改它的猜测时,人们在influencer fitness crm中能发挥出最佳表现。

将教练、客户档案和宏目标作为MVP范围的检查清单:如果没有建模,它将成为电子表格解决方案。

核心 CRM 模块

此中心中的每个技术卡片都使用相同的影响者健身CRM架构,包括教练、客户资料、宏目标、锻炼日志、签到和消息线程。

教练账户管理

教练存储用户名、电子邮件、显示名称、角色和是否活跃。

ClientProfile管理

ClientProfile存储clientCode、fullName、goal、status、coach和startDate。

MacroTarget计划

MacroTarget保持卡路里、蛋白质克、碳水化合物克、脂肪克、有效日期和备注。

锻炼日志会话

锻炼日志记录锻炼日期、训练分配、会话总结、锻炼次数、负荷量和完成状态。

签到评审

签到记录签到日期、体重公斤、腰围厘米、遵循评分、睡眠小时、能量水平、照片链接和教练笔记。

消息线程跟进

消息线程跟踪客户、教练、最后消息时间、未读计数、固定消息和主题。

为什么要使用Back4app构建您的Influencer Fitness CRM后端?

Back4app为您提供教练、客户档案、宏目标、训练日志、签到和消息线程基本单元,以便您的员工可以专注于教练决策,而不是基础设施工作。

  • 教练和客户资料易于查询: 使用教练进行员工身份识别,使用客户资料进行客户分配;相同的模式支持 intake、状态更新和开始日期追踪。
  • 宏目标和锻炼日志保持一致: 当教练需要比较营养目标与训练负荷时,可以同时获取客户的宏目标计划和锻炼日志会议。
  • 签到和消息线程保持检查可见: 使用签到进行体重测量、遵守分数、睡眠小时和教练备注,而消息线程则显示未读数量和固定主题以供后续跟进。

快速构建和迭代客户辅导功能,跨所有平台使用一个后端合同。

核心CRM优势

一个教练后端,帮助您管理客户对话,而不失去重要的细节。

更快的客户入职

从完整的客户资料、教练指针和开始日期架构出发,而不是手动创建输入表。

营养和训练一览

保持宏目标和锻炼日志条目对齐,以便员工可以比较卡路里、蛋白质克数、训练分配和锻炼计数。

可审核的签到时间表

使用签到历史查看体重(千克)、腰围(厘米)、遵守评分、睡眠小时数、能量水平以及教练备注的信息。

为教练团队提供作用域访问

应用ACL/CLP规则,以便只有指定的教练和允许的角色可以读取或更新客户的ClientProfile、MacroTarget、WorkoutLog、CheckIn和MessageThread记录。

一个适用于网页和移动端的架构

将相同的教练、ClientProfile、MacroTarget、WorkoutLog、CheckIn和MessageThread数据提供给仪表板和面向客户的应用程序。

人工智能辅助设置

通过一个结构化的提示快速生成后端框架和集成指导。

准备好启动您的影响者健身CRM应用程序了吗?

让 Back4app AI代理搭建您的教练后台,并从一个提示生成教练、客户档案、宏目标、锻炼日志、签到和消息线程流程。

免费开始 — 每月50个AI代理提示,无需信用卡

技术栈

这个影响者健身CRM后台模板中包含的一切。

前端
13+ 技术
后端
Back4app
数据库
MongoDB
认证
内置认证 + 会话
API
REST 和 GraphQL
实时
Live Queries

教练与客户的ER图

影响者健身CRM架构的实体关系模型。

查看图表源
Mermaid
erDiagram
    Coach ||--o{ ClientProfile : "coach"
    ClientProfile ||--o{ MacroTarget : "client"
    ClientProfile ||--o{ WorkoutLog : "client"
    ClientProfile ||--o{ CheckIn : "client"
    Coach ||--o{ MessageThread : "coach"
    ClientProfile ||--o{ MessageThread : "client"

    Coach {
        String objectId PK
        String username
        String email
        String password
        String displayName
        String role
        Boolean isActive
        Date createdAt
        Date updatedAt
    }

    ClientProfile {
        String objectId PK
        String clientCode
        String fullName
        String email
        String goal
        String status
        String coachId FK
        Date startDate
        Date createdAt
        Date updatedAt
    }

    MacroTarget {
        String objectId PK
        String clientId FK
        Number calories
        Number proteinGrams
        Number carbGrams
        Number fatGrams
        Date effectiveFrom
        String notes
        Date createdAt
        Date updatedAt
    }

    WorkoutLog {
        String objectId PK
        String clientId FK
        Date workoutDate
        String trainingSplit
        String sessionSummary
        Number exerciseCount
        Number volumeLoad
        String completionStatus
        Date createdAt
        Date updatedAt
    }

    CheckIn {
        String objectId PK
        String clientId FK
        Date checkInDate
        Number weightKg
        Number waistCm
        Number adherenceScore
        Number sleepHours
        String energyLevel
        String photosUrl
        String coachNotes
        Date createdAt
        Date updatedAt
    }

    MessageThread {
        String objectId PK
        String clientId FK
        String coachId FK
        Date lastMessageAt
        Number unreadCount
        Boolean pinned
        String topic
        Date createdAt
        Date updatedAt
    }

教练CRM集成流程

教练登录、客户加载、宏目标更新、锻炼记录、签到审查和线程后续的典型运行流程。

查看图表源
Mermaid
sequenceDiagram
  participant Coach
  participant CRM as Fitness Influencer Client CRM App
  participant Back4app as Back4app Cloud

  Coach->>CRM: Sign in
  CRM->>Back4app: POST /login
  Back4app-->>CRM: Session token

  Coach->>CRM: Open client pipeline
  CRM->>Back4app: GET /classes/ClientProfile?include=coach
  Back4app-->>CRM: ClientProfile rows

  Coach->>CRM: Review macro target and update it
  CRM->>Back4app: GET /classes/MacroTarget?include=client
  CRM->>Back4app: POST /classes/MacroTarget
  Back4app-->>CRM: MacroTarget objectId

  Coach->>CRM: Check workout logs and latest check-in
  CRM->>Back4app: GET /classes/WorkoutLog?include=client
  CRM->>Back4app: GET /classes/CheckIn?include=client
  Back4app-->>CRM: WorkoutLog and CheckIn entries

  CRM->>Back4app: GET /classes/MessageThread?include=client,coach
  Back4app-->>CRM: Thread list with unreadCount

字段指南

影响者健身 CRM 架构中每个类的完整字段级参考。

字段类型描述必填
objectIdStringAuto-generated unique identifier自动
usernameStringCoach login name
emailStringCoach email address
passwordStringHashed password (write-only)
displayNameStringPublic name shown to clients
roleStringStaff role such as coach or coordinator
isActiveBooleanWhether the coach account can sign in
createdAtDateAuto-generated creation timestamp自动
updatedAtDateAuto-generated last-update timestamp自动

9 字段在 Coach 中

教练访问和权限

如何通过 ACL 和 CLP 策略保护客户档案、宏目标、锻炼日志、签到历史和消息线程。

指定教练访问

只有指定的教练或允许的工作人员可以读取该客户的 ClientProfile、MacroTarget、WorkoutLog、CheckIn 或 MessageThread。

客户隐私边界

将 weightKg、waistCm、adherenceScore、sleepHours、photosUrl 和 coachNotes 视为限定的教练数据;在 Cloud Code 中验证写入。

可审查的写入路径

允许经过身份验证的工作人员创建日志,但在更新 CheckIn、MacroTarget 或 MessageThread 记录之前需要服务器端检查。

JSON 模式

原始 JSON 模式定义,准备复制到 Back4app 或用作实现参考。

JSON
{
  "classes": [
    {
      "className": "Coach",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "isActive": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ClientProfile",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "clientCode": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "goal": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "coach": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Coach"
        },
        "startDate": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "MacroTarget",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "calories": {
          "type": "Number",
          "required": true
        },
        "proteinGrams": {
          "type": "Number",
          "required": true
        },
        "carbGrams": {
          "type": "Number",
          "required": true
        },
        "fatGrams": {
          "type": "Number",
          "required": true
        },
        "effectiveFrom": {
          "type": "Date",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "WorkoutLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "workoutDate": {
          "type": "Date",
          "required": true
        },
        "trainingSplit": {
          "type": "String",
          "required": true
        },
        "sessionSummary": {
          "type": "String",
          "required": true
        },
        "exerciseCount": {
          "type": "Number",
          "required": true
        },
        "volumeLoad": {
          "type": "Number",
          "required": false
        },
        "completionStatus": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CheckIn",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "checkInDate": {
          "type": "Date",
          "required": true
        },
        "weightKg": {
          "type": "Number",
          "required": false
        },
        "waistCm": {
          "type": "Number",
          "required": false
        },
        "adherenceScore": {
          "type": "Number",
          "required": true
        },
        "sleepHours": {
          "type": "Number",
          "required": false
        },
        "energyLevel": {
          "type": "String",
          "required": true
        },
        "photosUrl": {
          "type": "String",
          "required": false
        },
        "coachNotes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "MessageThread",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "coach": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Coach"
        },
        "lastMessageAt": {
          "type": "Date",
          "required": true
        },
        "unreadCount": {
          "type": "Number",
          "required": true
        },
        "pinned": {
          "type": "Boolean",
          "required": true
        },
        "topic": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

使用人工智能代理构建

使用 Back4app 人工智能代理从此模板生成一个真实的影响者健身 CRM 应用,包括前端、后端、身份验证以及教练、客户、宏目标、锻炼、签到和消息线程流程。

Back4app 人工智能代理
准备好构建
在 Back4app 上创建一个安全的影响者健身 CRM 后端,采用这个确切的架构和行为。

架构:
1. 教练:用户名、邮箱、密码、显示名、角色、是否激活;objectId、创建时间、更新时间(系统)。
2. 客户档案:客户代码、全名、邮箱、目标、状态、教练(指向教练,必填)、开始日期;objectId、创建时间、更新时间(系统)。
3. 宏目标:客户(指向客户档案,必填)、卡路里、蛋白质克数、碳水化合物克数、脂肪克数、有效期、备注;objectId、创建时间、更新时间(系统)。
4. 锻炼日志:客户(指向客户档案,必填)、锻炼日期、训练分配、会话总结、锻炼次数、负载量、完成状态;objectId、创建时间、更新时间(系统)。
5. 签到:客户(指向客户档案,必填)、签到日期、体重公斤、腰围厘米、遵守评分、睡眠小时、能量水平、照片网址、教练备注;objectId、创建时间、更新时间(系统)。
6. 消息线程:客户(指向客户档案,必填)、教练(指向教练,必填)、最后消息时间、未读数量、置顶、主题;objectId、创建时间、更新时间(系统)。

安全性:
- 只有分配的教练可以读取/写入客户记录。使用云代码进行验证。

认证:
- 注册、登录、注销。

行为:
- 列出客户档案、添加宏目标、记录锻炼会话、捕捉每周签到,并保持教练线程最新。

交付:
- 带有架构、ACL、CLP 的 Back4app 应用;客户档案、宏目标、锻炼日志、签到和消息线程的前端。

按下面的按钮以打开预填充此模板提示的代理。

这是没有技术后缀的基础提示。您可以在之后调整生成的前端栈。

在几分钟内部署每月50个免费提示无需信用卡

API沙盒

尝试REST和GraphQL端点与Influencer Fitness CRM架构。响应使用模拟数据,无需Back4app账户。

加载 playground…

与此模板使用相同的架构。

选择您的技术栈

展开每张卡片以查看如何将 Coach、ClientProfile 和 MacroTarget 与您选择的技术栈集成。

Flutter 影响者健身 CRM 后端

React 影响者健身 CRM 后端

React 原生 影响者健身 CRM 后端

Next.js 影响者健身 CRM 后端

JavaScript 影响者健身 CRM 后端

Android 影响者健身 CRM 后端

iOS 影响者健身 CRM 后端

Vue 影响者健身 CRM 后端

Angular 影响者健身 CRM 后端

GraphQL 影响者健身 CRM 后端

REST API 影响者健身 CRM 后端

PHP 影响者健身 CRM 后端

.NET 影响者健身 CRM 后端

您所获得的每项技术

每个堆栈使用相同的影响者健身客户关系管理架构和API合同。

统一的教练数据结构

用一个一致的架构管理教练、客户资料、宏目标、锻炼日志、签到和消息线程条目。

针对客户的宏目标规划

存储每个客户计划的卡路里、蛋白质克、碳水化合物克、脂肪克和生效日期。

锻炼日志记录训练课程

捕获锻炼日期、训练分配、锻炼次数、训练负荷和课程总结以供教练审核。

签到历史以便后续跟进

保持签到日期、体重千克、遵守评分和教练笔记对教练的决策可见。

REST/GraphQL APIs用于教练应用

集成仪表盘、移动客户端和自动化,通过灵活的API。

健身 CRM 堆栈比较

比较所有支持的技术的设置速度、SDK 风格和 AI 支持。

框架设置时间健身 CRM 优势SDK 类型AI 支持
大约 5 分钟移动和网页的教练仪表板单一代码库。类型化 SDK完整
少于 5 分钟教练团队的快速网页仪表板。类型安全的 SDK完整
大约 3-7 分钟面向客户教练的跨平台移动应用。类型安全的 SDK完整
快速(5 分钟)设置用于教练工作流程的服务器渲染网页应用。类型安全的 SDK完整
约 3–5 分钟为 CRM 工作流程提供轻量级网络集成。类型化 SDK完整
大约 5 分钟为教练团队提供原生 Android 应用。类型化 SDK完整
少于 5 分钟为教练团队提供原生 iOS 应用。类型化 SDK完整
约 3–7 分钟React 教练评价的网络 UI。输入的 SDK完整
快速(5分钟)设置面向教练团队的企业网络应用。输入的 SDK完整
少于 2 分钟灵活的 GraphQL API 用于客户时间线。GraphQL API完整
快速(2分钟)设置REST API 集成用于教练应用。REST API完整
~3分钟服务器端 PHP 后端用于 CRM 工作流。REST API完整
~3–7分钟.NET 后端用于教练操作。类型化 SDK完整

设置时间反映了从项目引导到使用此模板架构的第一个 ClientProfile 或 MacroTarget 查询的预期持续时间。

问题与回答

关于使用此模板构建网红健身CRM后端的常见问题。

影响者健身 CRM 实践如何在需求增加时保持质量高?
教练账户管理、客户资料管理、宏目标规划如何支持影响者健身 CRM 流程从 intake 到 closure?
如何在不减慢日常工作的情况下添加网红健身CRM报告字段?
我如何使用 Flutter 查询客户资料和宏?
我如何保护 Next.js Server Actions 中的签到数据?
React Native 可以离线缓存训练日志吗?
我如何防止未授权访问客户时间线?
如何在 Android 上展示宏和锻炼的最佳方式是什么?

受到全球开发者的信任

与 Back4app 模板一起加入团队,更快交付影响者健身 CRM 产品

G2 Users Love Us Badge

准备好构建您的影响者健身 CRM 应用了吗?

在几分钟内开始您的辅导项目。无需信用卡。

选择技术