Recherche Généalogique
Construire avec Agent IA
Back-end de recherche généalogique

Modèle de back-end d'application de recherche généalogique __PH0__
Suivi de FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote

Un back-end de recherche généalogique prêt à la production sur Back4app pour les enregistrements FamilyTree, les parents FamilyNode, les sources DocumentScan, les évaluations DnaMatchLog et les résultats ResearchNote. Comprend le diagramme ER, le guide des champs, le schéma JSON, le bac à sable API, et un prompt Agent IA pour un démarrage rapide.

Leçons à tirer de la recherche généalogique

Ce modèle vous offre un backend de recherche généalogique avec FamilyTree, FamilyNode, DocumentScan, DnaMatchLog, et ResearchNote afin que votre équipe puisse organiser les preuves de lignée et les sources.

  1. Tableau de bord FamilyTreeModélisez chaque FamilyTree avec treeName, originRegion, status, et owner afin que chaque espace de travail de lignée reste traçable.
  2. Suivi de lignée FamilyNodeEnregistrez chaque FamilyNode avec fullName, relationship, birthDate, deathDate, sourceStatus, et createdBy pour une revue claire.
  3. Catalogue des sources DocumentScanStockez chaque DocumentScan avec title, fileUrl, documentType, recordDate, et uploadedBy pour des preuves soutenues par des sources.
  4. Flux d'examen de DnaMatchLogSuivez chaque DnaMatchLog avec kitId, matchName, sharedCm, matchStatus et reviewedBy pour le suivi de l'ADN.
  5. Notes de preuve ResearchNoteLiez chaque ResearchNote à un FamilyTree et un optional relatedNode afin que les découvertes restent attachées à la bonne branche.

Aperçu : Application de recherche généalogique

