系譜研究
AIエージェントで構築
家系図研究バックエンド

家系図研究アプリバックエンドテンプレート
FamilyTree、FamilyNode、DocumentScan、DnaMatchLog、ResearchNoteの追跡

家系図研究バックエンドの本番環境準備完了 Back4app 用: FamilyTree レコード、FamilyNode 親戚、DocumentScan ソース、DnaMatchLog レビュー、ResearchNote 発見。ER図、フィールドガイド、JSONスキーマ、APIサンドボックス、および迅速なブートストラップ用のAIエージェントプロンプトが含まれています。

系譜研究の要点

このテンプレートは、ファミリーツリー、ファミリーノード、ドキュメントスキャン、DNAマッチログ、およびリサーチノートを使用した系譜研究のバックエンドを提供し、チームが系譜の証拠とソースのトレイルを整理できるようにします。

  1. ファミリーツリーのダッシュボード作成各ファミリーツリーにtreeName、originRegion、status、およびownerをモデル化し、すべての系譜ワークスペースを追跡可能にします。
  2. ファミリーノードの系譜追跡各ファミリーノードをfullName、relationship、birthDate、deathDate、sourceStatus、およびcreatedByで記録し、明確にレビューします。
  3. ドキュメントスキャンのソースカタログ各ドキュメントスキャンをtitle、fileUrl、documentType、recordDate、およびuploadedByで保存し、ソースに基づいた証拠を提供します。
  4. DnaMatchLogレビューフローDNAフォローアップのために、kitId、matchName、sharedCm、matchStatus、およびreviewedByで各DnaMatchLogを追跡します。
  5. ResearchNoteの証拠メモ各ResearchNoteをFamilyTreeおよびオプションのrelatedNodeにリンクし、調査結果が正しい枝に付随するようにします。

概要: 系譜研究アプリ

健全な系譜研究パイプラインには明確な段階、オーナー、終了基準があります。さもなければ「進行中」はブラックホールになってしまいます。顧客はあなたが約束するETAでそれを感じます。Back4appは、締切、文書、通信が1つの許可されたワークスペース内に必要な系譜研究の慣行のためにFamilyTree、FamilyNode、DocumentScan、DnaMatchLog、ResearchNoteを固定します。スキーマはUser(username、email、role)、FamilyTree(treeName、originRegion、status、owner)、FamilyNode(fullName、relationship、birthDate、deathDate、sourceStatus、createdBy)、DocumentScan(title、fileUrl、documentType、recordDate、uploadedBy)、DnaMatchLog(kitId、matchName、sharedCm、matchStatus、reviewedBy)、およびResearchNote(subject、body、relatedNode、author)をカバーします。あなたの好みのフロントエンドを接続し、構造化された系譜とソースリンクで家族の歴史を捉え始めましょう。

ベスト:

系譜研究アプリケーション系図ドキュメントツールアーカイブとスキャンインデックスシステムDNAマッチレビューポータル研究調整ワークフローBaaSを血統製品に選択するチーム

系譜研究テンプレートで得られるもの

系譜研究の関係者が数秒以内に簡単な質問に答えられない場合、彼らは会議で時間をかけて高額で答えることになる。

ハブはFamilyTree、FamilyNode、DocumentScanを強調し、クライアントスタックを同じエンティティ、フィールド、関係に対して比較できるようにします。

系譜アプリ機能セット

このハブ内のすべての技術カードは、User、FamilyTree、FamilyNode、DocumentScan、DnaMatchLog、および ResearchNote と同じ系譜スキーマを使用しています。

ユーザーアカウントとロール

ユーザーはユーザー名、メール、パスワード、およびロールを保存します。

FamilyTreeおよびFamilyNodeレコード

FamilyTreeはtreeName、originRegion、status、およびownerを保持し、FamilyNodeはfullNameとrelationshipを保持します。

DocumentScan ソースレジストリ

DocumentScan はタイトル、fileUrl、documentType、および recordDate をキャプチャします。

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 を保持し、レビューアが各比較を追跡できるようにします。

1 つのバックエンド契約で全てのプラットフォーム上で系譜ワークフローを迅速に構築・反復できます。

系譜研究の利点

ソーストレイルと系譜ノートを整理するのに役立つ系譜研究バックエンド。

より迅速な研究設定

ゼロから定義するのではなく、完全なUser、FamilyTree、FamilyNode、DocumentScan、DnaMatchLog、ResearchNoteスキーマから始めます。

ソースリンクされた家族記録

