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.
- Suivi des journaux de cours — Modélisez chaque entrée de TrainingCourse et AttendanceLog afin que les instructeurs puissent enregistrer qui a assisté à quelle session.
- Capture des scores d'examen — Stockez les valeurs ExamScore avec des pointeurs de cours et de stagiaire liés pour un examen rapide.
- Stockage de certificat — Conservez 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 :
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.
Diagramme ER
Modèle de relation d'entité pour le schéma back-end d'assiduité à la formation.
Schéma couvrant les utilisateurs, les cours de formation, les journaux d'assiduité, les scores d'examen et le stockage de certificats.
Voir la source du diagramme
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
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 changesDictionnaire de données
Référence par niveau de champ pour chaque classe dans le schéma de présence de formation.
| Champ | Type | Description | Requis |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Auto |
| username | String | Trainer login name | |
| String | Trainer email address | ||
| password | String | Hashed password (write-only) | |
| fullName | String | Trainer display name | |
| role | String | Access role for the training workspace | |
| createdAt | Date | Auto-generated creation timestamp | Auto |
| updatedAt | Date | Auto-generated last-update timestamp | Auto |
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.
{
"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.
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.
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.
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.
| Cadre | Temps de configuration | Avantage du journal d'entraînement | Type de SDK | Support AI |
|---|---|---|---|---|
| Environ 5 minutes | Code unique pour le suivi de présence sur mobile et web. | SDK typé | Complet | |
| Moins de 5 minutes | Tableau de bord web rapide pour les logs de cours et les scores d'examen. | SDK typé | Complet | |
| ~3–7 min | Application 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 min | Intégration web légère pour les journaux de formation. | SDK tapé | Complet | |
| Environ 5 min | Application Android native pour les contrôles de présence. | SDK tapé | Complet | |
| Moins de 5 minutes | Application iOS native pour la révision des scores et les certificats. | SDK tapé | Complet | |
| ~3–7 min | Interface 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 min | API GraphQL flexible pour les enregistrements de formation. | API GraphQL | Complet | |
| Configuration rapide (2 min) | Intégration REST API pour l'assistance à la formation. | REST API | Complet | |
| ~3 min | Backend PHP côté serveur pour les journaux de formation. | REST API | Complet | |
| ~3–7 min | Backend .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.
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.