Un pipeline de recherche généalogique sain a des étapes claires, des responsables et des critères de sortie - sinon, « en cours » devient un trou noir. Les clients le ressentent dans le délai que vous promettez. Back4app ancre FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote pour des pratiques de recherche généalogique qui ont besoin de délais, de documents et de communications dans un espace de travail autorisé. Le schéma couvre Utilisateur (nom d'utilisateur, e-mail, rôle), FamilyTree (treeName, originRegion, status, owner), FamilyNode (fullName, relationship, birthDate, deathDate, sourceStatus, createdBy), DocumentScan (title, fileUrl, documentType, recordDate, uploadedBy), DnaMatchLog (kitId, matchName, sharedCm, matchStatus, reviewedBy) et ResearchNote (subject, body, relatedNode, author). Connectez votre frontend préféré et commencez à capturer l'histoire familiale avec des liens de lignée et de source structurés.

Meilleur pour :

Applications de recherche généalogiqueOutils de documentation de l'arbre généalogiqueSystèmes d'indexation d'archive et de numérisationPortails de révision des correspondances ADNFlux de travail de coordination de la rechercheÉquipes sélectionnant BaaS pour les produits de lignage

Ce que vous obtenez dans le modèle de recherche en généalogie

Si les parties prenantes de la recherche en généalogie ne peuvent pas répondre à des questions simples en quelques secondes, elles les répondront lors de réunions — lentement et de manière coûteuse.

Le hub met en avant FamilyTree, FamilyNode et DocumentScan afin que vous puissiez comparer les piles clients contre les mêmes entités, champs et relations.

Ensemble de fonctionnalités de l'application de généalogie

Chaque carte technologique dans ce hub utilise le même schéma de généalogie avec User, FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote.

Comptes utilisateurs et rôles

L'utilisateur stocke le nom d'utilisateur, l'e-mail, le mot de passe et le rôle.

Enregistrements FamilyTree et FamilyNode

FamilyTree garde treeName, originRegion, status et owner, tandis que FamilyNode garde fullName et relationship.

Registre des sources de DocumentScan

DocumentScan capture le titre, le fileUrl, le documentType et la recordDate.

Revues DnaMatchLog

DnaMatchLog stocke kitId, matchName, sharedCm et matchStatus.

Pourquoi construire votre backend de recherche généalogique avec Back4app ?

Back4app vous fournit des primitives FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote afin que votre équipe puisse se concentrer sur la révision des preuves plutôt que sur le fonctionnement de la base de données.

  • Structure FamilyTree et FamilyNode: Les classes FamilyTree et FamilyNode stockent treeName, originRegion, fullName, relationship et sourceStatus dans un format interrogeable.
  • DocumentScan et contrôle des sources: Les enregistrements DocumentScan conservent ensemble title, fileUrl, documentType, recordDate et uploadedBy afin que chaque source reste attachée au bon arbre.
  • Révision de l'ADN et pistes de notes: Les enregistrements DnaMatchLog et ResearchNote conservent kitId, matchName, sharedCm, matchStatus, subject et relatedNode pour que les examinateurs puissent suivre chaque comparaison.

Construisez et itérez rapidement sur les flux de travail généalogiques avec un seul contrat backend sur toutes les plateformes.

Avantages de la recherche en généalogie

Un backend de recherche en généalogie qui vous aide à garder vos pistes de source et vos notes de lignée organisées.

Configuration de recherche plus rapide

Commencez à partir d'un schéma complet User, FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote plutôt que de le définir à partir de zéro.

Dossiers familiaux liés à des sources

Liez chaque FamilyNode à sourceStatus, birthDate, deathDate et createdBy pour une attribution plus claire.

Traçabilité des scans et des notes

Utilisez les champs DocumentScan comme title, fileUrl, documentType, et recordDate, puis connectez les entrées ResearchNote au bon FamilyNode.

Traçabilité des revues ADN

Utilisez les champs DnaMatchLog comme kitId, matchName, sharedCm et matchStatus pour documenter le travail de suivi.

Accès contrôlé aux notes de lignée sensibles

Utilisez ACL et CLP afin que seuls les utilisateurs autorisés puissent modifier les entrées FamilyTree, FamilyNode, DocumentScan et ResearchNote.

Stockage des preuves chronologiques

Stockez createdAt, updatedAt, recordDate, et reviewedBy à travers les classes sans aplatir la trace de recherche.

Prêt à lancer votre application de recherche généalogique ?

Laissez l'Agent IA Back4app structurer votre backend de recherche généalogique et générer les workflows FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote à partir d'une seule invite.

Gratuit pour commencer — 50 invites d'Agent IA/mois, sans carte de crédit requise

Technologie Stack

Tout inclus dans ce modèle de backend de recherche généalogique.

Frontend
13+ technologies
Backend
Back4app
Base de données
MongoDB
Auth
Authentification intégrée + sessions
API
REST et GraphQL
Temps réel
Live Queries

Carte ER de généalogie

Modèle de relation d'entité pour le schéma backend de recherche en généalogie.

Voir la source du diagramme
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
    }

Flux d'intégration de généalogie

Flux d'exécution typique pour la connexion, le chargement du tableau de bord FamilyTree, la création de FamilyNode, le téléchargement de DocumentScan, la révision de DnaMatchLog et la synchronisation de ResearchNote.

Voir la source du diagramme
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

Guide de terrain

Référence complète au niveau des champs pour chaque classe dans le schéma de recherche en généalogie.

ChampTypeDescriptionRequis
objectIdStringAuto-generated unique identifierAuto
usernameStringStaff login name
emailStringStaff email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., researcher, reviewer, admin)
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

7 champs dans User

Permissions de rôle et accès

Comment la stratégie ACL et CLP sécurise les utilisateurs, les arbres généalogiques, les nœuds de famille, les scans, les journaux ADN et les notes de recherche.

Protection de la connexion du personnel

Utilisez la classe User uniquement pour le personnel authentifié, avec des valeurs de rôle telles que chercheur, examinateur et administrateur.

Intégrité de la source pour les enregistrements d'arbres

Utilisez la validation Cloud Code pour que les entrées FamilyTree, FamilyNode et ResearchNote incluent le treeName, fullName, sourceStatus ou body attendus avant l'enregistrement.

Visibilité de lignée limitée

Limiter les lectures afin que les équipes de recherche puissent uniquement voir les branches FamilyTree, les fichiers DocumentScan et les entrées DnaMatchLog qu'elles sont autorisées à examiner.

Schéma JSON

