培训考勤日志后端模板
培训考勤、成绩和证书
在 Back4app 上的一个生产就绪的 培训考勤日志后端,包含课程日志、考试成绩和证书存储。包括 ER 图、数据字典、JSON 模式、API 游乐场,以及一个 AI Agent 提示以快速启动。
培训日志要点
此模板为您提供了一个培训考勤日志后端,其中包括课程日志、考试成绩和证书存储,便于协调员将会议、结果和完成证明集中在一个地方。
- 课程日志跟踪 — 为每个 TrainingCourse 和 AttendanceLog 条目建模,以便讲师记录谁参加了哪个会议。
- 考试成绩捕获 — 存储带有链接课程和学员指针的 ExamScore 值,以便快速查看。
- 证书存储 — 确保将 CertificateStorage 文件附加到正确的完成事件和学员档案。
培训出勤记录后台一览
监管机构期望培训出勤证据是持久的:足够不可变以建立信任,足够灵活以便随着时间改善项目。解决方案是操作性的,而非激励性的。基于 Back4app 建模 TrainingCourse、AttendanceLog、ExamScore 和 CertificateStorage 以使培训出勤控制具有操作性:在实际工作发生的地方记录批准、证据和例外情况。该架构涵盖用户(用户名、电子邮件、密码)、培训课程(课程代码、标题、课程日期、讲师)、出勤日志(学员、培训课程、状态、签到时间)、考试成绩(学员、培训课程、分数、是否通过)和证书存储(学员、培训课程、文件、颁发日期),并已具备身份验证和受控访问功能。连接您首选的前端,并加快上线速度。
最佳适用:
培训出席情况:后端快照
培训有助于提高出席率,但无法弥补分散在三个工具和四种命名约定之间的数据。
中心突出显示 TrainingCourse、AttendanceLog 和 ExamScore,以便您可以将客户端栈与相同的实体、字段和关系进行比较。
核心培训日志功能
该中心的每张技术卡都使用相同的培训出勤后端模式,包括 TrainingCourse、AttendanceLog、ExamScore 和 CertificateStorage。
培训课程管理
TrainingCourse存储courseCode、标题、sessionDate和讲师。
出席记录
AttendanceLog 捕获受训者、培训课程、状态和签到时间。
考试成绩跟踪
ExamScore 关联受训者、培训课程、成绩和是否通过。
证书存储
CertificateStorage 保存学员、培训课程、文件和发放时间。
为什么要使用 Back4app 搭建您的培训出席记录后端?
Back4app 为您提供培训课程、出勤记录、考试成绩和证书存储的基本组件,以便协调员可以专注于会议的交付,而不是后端的管道。
- •课程和出席记录: TrainingCourse 和 AttendanceLog 类允许您按 sessionDate、courseCode 和 checkedInAt 跟踪出席情况。
- •与培训事件相关的分数: ExamScore将每个分数与受训者和培训课程链接,使通过/未通过审核与课程记录保持一致。
- •具有真实检索路径的证书: CertificateStorage保存issuedAt和文件字段,以确保完成证明与正确的培训结果保持相关。
从一个后端合同跨每个平台运行培训日志、考试分数和证书存储。
核心优势
一个培训出勤后端,帮助团队记录会议、审查分数并存储证书,减少设置工作。
快速课程日志发布
从 TrainingCourse 开始,而不是从头创建会话表和关系。
出勤和分数可追溯性
将 AttendanceLog 和 ExamScore 条目链接到相同的学员和 trainingCourse 字段,以便进行明确的后续跟进。
通过课程获取证书
保持与课程完成相关的 CertificateStorage 文件,以便运营人员能够快速找到证明。
受控的培训数据访问
使用 ACL/CLP,使只有授权员工才能更新出勤记录、考试成绩或证书文件。
适用于现场和办公室用户的单一模型
通过一个 API 合同共享 TrainingCourse、AttendanceLog、ExamScore 和 CertificateStorage,而不是单独的工具。
AI 辅助的引导
通过一个结构化的提示生成模式、权限和集成指导。
准备好启动您的培训出勤记录应用程序了吗?
让 Back4app AI代理搭建您的培训出勤后端,并从一个提示生成课程日志、考试成绩和证书存储。
免费开始——每月50个AI代理提示,无需信用卡
技术栈
此培训出勤后端模板中包含的一切。
ER图
培训考勤后端架构的实体关系模型。
涵盖用户、培训课程、考勤日志、考试分数和证书存储的架构。
查看图表来源
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
}
集成流程
身份验证、课程日志、考勤记录、考试分数和证书存储的典型运行流程。
查看图表源
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数据字典
培训出勤模式中每个类的字段级参考。
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| 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 | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 字段在 Trainer 中
安全与权限
ACL 和 CLP 策略如何保护用户、培训课程、出勤记录、考试成绩和证书存储。
用户账户边界
只有用户可以更新或删除他们的个人资料;其他用户无法修改身份字段。
课程和日志完整性
只有授权的员工可以创建或删除 TrainingCourse、AttendanceLog、ExamScore 和 CertificateStorage 条目。
受限访问培训证据
限制读取,使经理、协调员或指定的培训生只能查看他们应该访问的课程日志和证书文件。
模式 (JSON)
准备好复制到 Back4app 或用作实施参考的原始 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
}
}
}
]
}使用 AI 代理构建
使用 Back4app AI 代理从此模板生成真实的培训考勤应用,包括前端、后端、身份验证,以及培训课程、考勤记录、考试成绩和证书存储流程。
在 Back4app 上用这个确切的模式和行为创建培训考勤记录应用后端。 模式: 1. 用户(使用 Back4app 内置):用户名,电子邮件,密码;objectId,createdAt,updatedAt(系统)。 2. 培训课程:课程代码(字符串,必填),标题(字符串,必填),课程日期(日期,必填),讲师(指向用户的指针,必填);objectId,createdAt,updatedAt(系统)。 3. 考勤记录:受训者(指向用户的指针,必填),培训课程(指向培训课程的指针,必填),状态(字符串,必填),签到时间(日期);objectId,createdAt,updatedAt(系统)。 4. 考试成绩:受训者(指向用户的指针,必填),培训课程(指向培训课程的指针,必填),分数(数字,必填),通过(布尔值,必填);objectId,createdAt,updatedAt(系统)。 5. 证书存储:受训者(指向用户的指针,必填),培训课程(指向培训课程的指针,必填),文件(文件,必填),发放时间(日期,必填);objectId,createdAt,updatedAt(系统)。 安全性: - 只有用户可以更新/删除他们的个人资料。只有授权员工可以创建/删除培训记录。使用云代码进行验证。 身份验证: - 注册,登录,登出。 行为: - 列出课程,创建考勤记录,提交考试成绩,存储证书。 交付: - 带有模式、ACL、CLP 的 Back4app 应用;课程、考勤记录、考试成绩和证书存储的前端。
按下面的按钮打开代理,模板提示预填充。
这是没有技术后缀的基础提示。您可以在之后调整生成的前端栈。
API 游乐场
尝试针对培训出勤架构的 REST 和 GraphQL 端点。响应使用模拟数据,无需 Back4app 账户。
使用与该模板相同的架构。
选择您的技术
展开每个卡片以查看如何与您选择的堆栈集成 TrainingCourse、AttendanceLog 和 ExamScore。
Flutter 培训出勤后端
React 培训出勤后端
React 原生 培训出勤后端
Next.js 培训出勤后端
JavaScript 培训出勤后端
Android 培训出勤后端
iOS 培训出勤后端
Vue 培训出勤后端
Angular 培训出勤后端
GraphQL 培训出勤后端
REST API 培训出勤后端
PHP 培训出勤后端
.NET 培训出勤后端
您每种技术获得的内容
每个堆栈使用相同的培训出勤后端模式和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分钟 | 用于培训操作的React网页用户界面。 | 输入的SDK | 完整 | |
| 快速(5分钟)设置 | 用于协调工作流程的企业网页应用。 | 输入的SDK | 完整 | |
| 不到2分钟 | 灵活的GraphQL API,用于培训记录。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | REST API 集成用于培训出勤。 | REST API | 完整 | |
| ~3分钟 | 服务器端 PHP 后端用于培训日志。 | REST API | 完整 | |
| ~3-7分钟 | .NET 后端用于出勤、分数和证书。 | 类型化 SDK | 完整 |
设置时间反映从项目启动到使用该模板架构的第一次 TrainingCourse 或 AttendanceLog 查询的预期持续时间。
常见问题
关于使用此模板构建培训出勤日志后端的常见问题。