各FamilyNodeをsourceStatus、birthDate、deathDate、およびcreatedByに結びつけて、より明確な帰属を実現します。

スキャンとノートのトレーサビリティ

タイトル、fileUrl、documentType、recordDateなどのDocumentScanフィールドを使用し、ResearchNoteエントリを正しいFamilyNodeに接続します。

DNAレビューのトレーサビリティ

kitId、matchName、sharedCm、matchStatusなどのDnaMatchLogフィールドを使用して、フォローアップ作業を文書化します。

敏感な系譜ノートへの制御されたアクセス

ACLとCLPを使用して、認可されたユーザーのみがFamilyTree、FamilyNode、DocumentScan、およびResearchNoteエントリを編集できるようにします。

時間的証拠ストレージ

研究の経路をフラット化することなく、クラス間でcreatedAt、updatedAt、recordDate、reviewedByを保存します。

系譜研究アプリを立ち上げる準備はできましたか?

Back4app AIエージェントに系譜研究のバックエンドをスキャフォールドさせ、FamilyTree、FamilyNode、DocumentScan、DnaMatchLog、ResearchNoteのワークフローを一つのプロンプトから生成させます。

無料で開始 — 月50件のAIエージェントプロンプト、クレジットカード不要

テクノロジースタック

この系譜研究バックエンドテンプレートに含まれるすべて。

フロントエンド
13以上の技術
バックエンド
Back4app
データベース
MongoDB
認証
組み込みの認証 + セッション
API
REST と GraphQL
リアルタイム
Live Queries

系譜 ER マップ

系譜研究バックエンドスキーマのためのエンティティ関係モデル。

図のソースを表示
Mermaid
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
    }

系図統合フロー

サインイン、FamilyTreeダッシュボードのロード、FamilyNodeの作成、DocumentScanのアップロード、DnaMatchLogのレビュー、ResearchNoteの同期における典型的なランタイムフロー。

図のソースを表示
Mermaid
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

フィールドガイド

系図研究スキーマ内のすべてのクラスに対する完全なフィールドレベルの参照。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringStaff login name
emailStringStaff email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., researcher, reviewer, admin)
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 の User フィールド

役割の権限とアクセス

ACL と CLP 戦略がユーザー、家系図、家族ノード、スキャン、DNA ログ、および研究ノートをどのように保護するか。

スタッフログイン保護

認証されたスタッフのみに User クラスを使用し、研究者、レビュアー、管理者などの役割の値を持たせます。

ツリー記録のソース整合性

保存前に FamilyTree、FamilyNode、および ResearchNote エントリが期待される treeName、fullName、sourceStatus、または body を含むように Cloud Code 検証を使用します。

スコープ付き系譜の可視性

リサーチチームが承認されたFamilyTreeの枝、DocumentScanファイル、DnaMatchLogエントリのみを閲覧できるように、読み取りを制限します。

JSONスキーマ

Back4appにコピーするための生JSONスキーマ定義、または実装のリファレンスとして使用するためのもの。

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 AIエージェント
ビルドの準備ができました
Back4appでこの正確なスキーマと動作を持つ系図研究アプリのバックエンドを作成します。

スキーマ:
1. ユーザー (Back4app の組み込み認証プロファイルを使用): ユーザー名 (文字列, 必須), メール (文字列, 必須), パスワード (文字列, 必須), 役割 (文字列, 必須); objectId, createdAt, updatedAt (システム).
2. ファミリーツリー: ツリー名 (文字列, 必須), 起源地域 (文字列, 任意), 状態 (文字列, 必須), 所有者 (ユーザーへのポインタ, 必須); objectId, createdAt, updatedAt (システム).
3. ファミリーノード: ツリー (ファミリーツリーへのポインタ, 必須), 氏名 (文字列, 必須), 関係 (文字列, 必須), 生年月日 (日付, 任意), 死亡日 (日付, 任意), ソースステータス (文字列, 必須), 作成者 (ユーザーへのポインタ, 必須); objectId, createdAt, updatedAt (システム).
4. ドキュメントスキャン: ツリー (ファミリーツリーへのポインタ, 必須), タイトル (文字列, 必須), ファイルURL (文字列, 必須), ドキュメントタイプ (文字列, 必須), 記録日 (日付, 任意), アップロード者 (ユーザーへのポインタ, 必須); objectId, createdAt, updatedAt (システム).
5. DNAマッチログ: ツリー (ファミリーツリーへのポインタ, 必須), キットID (文字列, 必須), マッチ名 (文字列, 必須), 共有cm (数値, 必須), マッチステータス (文字列, 必須), レビュー者 (ユーザーへのポインタ, 任意); objectId, createdAt, updatedAt (システム).
6. 研究ノート: ツリー (ファミリーツリーへのポインタ, 必須), 主題 (文字列, 必須), 本文 (文字列, 必須), 関連ノード (ファミリーノードへのポインタ, 任意), 著者 (ユーザーへのポインタ, 必須); objectId, createdAt, updatedAt (システム).