Définition de schéma JSON brute prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.

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
        }
      }
    }
  ]
}

Construire avec l'Agent IA

Utilisez l'Agent IA Back4app pour générer une véritable application de recherche généalogique à partir de ce modèle, y compris le frontend, le backend, l'authentification et les flux FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote.

Agent IA Back4app
Prêt à construire
Créez un backend d'application de recherche généalogique sur Back4app avec ce schéma et ce comportement exacts.

Schéma :
1. Utilisateur (utiliser le profil d'authentification intégré de Back4app) : nom d'utilisateur (String, requis), e-mail (String, requis), mot de passe (String, requis), rôle (String, requis) ; objectId, createdAt, updatedAt (système).
2. ArbreGenealogique : nomDeLArbre (String, requis), régionDOrigine (String, optionnelle), statut (String, requis), propriétaire (Pointeur vers Utilisateur, requis) ; objectId, createdAt, updatedAt (système).
3. NoeudDeFamille : arbre (Pointeur vers ArbreGenealogique, requis), nomComplet (String, requis), relation (String, requis), dateDeNaissance (Date, optionnelle), dateDeDécès (Date, optionnelle), statutSource (String, requis), crééPar (Pointeur vers Utilisateur, requis) ; objectId, createdAt, updatedAt (système).
4. NumérisationDeDocument : arbre (Pointeur vers ArbreGenealogique, requis), titre (String, requis), urlDuFichier (String, requis), typeDeDocument (String, requis), dateDeDossier (Date, optionnelle), téléchargéPar (Pointeur vers Utilisateur, requis) ; objectId, createdAt, updatedAt (système).
5. JournalDeCorrespondanceADN : arbre (Pointeur vers ArbreGenealogique, requis), idDuKit (String, requis), nomDeCorrespondance (String, requis), cmPartagés (Nombre, requis), statutDeCorrespondance (String, requis), examinéPar (Pointeur vers Utilisateur, optionnelle) ; objectId, createdAt, updatedAt (système).
6. NoteDeRecherche : arbre (Pointeur vers ArbreGenealogique, requis), sujet (String, requis), corps (String, requis), noeudLié (Pointeur vers NoeudDeFamille, optionnelle), auteur (Pointeur vers Utilisateur, requis) ; objectId, createdAt, updatedAt (système).

Sécurité :
- Seuls les utilisateurs authentifiés peuvent créer des noeuds d'arbre, des numérisations, des notes et des journaux ADN.
- Les propriétaires d'arbres et les réviseurs peuvent mettre à jour le contenu de l'arbre ; restreindre les numérisations de documents à leur téléchargeur ou à un rôle d'administrateur.
- Protéger les informations personnelles identifiables (PII) et les notes d'histoire familiale avec des ACL basées sur les rôles et des permissions de classe.

Auth :
- Inscription, connexion, déconnexion.

Comportement :
- Gérer les arbres familiaux, ajouter des noeuds de personnes, attacher des numérisations de documents, examiner les correspondances ADN et rédiger des notes de recherche.

Livraison :
- Application Back4app avec schéma, ACL, CLP ; frontend pour les arbres familiaux, les numérisations de documents, les journaux de correspondance ADN et la révision des notes.

Appuyez sur le bouton ci-dessous pour ouvrir l'Agent avec cette invite de modèle pré-remplie.

Ceci est l'invite de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.

Déployer en quelques minutes50 invitations gratuites / moisPas de carte de crédit requise

Sandbox API

Essayez les points de terminaison REST et GraphQL contre le schéma de recherche généalogique. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.

Chargement du terrain de jeu…

Utilise le même schéma que ce modèle.

Choisissez votre technologie

Développez chaque carte pour voir comment intégrer FamilyTree, FamilyNode et DocumentScan avec votre pile choisie.

Flutter Recherche de généalogie Backend

React Recherche de généalogie Backend

React Natif Recherche de généalogie Backend

Next.js Recherche de généalogie Backend

JavaScript Recherche de généalogie Backend

Android Recherche de généalogie Backend

iOS Recherche de généalogie Backend

Vue Recherche de généalogie Backend

Angular Recherche de généalogie Backend

GraphQL Recherche de généalogie Backend

REST API Recherche de généalogie Backend

PHP Recherche de généalogie Backend

.NET Recherche de généalogie Backend

Ce que vous obtenez avec chaque technologie

Chaque pile utilise le même schéma de backend de recherche généalogique et les contrats d'API.

Structure de données généalogiques unifiée

Gérez User, FamilyTree, FamilyNode, DocumentScan, DnaMatchLog et ResearchNote avec un schéma cohérent.

Dossiers familiaux liés aux sources

Attachez des valeurs sourceStatus, fileUrl et recordDate à chaque entrée d'arbre et scan.

Flux de révision des correspondances ADN

Suivez kitId, matchName, sharedCm, matchStatus et reviewedBy dans le cadre du processus de révision.

Conception de champ d'abord chronologique

Stockez birthDate, deathDate, recordDate, createdAt et updatedAt pour que les lignes du temps restent lisibles.

API REST/GraphQL pour la généalogie

Intégrer les données de l'arbre généalogique, du scan de documents et des correspondances ADN avec des API flexibles.

Comparaison des piles de généalogie

Comparez la vitesse de configuration, le style SDK et le support de l'IA parmi toutes les technologies prises en charge.

CadreTemps de configurationAvantage de la recherche généalogiqueType de SDKSupport IA
Environ 5 minBase de code unique pour la recherche généalogique sur mobile et web.SDK typéComplet
Moins de 5 minutesTableau de bord de recherche rapide pour la révision de l'arbre généalogique.SDK typéComplet
~3–7 minApplication mobile multiplateforme pour le travail de généalogie sur le terrain.SDK tapéComplet
Configuration rapide (5 min)Application web rendue par le serveur pour les archives de recherche.SDK tapéComplet
~3–5 minIntégration web légère pour la navigation dans les arbres généalogiques.SDK tapéComplet
Environ 5 minApplication Android native pour une revue généalogique sur place.SDK tapéComplet
Moins de 5 minutesApplication iOS native pour l'accès aux archives familiales.SDK tapéComplet
~3–7 minInterface web Reactive pour les notes de recherche et les scans.SDK tapéComplet
Configuration rapide (5 min)Application web d'entreprise pour la gestion de la lignée.SDK tapéComplet
Moins de 2 minAPI GraphQL flexible pour la recherche en généalogie.API GraphQLComplet
Configuration rapide (2 min)Intégration REST API pour les enregistrements d'arbre généalogique.REST APIComplet
~3 minBackend PHP côté serveur pour les flux de travail d'archivage.REST APIComplet
~3–7 minBackend .NET pour les équipes de recherche en généalogie.SDK tapéComplet

Le temps de configuration reflète la durée attendue depuis le démarrage du projet jusqu'à la première requête FamilyTree ou DocumentScan utilisant ce schéma de modèle.

Questions de généalogie

Questions courantes concernant la construction d'un backend de recherche en généalogie avec ce modèle.

Comment les pratiques de recherche généalogique maintiennent-elles la qualité d'admission élevée à mesure que le volume augmente ?
Comment les équipes de recherche en généalogie devraient-elles modéliser les clients, les affaires et les transferts internes sans ambiguïté ?
Cette couche CRM de recherche en généalogie peut-elle se développer avec de nouveaux types d'affaires et canaux d'admission ?
Comment puis-je exécuter des requêtes pour des arbres généalogiques et des numérisations avec Flutter ?
Comment gérer l'accès à la recherche en généalogie avec Next.js Server Actions ?
React Native peut-il mettre en cache des données généalogiques hors ligne ?
Comment puis-je empêcher un accès de scan non autorisé?
Quelle est la meilleure façon d'afficher l'arbre généalogique sur Android?
Comment fonctionne le flux de travail de scan de documents de bout en bout?
Quelles classes alimentent ce modèle de recherche généalogique?

Fiable pour les développeurs du monde entier

Rejoignez des équipes expédiant des produits de recherche en généalogie plus rapidement avec des modèles Back4app

G2 Users Love Us Badge

Prêt à créer votre application de recherche en généalogie?

Commencez votre projet de recherche en généalogie en quelques minutes. Pas de carte de crédit requise.

Choisissez la technologie