Journal de formation
Créer avec l'Agent AI
Backend de journal de présence à la formation

Modèle Backend de journal de présence à la formation
Présence à la formation, Scores et Certificats

Un backend de journal de présence à la formation prêt pour la production sur Back4app avec journaux de cours, scores d'examen et stockage de certificats. Inclut un diagramme ER, un dictionnaire de données, un schéma JSON, un espace de jeu API, et un prompt Agent AI pour un démarrage rapide.

Leçons du Journal de Formation

Ce modèle vous offre un backend de journal de présence de formation avec des journaux de cours, des scores d'examen et un stockage de certificats afin que les coordinateurs puissent garder les sessions, les résultats et la preuve d'achèvement au même endroit.

  1. Suivi des journaux de coursModélisez chaque entrée de TrainingCourse et AttendanceLog afin que les instructeurs puissent enregistrer qui a assisté à quelle session.
  2. Capture des scores d'examenStockez les valeurs ExamScore avec des pointeurs de cours et de stagiaire liés pour un examen rapide.
  3. Stockage de certificatConservez les fichiers CertificateStorage attachés au bon événement d'achèvement et au profil du stagiaire.

Aperçu du backend du journal de présence à la formation

Les régulateurs s'attendent à ce que les preuves de présence à la formation soient durables : suffisamment immuables pour être fiables, suffisamment flexibles pour améliorer le programme au fil du temps. La solution est opérationnelle, pas motivationnelle. Modélisez TrainingCourse, AttendanceLog, ExamScore et CertificateStorage sur Back4app pour rendre les contrôles de présence à la formation opérationnels : approbations, preuves et exceptions capturées là où le travail se produit réellement. Le schéma couvre Utilisateur (nom d'utilisateur, email, mot de passe), TrainingCourse (code de cours, titre, date de session, instructeur), AttendanceLog (stagiaire, formation, statut, enregistréÀ), ExamScore (stagiaire, formation, score, réussi), et CertificateStorage (stagiaire, formation, fichier, délivréÀ) avec authentification et accès contrôlé déjà en place. Connectez votre frontend préféré et lancez plus rapidement.

Meilleures pour :

Systèmes de présence à la formationTableaux de bord des journaux de coursOutils de suivi des scores d'examenPortails de stockage des certificatsÉquipes d'opérations et de formation sur le terrainÉquipes sélectionnant BaaS pour les produits de formation

Assiduité à la formation : instantané du backend

La formation aide à l'assiduité à la formation, mais elle ne peut pas compenser les données qui se répartissent sur trois outils et quatre conventions de nommage.

Le hub met en évidence TrainingCourse, AttendanceLog, et ExamScore afin que vous puissiez comparer les piles des clients avec les mêmes entités, champs et relations.

Fonctionnalités principales du journal de formation

Chaque fiche technologique de ce hub utilise le même schéma backend de présence en formation avec TrainingCourse, AttendanceLog, ExamScore et CertificateStorage.

Gestion des cours de formation

TrainingCourse stocke courseCode, title, sessionDate et instructor.

Journal de présence

AttendanceLog capture le stagiaire, le cours de formation, l'état et l'heure de l'enregistrement.

Suivi des résultats d'examen

ExamScore relie le stagiaire, le cours de formation, le score et le passage.

Stockage de certificats

CertificateStorage conserve les stagiaires, le trainingCourse, le fichier et la date d'émission.

Pourquoi construire votre backend de journal d'assiduité à la formation avec Back4app ?

Back4app vous fournit des primitives de cours de formation, de journal d'assiduité, de score d'examen et de stockage de certificats afin que les coordinateurs puissent se concentrer sur la livraison des sessions au lieu des aspects techniques du backend.

  • Enregistrements de cours et d'assiduité: Les classes TrainingCourse et AttendanceLog vous permettent de suivre l'assiduité par sessionDate, courseCode, et checkedInAt.
  • Scores liés aux événements de formation: ExamScore relie chaque score à un stagiaire et à un TrainingCourse, ce qui maintient l'examen de réussite/échec ancré dans l'enregistrement du cours.
  • Certificats avec des chemins de récupération réels: CertificateStorage contient les champs issuedAt et file afin que la preuve d'achèvement reste attachée au bon résultat de formation.