セキュリティ:
- 認証されたユーザーのみがツリーノード、スキャン、ノート、およびDNAログを作成できます。
- ツリーの所有者とレビュー担当者はツリーの内容を更新できます。文書スキャンはアップローダーまたは管理者役割に制限します。
- PIIと家族歴のノートは役割ベースのACLとクラス権限で保護します。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- ファミリーツリーを管理し、人物ノードを追加し、ドキュメントスキャンを添付し、DNAマッチをレビューし、研究ノートを書くことができます。

提供:
- スキーマ、ACL、CLPを持つBack4appアプリ; ファミリーツリー、ドキュメントスキャン、DNAマッチログ、ノートレビューのためのフロントエンド。

下のボタンを押して、このテンプレートのプロンプトが事前入力された状態でエージェントを開いてください。

これは技術の接尾辞なしの基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。

数分でデプロイ月に50の無料プロンプトクレジットカードは必要ありません

APIサンドボックス

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 for genealogy

家系図、文書スキャン、およびDNAマッチデータを柔軟なAPIで統合します。

系譜スタック比較

サポートされているすべての技術にわたって、セットアップ速度、SDKスタイル、およびAIサポートを比較します。

フレームワークセットアップ時間系図研究の利点SDKタイプAIサポート
約5分モバイルとウェブの系図研究用の単一コードベース。型指定SDKフル
5分未満家系図レビューのための迅速な研究ダッシュボード。型指定SDKフル
約3〜7分フィールド系譜作業のためのクロスプラットフォームモバイルアプリ。型付きSDKフル
迅速な(5分)セットアップ研究アーカイブ用のサーバー生成ウェブアプリ。型付きSDKフル
約3〜5分家系図閲覧のための軽量ウェブ統合。型付きSDKフル
約5分現地の系譜レビュー用のネイティブ Android アプリ。タイプされたSDKフル
5分未満家族のアーカイブアクセス用のネイティブ iOS アプリ。タイプされたSDKフル
約3〜7分研究ノートとスキャンのための Reactive ウェブUI。タイプされたSDKフル
迅速な(5分)セットアップ系譜管理のためのエンタープライズウェブアプリ。タイプされたSDKフル
2分未満系譜研究用の柔軟な GraphQL API。GraphQL APIフル
迅速な(2分)設定家系図記録のための REST API 統合。REST APIフル
約3分アーカイブワークフロー用のサーバーサイド PHP バックエンド。REST APIフル
~3–7 分系譜研究チームのための .NET バックエンド。入力された SDKフル

セットアップ時間は、このテンプレートスキーマを使用したプロジェクトのブートストラップから最初のFamilyTreeまたはDocumentScanクエリまでの予想される期間を示します。

系譜の質問

このテンプレートを使った系譜研究バックエンドの構築に関する一般的な質問。

家系研究の実践が、量が増えるにつれて質の高い入手をどのように維持していますか?
系譜研究チームは、クライアント、案件、内部の引き継ぎをあいまいさなくモデル化するにはどうすればよいですか?
この系譜研究CRMレイヤーは、新しい案件タイプやインテークチャネルと共に成長することができますか?
Flutterを使用してファミリーツリーとスキャンのクエリを実行するにはどうすればよいですか?
Next.js Server Actionsを使って系譜研究アクセスを管理するにはどうすればよいですか?
Reactネイティブは系譜データをオフラインでキャッシュできますか?
不正なスキャンアクセスを防ぐにはどうすればよいですか?
Androidで家系図を表示する最良の方法は何ですか?
ドキュメントスキャンのワークフローはエンドツーエンドでどのように機能しますか?
この系図研究テンプレートを支えるクラスは何ですか?

世界中の開発者に信頼されています

Back4app テンプレートを使用して系譜研究製品をより早く出荷するチームに参加しましょう

G2 Users Love Us Badge

系譜研究アプリを作る準備はできましたか?

数分で系譜研究プロジェクトを始めましょう。クレジットカードは不要です。

技術を選択