家谱研究应用后端模板
FamilyTree、FamilyNode、DocumentScan、DnaMatchLog和ResearchNote跟踪
一个在 Back4app 上生产就绪的 家谱研究后端,用于 FamilyTree 记录、FamilyNode 亲属、DocumentScan 来源、DnaMatchLog 评审和 ResearchNote 发现。包括 ER 图、字段指南、JSON 模式、API 沙箱,以及一个用于快速启动的 AI Agent 提示。
家谱研究要点
此模板为您提供一个家谱研究后端,包含 FamilyTree、FamilyNode、DocumentScan、DnaMatchLog 和 ResearchNote,以便您的团队能够组织血统证据和来源线索。
- FamilyTree 仪表板 — 为每个 FamilyTree 建模,使用 treeName、originRegion、status 和 owner,以便每个血统工作区保持可追溯。
- FamilyNode 血统追踪 — 记录每个 FamilyNode,包括 fullName、relationship、birthDate、deathDate、sourceStatus 和 createdBy,以便于清晰审查。
- DocumentScan 来源目录 — 存储每个 DocumentScan,包含 title、fileUrl、documentType、recordDate 和 uploadedBy,以便提供有来源支持的证据。
- DnaMatchLog 审查流程 — 跟踪每个 DnaMatchLog,使用 kitId、matchName、sharedCm、matchStatus 和 reviewedBy 进行 DNA 跟进。
- ResearchNote 证据笔记 — 将每个 ResearchNote 链接到 FamilyTree 和可选的 relatedNode,以便发现结果保持附加到正确的分支。
概览:家谱研究应用
一个健康的家谱研究流程有明确的阶段、拥有者和退出标准——否则“进行中”会变成一个黑洞。客户会在你承诺的 ETA 中感受到这一点。Back4app 将 FamilyTree、FamilyNode、DocumentScan、DnaMatchLog 和 ResearchNote 作为需要在一个权限工作区内设定截止日期、文件和通讯的家谱研究实践的基础。架构涵盖用户(用户名、电子邮件、角色)、FamilyTree(树名、起源地区、状态、拥有者)、FamilyNode(全名、关系、出生日期、死亡日期、源状态、创建者)、DocumentScan(标题、文件网址、文件类型、记录日期、上传者)、DnaMatchLog(kitId、matchName、sharedCm、matchStatus、reviewedBy)和 ResearchNote(主题、正文、relatedNode、作者)。连接你首选的前端,开始以结构化的血统和来源链接捕捉家族历史。
最佳适用:
您在家谱研究模板中获得的内容
如果家谱研究利益相关者无法在几秒钟内回答简单问题,他们将在会议上回答——缓慢而昂贵。
中心突出了 FamilyTree、FamilyNode 和 DocumentScan,以便您可以针对相同的实体、字段和关系比较客户端堆栈。
家谱应用特性集
此中心中的每个技术卡片都使用相同的家谱架构,包括 User、FamilyTree、FamilyNode、DocumentScan、DnaMatchLog 和 ResearchNote。
用户账户和角色
用户存储用户名、电子邮件、密码和角色。
FamilyTree 和 FamilyNode 记录
FamilyTree 保留 treeName、originRegion、status 和 owner,而 FamilyNode 保留 fullName 和 relationship。
DocumentScan 源注册
DocumentScan 捕获标题、文件网址、文档类型和记录日期。
DnaMatchLog 评论
DnaMatchLog 存储 kitId、matchName、sharedCm 和 matchStatus。
为什么使用Back4app构建您的家谱研究后台?
Back4app为您提供FamilyTree、FamilyNode、DocumentScan、DnaMatchLog和ResearchNote原语,以便您的团队能够专注于证据审核,而不是数据库维护。
- •FamilyTree和FamilyNode结构: FamilyTree和FamilyNode类以可查询的格式存储treeName、originRegion、fullName、relationship和sourceStatus。
- •DocumentScan和源控制: DocumentScan记录将title、fileUrl、documentType、recordDate和uploadedBy结合在一起,以便每个源与正确的树保持关联。
- •DNA审核和记录路径: DnaMatchLog和ResearchNote记录保留kitId、matchName、sharedCm、matchStatus、subject和relatedNode,以便审核者可以跟踪每个比较。
快速构建和迭代家谱工作流程,在所有平台上使用一个后台合约。
家谱研究的好处
一个家谱研究后端,帮助您保持来源追踪和血统笔记的组织。
更快的研究设置
从完整的用户、家谱、家族节点、文档扫描、DNA匹配日志和研究笔记模式开始,而不是从零定义它。
源链接的家庭记录
将每个家族节点与源状态、出生日期、死亡日期和创建者关联,以便更清晰的归属。
扫描和记录可追溯性
使用文档扫描字段,如标题、文件URL、文档类型和记录日期,然后将研究笔记条目连接到正确的家族节点。
DNA审核可追溯性
使用DNA匹配日志字段,如kitId、匹配名称、共享厘米和匹配状态来记录后续工作。
对敏感血统笔记的控制访问
使用ACL和CLP,使得只有授权用户可以编辑家谱、家族节点、文档扫描和研究笔记条目。
时间线证据存储
在多个类中存储 createdAt、updatedAt、recordDate 和 reviewedBy,而不平整研究轨迹。
准备好发布你的家谱研究应用了吗?
让 Back4app AI 代理搭建你的家谱研究后端,并从一个提示生成 FamilyTree、FamilyNode、DocumentScan、DnaMatchLog 和 ResearchNote 工作流程。
免费开始 — 每月 50 个 AI 代理提示,无需信用卡
技术栈
此家谱研究后端模板包含的所有内容。
家谱 ER 图
家谱研究后台架构的实体关系模型。
涵盖用户、家庭树、家庭节点、文档扫描、DNA 匹配日志和研究笔记的架构。
查看图表来源
erDiagram
User ||--o{ FamilyTree : "owner"
User ||--o{ FamilyNode : "createdBy"
User ||--o{ DocumentScan : "uploadedBy"
User ||--o{ DnaMatchLog : "reviewedBy"
User ||--o{ ResearchNote : "author"
FamilyTree ||--o{ FamilyNode : "tree"
FamilyTree ||--o{ DocumentScan : "tree"
FamilyTree ||--o{ DnaMatchLog : "tree"
FamilyTree ||--o{ ResearchNote : "tree"
FamilyNode ||--o{ ResearchNote : "relatedNode"
User {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
FamilyTree {
String objectId PK
String treeName
String originRegion
String status
String ownerId FK
Date createdAt
Date updatedAt
}
FamilyNode {
String objectId PK
String treeId FK
String fullName
String relationship
Date birthDate
Date deathDate
String sourceStatus
String createdById FK
Date createdAt
Date updatedAt
}
DocumentScan {
String objectId PK
String treeId FK
String title
String fileUrl
String documentType
Date recordDate
String uploadedById FK
Date createdAt
Date updatedAt
}
DnaMatchLog {
String objectId PK
String treeId FK
String kitId
String matchName
Number sharedCm
String matchStatus
String reviewedById FK
Date createdAt
Date updatedAt
}
ResearchNote {
String objectId PK
String treeId FK
String subject
String body
String relatedNodeId FK
String authorId FK
Date createdAt
Date updatedAt
}
家谱集成流程
登录、加载家庭树、创建 FamilyNode、上传 DocumentScan、审阅 DnaMatchLog 和同步 ResearchNote 的典型运行流程。
查看图表来源
sequenceDiagram
participant User
participant App as Genealogy Research App
participant Back4app as Back4app Cloud
User->>App: Sign in
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open family tree dashboard
App->>Back4app: GET /classes/FamilyTree?include=owner&order=-updatedAt
Back4app-->>App: Tree list and owner pointers
User->>App: Add a FamilyNode to a tree
App->>Back4app: POST /classes/FamilyNode
Back4app-->>App: FamilyNode objectId
User->>App: Upload a DocumentScan and review DNA matches
App->>Back4app: POST /classes/DocumentScan
App->>Back4app: GET /classes/DnaMatchLog?include=reviewedBy&order=-createdAt
Back4app-->>App: Scan record and match log entries
App->>Back4app: Live update family tree changes
Back4app-->>App: Subscription event for FamilyNode and ResearchNote字段指南
家谱研究架构中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必填项 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | Staff login name | |
| String | Staff email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role of the user (e.g., researcher, reviewer, admin) | |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
7 字段在 User 中
角色权限和访问
ACL 和 CLP 策略如何保护用户、家族树、家族节点、扫描、DNA 日志和研究笔记。
员工登录保护
仅对经过身份验证的员工使用用户类,角色值如研究员、审阅者和管理员。
树记录的源完整性
使用 Cloud Code 验证,以确保 FamilyTree、FamilyNode 和 ResearchNote 条目在保存之前包含预期的 treeName、fullName、sourceStatus 或 body。
范围谱系可见性
限制读取,以便研究团队只能查看他们被授权查看的 FamilyTree 分支、DocumentScan 文件和 DnaMatchLog 条目。
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": "FamilyTree",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"treeName": {
"type": "String",
"required": true
},
"originRegion": {
"type": "String",
"required": false
},
"status": {
"type": "String",
"required": true
},
"owner": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "FamilyNode",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tree": {
"type": "Pointer",
"required": true,
"targetClass": "FamilyTree"
},
"fullName": {
"type": "String",
"required": true
},
"relationship": {
"type": "String",
"required": true
},
"birthDate": {
"type": "Date",
"required": false
},
"deathDate": {
"type": "Date",
"required": false
},
"sourceStatus": {
"type": "String",
"required": true
},
"createdBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "DocumentScan",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tree": {
"type": "Pointer",
"required": true,
"targetClass": "FamilyTree"
},
"title": {
"type": "String",
"required": true
},
"fileUrl": {
"type": "String",
"required": true
},
"documentType": {
"type": "String",
"required": true
},
"recordDate": {
"type": "Date",
"required": false
},
"uploadedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "DnaMatchLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tree": {
"type": "Pointer",
"required": true,
"targetClass": "FamilyTree"
},
"kitId": {
"type": "String",
"required": true
},
"matchName": {
"type": "String",
"required": true
},
"sharedCm": {
"type": "Number",
"required": true
},
"matchStatus": {
"type": "String",
"required": true
},
"reviewedBy": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ResearchNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"tree": {
"type": "Pointer",
"required": true,
"targetClass": "FamilyTree"
},
"subject": {
"type": "String",
"required": true
},
"body": {
"type": "String",
"required": true
},
"relatedNode": {
"type": "Pointer",
"required": false,
"targetClass": "FamilyNode"
},
"author": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与 AI 代理一起构建
使用 Back4app AI 代理从此模板生成一个真实的族谱研究应用程序,包括前端、后端、身份验证,以及 FamilyTree、FamilyNode、DocumentScan、DnaMatchLog 和 ResearchNote 流程。
在 Back4app 上创建一个家谱研究应用后端,使用以下确切的架构和行为。 架构: 1. 用户(使用 Back4app 内置身份验证配置):用户名(字符串,必填),电子邮件(字符串,必填),密码(字符串,必填),角色(字符串,必填);objectId, createdAt, updatedAt(系统)。 2. 家谱树:树名(字符串,必填),起源区域(字符串,选填),状态(字符串,必填),所有者(指向用户的指针,必填);objectId, createdAt, updatedAt(系统)。 3. 家族节点:树(指向家谱树的指针,必填),全名(字符串,必填),关系(字符串,必填),出生日期(日期,选填),死亡日期(日期,选填),来源状态(字符串,必填),创建者(指向用户的指针,必填);objectId, createdAt, updatedAt(系统)。 4. 文件扫描:树(指向家谱树的指针,必填),标题(字符串,必填),文件网址(字符串,必填),文件类型(字符串,必填),记录日期(日期,选填),上传者(指向用户的指针,必填);objectId, createdAt, updatedAt(系统)。 5. DNA匹配日志:树(指向家谱树的指针,必填),工具包ID(字符串,必填),匹配名称(字符串,必填),共享厘米(数字,必填),匹配状态(字符串,必填),审核者(指向用户的指针,选填);objectId, createdAt, updatedAt(系统)。 6. 研究笔记:树(指向家谱树的指针,必填),主题(字符串,必填),正文(字符串,必填),相关节点(指向家族节点的指针,选填),作者(指向用户的指针,必填);objectId, createdAt, updatedAt(系统)。 安全性: - 只有经过身份验证的用户可以创建树节点、扫描、笔记和DNA日志。 - 树的所有者和审阅者可以更新树的内容;限制文件扫描仅限于其上传者或管理员角色。 - 使用基于角色的ACL和类权限保护PII和家族历史笔记。 认证: - 注册、登录、登出。 行为: - 管理家谱树,添加人员节点,附加文件扫描,审核DNA匹配,编写研究笔记。 交付: - 带架构、ACL、CLP的 Back4app 应用;用于家谱树、文件扫描、DNA匹配日志和笔记审阅的前端。
点击下面的按钮以打开 Agent,并填写此模板提示。
这是没有技术后缀的基础提示。您可以在之后调整生成的前端堆栈。
API沙盒
尝试REST和GraphQL端点,针对家谱研究架构。响应使用模拟数据,并不需要Back4app账户。
使用与此模板相同的架构。
选择您的技术
展开每个卡片以查看如何将 FamilyTree、FamilyNode 和 DocumentScan 与您选择的技术栈集成。
Flutter 家谱研究后端
React 家谱研究后端
React 原生 家谱研究后端
Next.js 家谱研究后端
JavaScript 家谱研究后端
Android 家谱研究后端
iOS 家谱研究后端
Vue 家谱研究后端
Angular 家谱研究后端
GraphQL 家谱研究后端
REST API 家谱研究后端
PHP 家谱研究后端
.NET 家谱研究后端
您获得的每种技术
每个技术栈使用相同的家谱研究后端架构和 API 合同。
统一的家谱数据结构
使用统一的架构管理用户、FamilyTree、FamilyNode、DocumentScan、DnaMatchLog 和 ResearchNote。
源链接的家庭记录
将 sourceStatus、fileUrl 和 recordDate 值附加到每个树条目和扫描中。
DNA 匹配审查流程
在审核过程中追踪 kitId、matchName、sharedCm、matchStatus 和 reviewedBy。
按时间顺序的字段设计
存储 birthDate、deathDate、recordDate、createdAt 和 updatedAt,以保持时间线的可读性。
REST/GraphQL 基因谱 API
通过灵活的 API 集成家谱、文档扫描和 DNA 匹配数据。
家谱堆栈比较
比较所有支持技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 家谱研究好处 | SDK 类型 | 人工智能支持 |
|---|---|---|---|---|
| 大约 5 分钟 | 用于移动和网页的家谱研究单一代码库。 | 类型化 SDK | 完全 | |
| 少于 5 分钟 | 用于家族树回顾的快速研究仪表盘。 | 类型化 SDK | 完全 | |
| ~3–7分钟 | 用于现场家谱工作的跨平台移动应用程序。 | 输入的SDK | 完全 | |
| 快速(5分钟)设置 | 用于研究档案的服务器渲染网页应用程序。 | 输入的SDK | 完全 | |
| ~3–5分钟 | 用于家谱浏览的轻量级网页集成。 | 输入的SDK | 完全 | |
| 大约5分钟 | 本地Android应用程序用于现场家谱审查。 | 输入的SDK | 完全 | |
| 少于5分钟 | 本地iOS应用程序用于家庭档案访问。 | 输入的SDK | 完全 | |
| 约3–7分钟 | Reactive网页用户界面用于研究笔记和扫描。 | 输入的SDK | 完全 | |
| 快速(5分钟)设置 | 企业网页应用用于谱系管理。 | 输入的SDK | 完全 | |
| 少于 2 分钟 | 灵活的 GraphQL API 用于家谱研究。 | GraphQL API | 完全 | |
| 快速(2 分钟)设置 | REST API 用于家谱记录的集成。 | REST API | 完全 | |
| 大约 3 分钟 | 服务器端 PHP 后端用于归档工作流程。 | REST API | 完全 | |
| ~3–7 分钟 | .NET 后端用于家谱研究团队。 | 输入的 SDK | 完全 |
设置时间反映了从项目启动到使用此模板架构进行第一次 FamilyTree 或 DocumentScan 查询的预期持续时间。
家谱问题
关于使用此模板建立家谱研究后端的常见问题。