协作电子表格
与AI代理一起构建
协作电子表格后端

协作在线电子表格应用模板
实时协作与公式历史

一个在 Back4app 上准备好投入生产的 协作在线电子表格后端,具备实时功能和公式评估历史。包括 ER 图,数据字典,JSON 规范,API 游乐场,以及一个用于快速引导的 AI 代理 提示。

关键要点

此模板为您提供一个具有实时更新和公式评估历史的协作电子表格后端,以便您的团队能够专注于增强用户协作。

  1. 实时单元格更新使用WebSocket架构实现单元格编辑和内容更改的即时更新。
  2. 公式评估历史跟踪公式的更改并显示历史评估,以确保透明度。
  3. 协作功能允许多个用户同时编辑单元格并查看实时更改。
  4. 访问控制功能谨慎管理用户权限以保护敏感电子表格数据。
  5. 跨平台协作电子表格后台通过统一的REST和GraphQL API为电子表格数据提供Web和移动客户端服务。

什么是协作在线电子表格应用程序模板?

Back4app是一种后端即服务(BaaS),用于快速产品交付。协作在线电子表格应用程序模板是一个预构建的架构,包含用户、单元格、公式评估和协作更新。连接你喜欢的前端(React、Flutter、Next.js等)并更快上市。

最佳适用于:

协作在线电子表格应用程序实时数据编辑平台带公式的项目管理工具协作商务工具MVP发布团队选择BaaS作为协作功能的解决方案

概述

一个协作在线电子表格产品需要实时数据更新、公式历史记录和对多个用户的支持。

此模板定义了用户、单元格、公式和更新,具备安全的实时共享功能,以便团队能够迅速实现协作。

核心协作电子表格功能

本中心中的每个技术卡都使用相同的协作电子表格后端架构,包括用户、单元格、公式和更新。

用户管理

用户类存储用户名、电子邮件、密码和角色。

实时单元格管理

单元格类链接内容、公式和评估历史。

公式管理

公式类处理和跟踪单元格公式。

变更跟踪

更新类捕获带有时间戳的单元格更改。

为什么要使用Back4app构建您的在线协作电子表格应用程序后端?

Back4app提供后端原语,以便您的团队可以专注于协作,而不是基础设施。

  • 实时单元格和公式管理: 具有公式历史记录的单元格类,以有效跟踪电子表格操作。
  • 安全共享和可见性功能: 控制用户权限,并确保在协作环境中可见。
  • 实时 + API灵活性: 在保持REST和GraphQL对所有客户端可用的同时,利用Live Queries和订阅。

在所有平台上通过一个后端合同快速构建和迭代协作功能。

核心收益

一个协作电子表格后端,使快速开发成为可能而不牺牲实时能力。

快速协作应用上线

从完整的用户、单元格和公式架构开始,而不是从头设计后端。

实时更新

利用实时协作和公式评估来增强用户体验。

灵活的访问控制

通过强大的权限管理用户对单元格和公式的访问。

可扩展的更新模型

利用 Live Queries,只传达与用户相关的变化。

电子表格数据管理

存储和组织单元格数据和评估,以便在不重置架构的情况下进行交互。

AI 启动工作流程

快速生成后端框架和集成指南,使用一个结构化提示。

准备好启动您的协作在线电子表格应用吗?

让 Back4app AI 代理为您的协作电子表格后端搭建框架,并从一个提示中生成实时功能。

免费开始 - 每月 50 个 AI 代理提示,免信用卡要求

技术栈

此协作电子表格后端模板中包含的所有内容。

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

ER 图

为协作在线电子表格后端架构的实体关系模型。

查看图表源
Mermaid
erDiagram
    User ||--o{ Spreadsheet : "owner"
    User ||--o{ AccessLog : "user"
    Spreadsheet ||--o{ Cell : "contains"
    Cell ||--o{ FormulaHistory : "applies to"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    Spreadsheet {
        String objectId PK
        String title
        Pointer owner FK
        Date createdAt
        Date updatedAt
    }

    Cell {
        String objectId PK
        Pointer spreadsheet FK
        Number row
        Number column
        String value
        Date createdAt
        Date updatedAt
    }

    FormulaHistory {
        String objectId PK
        Pointer cell FK
        String formula
        Date evaluatedAt
        Date createdAt
        Date updatedAt
    }

    AccessLog {
        String objectId PK
        Pointer user FK
        Pointer spreadsheet FK
        Date accessTime
        Date createdAt
        Date updatedAt
    }

集成流程

用户身份验证、单元格更新、公式评估和协作的典型运行时流程。

查看图表源
Mermaid
sequenceDiagram
  participant User
  participant App as Collaborative Online Spreadsheet App
  participant Back4app as Back4app Cloud

  User->>App: Login
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Create new spreadsheet
  App->>Back4app: POST /classes/Spreadsheet
  Back4app-->>App: Spreadsheet details

  User->>App: Update cell value
  App->>Back4app: PUT /classes/Cell
  Back4app-->>App: Updated cell details

  User->>App: View formula history
  App->>Back4app: GET /classes/FormulaHistory
  Back4app-->>App: Formula evaluation history

数据字典

协作电子表格架构中每个类的字段级完整参考。

字段类型描述必填
objectIdStringAuto-generated unique identifier自动
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., admin, collaborator)
createdAtDateAuto-generated creation timestamp自动
updatedAtDateAuto-generated last-update timestamp自动

7 字段在 User 中

安全性和权限

ACL 和 CLP 策略如何保护用户、单元格、公式和更新。

用户拥有的个人资料控制

只有用户可以更新或删除他们的个人资料;其他人无法修改用户内容。

单元格数据完整性

只有所有者可以创建或删除他们的单元格。使用云代码进行验证。

范围读取访问

将单元格读取限制为相关用户(例如用户仅查看自己的单元格更新)。

架构(JSON)

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

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Spreadsheet",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "owner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Cell",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "spreadsheet": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Spreadsheet"
        },
        "row": {
          "type": "Number",
          "required": true
        },
        "column": {
          "type": "Number",
          "required": true
        },
        "value": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "FormulaHistory",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "cell": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Cell"
        },
        "formula": {
          "type": "String",
          "required": true
        },
        "evaluatedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AccessLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "spreadsheet": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Spreadsheet"
        },
        "accessTime": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