Exécutez les journaux de formation, les scores d'examen et le stockage des certificats à partir d'un contrat backend sur toutes les plateformes.

Avantages principaux

Un backend de présence en formation qui aide les équipes à enregistrer les sessions, à réviser les scores et à stocker les certificats avec moins de travail de configuration.

Déploiement rapide des journaux de cours

Commencez à partir de TrainingCourse au lieu de créer des tables de session et des relations à partir de zéro.

Traçabilité de la présence et des scores

Liez les entrées AttendanceLog et ExamScore aux mêmes champs de stagiaire et de trainingCourse pour un suivi clair.

Récupération de certificats par cours

Conservez les fichiers CertificateStorage liés à l'achèvement du cours afin que le personnel opérationnel puisse trouver rapidement une preuve.

Accès contrôlé aux données de formation

Utilisez ACL/CLP afin que seuls le personnel autorisé puisse mettre à jour les journaux de présence, les notes d'examen ou les fichiers de certificat.

Modèle unique pour les utilisateurs de terrain et de bureau

Partagez TrainingCourse, AttendanceLog, ExamScore et CertificateStorage via un seul contrat API au lieu d'outils séparés.

Bootstrap assisté par IA

Générez des schémas, des permissions et des conseils d'intégration avec une seule invite structurée.

Prêt à lancer votre application de journal de présence de formation ?

Laissez l'Agent IA Back4app structurer votre backend de présence à la formation et générer des journaux de cours, des scores d'examen et un stockage des certificats à partir d'une seule invite.

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

Pile technique

Tout inclus dans ce modèle de backend de présence à la formation.

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

Diagramme ER

Modèle de relation d'entité pour le schéma back-end d'assiduité à la formation.