与人工智能代理一起构建

使用 Back4app 人工智能代理从此模板生成一个真实的协作电子表格应用,包括前端、后端、身份验证,以及单元格、公式和更新流程。

Back4app 人工智能代理
准备构建
在Back4app上创建一个具有此确切架构和行为的协作在线电子表格应用后端。

架构:
1. 用户(使用Back4app内置):用户名,电子邮件,密码;objectId,createdAt,updatedAt(系统)。
2. 单元格:内容(字符串,必填),公式(字符串),评估历史(字符串数组);objectId,createdAt,updatedAt(系统)。
3. 公式:表达式(字符串,必填),结果(字符串,必填);objectId,createdAt,updatedAt(系统)。
4. 更新:单元格(指向单元格的指针,必填),时间戳(日期,必填);objectId,createdAt,updatedAt(系统)。

安全性:
- 只有用户可以更新/删除他们的个人资料。只有所有者可以创建/删除他们的单元格和公式。使用云代码进行验证。

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

行为:
- 列出用户,创建/更新单元格,评估公式,管理实时协作。

交付:
- Back4app 应用程序,带有架构、ACL、CLP;用户资料、单元格、公式和更新的前端。

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

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

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

API Playground

尝试REST和GraphQL端点,与协作电子表格架构进行对接。响应使用模拟数据,不需要Back4app帐户。

正在加载游乐场…

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

选择您的技术

展开每个卡片以获取集成步骤、状态模式、数据模型示例和离线备注。

Flutter 协作电子表格后端

React 协作电子表格后端

React 原生 协作电子表格后端

Next.js 协作电子表格后端

JavaScript 协作电子表格后端

Android 协作电子表格后端

iOS 协作电子表格后端

Vue 协作电子表格后端

Angular 协作电子表格后端

GraphQL 协作电子表格后端

REST API 协作电子表格后端

PHP 协作电子表格后端

.NET 协作电子表格后端

每项技术的收获

每个技术栈使用相同的协作电子表格后端架构和API合同。

协作电子表格的实时协作

允许多个用户即时编辑和查看协作电子表格中的更改。

协作电子表格的安全数据共享

安全共享电子表格,控制协作电子表格中的访问权限。

协作电子表格的自定义公式支持

为 协作电子表格 的需求实现和评估自定义公式。

统一的 协作电子表格 数据结构

在 协作电子表格 中保持所有用户和会话的一致数据模型。

用于 协作电子表格 的 REST/GraphQL API

通过强大的 API 轻松访问和操纵您的 协作电子表格 数据。

协作电子表格 的可扩展性

轻松将其他功能和特性集成到您的 协作电子表格 中。

协作电子表格框架比较

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

框架设置时间协作电子表格优点SDK 类型AI 支持
~3–7 分钟用于移动和网页的协作电子表格的单一代码库。Typed SDK完整
快速(5分钟)设置用于协作电子表格的快速网页仪表板。Typed SDK完整
大约5分钟用于协作电子表格的跨平台移动应用。Typed SDK完整
大约5分钟用于协作电子表格的服务器渲染网页应用。Typed SDK完整
~3–5 分钟用于协作电子表格的轻量级网页集成。Typed SDK完整
~3–7 分钟用于协作电子表格的原生 Android 应用。Typed SDK完整
快速 (5 分钟) 设置原生 iOS 应用用于协作电子表格。Typed SDK完整
约 5 分钟React 的网页 UI 用于协作电子表格。Typed SDK完整
大约 5 分钟用于协作电子表格的企业网页应用。Typed SDK完整
不到 2 分钟灵活的 GraphQL API 用于协作电子表格。GraphQL API完整
快速 (2 分钟) 设置REST API 集成用于协作电子表格。REST API完整
~3分钟服务器端 PHP 后端用于协作电子表格。REST API完整
~5分钟.NET 后端用于协作电子表格。Typed SDK完整

设置时间反映了从项目启动到使用此模板架构进行第一次单元格或公式查询的预期持续时间。

常见问题

关于使用此模板构建协作在线电子表格后台的常见问题。

什么是协作电子表格后端?
协作电子表格模板包含什么?
为什么使用Back4app来构建协作电子表格应用?
我如何使用Flutter对单元格和公式进行查询?
我如何使用 Next.js Server Actions 管理访问?
React 本地能够离线缓存单元和公式吗?
我如何防止未经授权的单元访问?
在 Android 上显示单元和公式的最佳方法是什么?
协作更新流程是如何端到端工作的?

受到全球开发者的信赖

与 Back4app 模板一起加入团队,更快发布协作电子表格产品

G2 Users Love Us Badge

准备好构建您的协作在线电子表格应用程序了吗?

在几分钟内开始您的协作电子表格项目。无需信用卡。

选择技术