Voir la source du diagramme
Mermaid
erDiagram
    Trainer ||--o{ TrainingCourse : "trainer"
    Trainer ||--o{ AttendanceLog : "markedBy"
    Trainer ||--o{ ExamScore : "recordedBy"
    Trainer ||--o{ Certificate : "issuedBy"
    TrainingCourse ||--o{ AttendanceLog : "course"
    TrainingCourse ||--o{ ExamScore : "course"
    TrainingCourse ||--o{ Certificate : "course"

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

    TrainingCourse {
        String objectId PK
        String courseCode
        String title
        Date scheduledDate
        String location
        String trainerId FK
        Date createdAt
        Date updatedAt
    }

    AttendanceLog {
        String objectId PK
        String courseId FK
        String traineeName
        Date attendanceDate
        String status
        String notes
        String markedById FK
        Date createdAt
        Date updatedAt
    }

    ExamScore {
        String objectId PK
        String courseId FK
        String traineeName
        Date examDate
        Number score
        Boolean passed
        String recordedById FK
        Date createdAt
        Date updatedAt
    }

    Certificate {
        String objectId PK
        String courseId FK
        String traineeName
        String certificateNumber
        Date issueDate
        String fileUrl
        String issuedById FK
        Date createdAt
        Date updatedAt
    }

Flux d'intégration

Flux d'exécution typique pour l'authentification, les journaux de cours, l'enregistrement d'assiduité, les scores d'examens et le stockage de certificats.

Voir la source du diagramme
Mermaid
sequenceDiagram
  participant User
  participant App as Training Attendance Log App
  participant Back4app as Back4app Cloud

  User->>App: Sign in as trainer or coordinator
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open today's training course list
  App->>Back4app: GET /classes/TrainingCourse?order=scheduledDate
  Back4app-->>App: TrainingCourse rows

  User->>App: Mark attendance in the course log
  App->>Back4app: POST /classes/AttendanceLog
  Back4app-->>App: AttendanceLog objectId

  User->>App: Save exam score and attach certificate file
  App->>Back4app: POST /classes/ExamScore
  App->>Back4app: POST /classes/Certificate
  Back4app-->>App: ExamScore and Certificate records

  App->>Back4app: Query live updates for course attendance
  Back4app-->>App: AttendanceLog changes

Dictionnaire de données

Référence par niveau de champ pour chaque classe dans le schéma de présence de formation.

ChampTypeDescriptionRequis
objectIdStringAuto-generated unique identifierAuto
usernameStringTrainer login name
emailStringTrainer email address
passwordStringHashed password (write-only)
fullNameStringTrainer display name
roleStringAccess role for the training workspace
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

8 champs dans Trainer

Sécurité et autorisations

Comment la stratégie ACL et CLP sécurise les utilisateurs, les cours de formation, les journaux de présence, les scores d'examen et le stockage des certificats.

Limites du compte utilisateur

Seul l'utilisateur peut mettre à jour ou supprimer son profil ; les autres utilisateurs ne peuvent pas modifier les champs d'identité.

Intégrité des cours et des journaux

Seul le personnel autorisé peut créer ou supprimer des entrées de TrainingCourse, AttendanceLog, ExamScore et CertificateStorage.

Accès ciblé aux preuves de formation

Restreindre les lectures afin que les responsables, les coordinateurs ou le stagiaire assigné ne voient que les journaux de cours et les fichiers de certificats auxquels ils devraient accéder.

Schéma (JSON)

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

JSON
{
  "classes": [
    {
      "className": "Trainer",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TrainingCourse",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "courseCode": {
          "type": "String",
          "required": true
        },
        "title": {
          "type": "String",
          "required": true
        },
        "scheduledDate": {
          "type": "Date",
          "required": true
        },
        "location": {
          "type": "String",
          "required": true
        },
        "trainer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Trainer"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AttendanceLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "course": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TrainingCourse"
        },
        "traineeName": {
          "type": "String",
          "required": true
        },
        "attendanceDate": {
          "type": "Date",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "markedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Trainer"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ExamScore",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "course": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TrainingCourse"
        },
        "traineeName": {
          "type": "String",
          "required": true
        },
        "examDate": {
          "type": "Date",
          "required": true
        },
        "score": {
          "type": "Number",
          "required": true
        },
        "passed": {
          "type": "Boolean",
          "required": true
        },
        "recordedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Trainer"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Certificate",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "course": {
          "type": "Pointer",
          "required": true,
          "targetClass": "TrainingCourse"
        },
        "traineeName": {
          "type": "String",
          "required": true
        },
        "certificateNumber": {
          "type": "String",
          "required": true
        },
        "issueDate": {
          "type": "Date",
          "required": true
        },
        "fileUrl": {
          "type": "String",
          "required": true
        },
        "issuedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Trainer"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Construire avec l'Agent AI

Utilisez l'Agent AI Back4app pour générer une véritable application de suivi de présence à partir de ce modèle, incluant le frontend, le backend, l'authentification, ainsi que les flux de cours de formation, de journal de présence, de notes d'examen et de stockage de certificats.

Agent AI Back4app
Prêt à construire
Créez un backend d'application de journal de présence à la formation sur Back4app avec ce schéma et ce comportement exact.

Schéma:
1. Utilisateur (utiliser Back4app intégré) : nom d'utilisateur, email, mot de passe ; objectId, createdAt, updatedAt (système).
2. Cours de Formation : codeCours (String, requis), titre (String, requis), dateSession (Date, requis), instructeur (Pointeur vers Utilisateur, requis) ; objectId, createdAt, updatedAt (système).
3. Journal de Présence : stagiaire (Pointeur vers Utilisateur, requis), coursFormation (Pointeur vers Cours de Formation, requis), statut (String, requis), vérifiéÀ (Date) ; objectId, createdAt, updatedAt (système).
4. Note d'Examen : stagiaire (Pointeur vers Utilisateur, requis), coursFormation (Pointeur vers Cours de Formation, requis), note (Number, requis), réussi (Boolean, requis) ; objectId, createdAt, updatedAt (système).
5. Stockage de Certificats : stagiaire (Pointeur vers Utilisateur, requis), coursFormation (Pointeur vers Cours de Formation, requis), fichier (File, requis), émisÀ (Date, requis) ; objectId, createdAt, updatedAt (système).

Sécurité :
- Seul l'utilisateur peut mettre à jour/supprimer son profil. Seul le personnel autorisé peut créer/supprimer des enregistrements de formation. Utilisez le Cloud Code pour validation.

Auth :
- Inscription, connexion, déconnexion.

Comportement :
- Lister les cours, créer des journaux de présence, soumettre des notes d'examen et stocker des certificats.

Livrer :
- application Back4app avec schéma, ACL, CLP ; frontend pour les cours, les journaux de présence, les notes d'examen et le stockage de certificats.

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éployez en quelques minutes50 invites gratuites / moisPas de carte de crédit requise

Terrain de jeu API

Essayez les points de terminaison REST et GraphQL contre le schéma de présence à la formation. 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 TrainingCourse, AttendanceLog et ExamScore avec votre stack choisi.

Flutter Assistance à la formation

React Assistance à la formation

React Native Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

__MARQUE0__ Assistance à la formation

Ce que vous obtenez avec chaque technologie

Chaque pile utilise le même schéma de backend pour la présence à la formation et les contrats API.

Structure de données unifiée pour le journal de formation

Gérez les cours de formation, les journaux de présence, les notes d'examen et le stockage des certificats avec un seul schéma.

Journaux de cours pour les équipes opérationnelles

Suivez qui a assisté à chaque session et quels enregistrements de cours sont encore ouverts.

Révision des notes d'examen pour les managers

Stockez les notes par FormationCours et stagiaire afin que le suivi reste lié à la bonne session.

stockage des certificats pour une preuve d'achèvement

Joignez les fichiers d'achèvement au résultat de cours correct et à l'enregistrement du stagiaire.

Comparaison du cadre de journal de formation

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

CadreTemps de configurationAvantage du journal d'entraînementType de SDKSupport AI
Environ 5 minutesCode unique pour le suivi de présence sur mobile et web.SDK typéComplet
Moins de 5 minutesTableau de bord web rapide pour les logs de cours et les scores d'examen.SDK typéComplet
~3–7 minApplication mobile multiplateforme pour la saisie de présence sur le terrain.SDK typéComplet
Configuration rapide (5 min)Portail rendu par le serveur pour les gestionnaires de formation.SDK typéComplet
~3–5 minIntégration web légère pour les journaux de formation.SDK tapéComplet
Environ 5 minApplication Android native pour les contrôles de présence.SDK tapéComplet
Moins de 5 minutesApplication iOS native pour la révision des scores et les certificats.SDK tapéComplet
~3–7 minInterface web React pour les opérations de formation.SDK typéComplet
Configuration rapide (5 min)Application web d'entreprise pour les flux de travail des coordinateurs.SDK typéComplet
Moins de 2 minAPI GraphQL flexible pour les enregistrements de formation.API GraphQLComplet
Configuration rapide (2 min)Intégration REST API pour l'assistance à la formation.REST APIComplet
~3 minBackend PHP côté serveur pour les journaux de formation.REST APIComplet
~3–7 minBackend .NET pour l'assistance, les scores et les certificats.SDK typéComplet

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

Questions Fréquemment Posées

Questions courantes sur la création d'un backend de journal de présence à une formation avec ce modèle.

Comment les responsables de la participation à la formation détectent-ils les dérives de politique avant qu'elles ne deviennent un risque systémique ?
Comment les programmes de participation à la formation capturent-ils la formation, les attestations et les actions correctives de manière claire ?
Quel est le chemin recommandé pour resserrer les permissions de présence à la formation à mesure que l'organisation grandit ?
Comment puis-je exécuter des requêtes pour les cours de formation et les journaux de présence avec Flutter ?
Comment gérer l'accès à la présence de formation avec Next.js Server Actions ?
React peut-il mettre en cache les données de formation hors ligne ?
Comment puis-je empêcher un accès non autorisé aux certificats ?
Quelle est la meilleure façon d'afficher les journaux de formation sur Android ?
Comment fonctionne le flux de stockage des certificats de bout en bout ?

Fiable par des développeurs du monde entier

Rejoignez des équipes expédiant des produits d'assistance à la formation plus rapidement avec des modèles Back4app

G2 Users Love Us Badge

Prêt à construire votre application de journal d'assistance à la formation ?

Commencez votre projet de journal d'entraînement en quelques minutes. Aucune carte de crédit requise.

Choisissez la technologie