有机认证日志后端模板
土地历史、种子来源和收获分离日志
在 Back4app 上的一个可投入生产的 有机认证日志后端,包括土地历史追踪、种子来源日志和收获分离。包含 ER 图、数据字典、JSON 架构、API 游乐场,以及一个 AI 代理 提示以便快速启动。
关键要点
此模板为您提供了一个具有土地历史追踪、种子来源日志和收获分离的有机认证日志后端,以便您的团队能够记录田地、投入和收获批次,减少往返交流。
- 一个地方的土地历史 — 跟踪田地和土地历史条目,以便每块地都有先前使用、过渡状态和检查备注。
- 符合要求的种子来源日志 — 记录每个种植事件的种子来源日志条目,包括供应商、批号和有机验证详细信息。
- 可审核的收获分离 — 将收获批次和分离事件记录与作物批次关联,以确保认证和非认证产品保持独立。
- 现场工作人员和协调员保持一致 — 使用农场、田地和审核记录更新来保持操作、检查和合规笔记同步。
- 一个后端适用于网页和移动端 — 通过相同的REST和GraphQL API为React、Flutter、Next.js及其他客户提供日志和现场记录服务。
概述:有机认证日志
良好的有机认证卫生意味着审核员可以抽样记录并立即了解范围、状态和下一个所需的行动。小的延迟会迅速积累。在Back4app上,农场、田地、土地历史、种子来源日志和收获批次互相连接,形成一个连贯的有机认证叙述,而不是一堆不相关的票据和文件。该架构涵盖农场(名称、位置、操作员)、田地(农场、地块ID、面积、有机状态)、土地历史(田地、先前用途、转换开始日期、检查备注)、种子来源日志(田地、作物、供应商、批号、有机验证)、收获批次(田地、作物、收获日期、分离状态)、分离事件(收获批次、处理者、存储区域、备注)和审核记录(实体类型、实体ID、操作、时间戳),并内置认证和可追溯性功能。连接您首选的前端,快速交付。
最佳用于:
有机认证:后端快照
如果有机认证的利益相关者无法在几秒钟内回答简单问题,他们将在会议中慢慢而昂贵地回答这些问题。
无论您发布的是Web还是移动,农场、田地和土地历史始终是脊柱 —— 此页面是对齐利益相关者的最快方式。
核心有机日志特性
该中心的每个技术卡片都使用相同的有机认证日志架构,包括Farm、Field、LandHistory、SeedSourceLog、HarvestBatch、SeparationEvent和AuditEntry。
使用 Field 和 LandHistory 跟踪土地历史
Field 存储 parcelId、面积和 organicStatus,而 LandHistory 记录 priorUse 和过渡日期。
种子来源日志与 SeedSourceLog
SeedSourceLog 关联一个田块、作物、供应商、批号以及 organicVerified 状态。
使用HarvestBatch和SeparationEvent进行收获分离
HarvestBatch保存收获日期和分离状态;SeparationEvent记录存储区域和处理备注。
审计日志与AuditEntry
AuditEntry记录实体类型、实体ID、操作和时间戳。
为什么使用 Back4app 构建您的有机认证日志后端?
Back4app 为您提供农场、田地和可追溯性原语,以便您的团队可以专注于检查和分离检查,而不是后端维护。
- •土地和田地跟踪: Field 和 LandHistory 类捕获先前使用情况、面积和 organicStatus,而无需强迫使用电子表格解决方法。
- •种子来源和收获审计轨迹: SeedSourceLog 和 HarvestBatch 记录将供应商、批号和分离状态绑定在一起,以便进行审查。
- •实时 + API 灵活性: 使用 Live Queries 进行 AuditEntry 更新,同时为每个客户端保持 REST 和 GraphQL 可用。
一次构建您的有机认证日志,让农场、协调员和田间工作人员从同一后端合同中工作。
核心好处
一个日志后端,可以组织现场工作、源记录和收获分离。
更快的田地设置
从农场、田地和土地历史类开始,而不是从头构建土地历史表。
清晰可读的源可追溯性
使用 SeedSourceLog 字段,如供应商、批号和有机验证,来审核输入历史。
分离检查保持可见
HarvestBatch 和 SeparationEvent 记录使确认认证批次被单独处理变得更容易。
审计友好的编辑
AuditEntry 保持实体类型和操作历史可用于检查和更正。
为每个客户端提供一个 API
REST 和 GraphQL 都可以在不重新设计架构的情况下读取 Field、SeedSourceLog 和 HarvestBatch 记录。
AI 启动工作流程
从一个结构化提示生成有机认证日志脚手架和集成指导。
准备好启动您的有机认证日志吗?
让 Back4app AI 代理搭建您的有机认证日志后端,并从一个提示生成土地历史、种子来源日志和收获分离工作流程。
免费开始 — 每月 50 个 AI 代理提示,无需提供信用卡信息
技术栈
此有机认证日志后端模板中包含的一切。
有机ER图
有机认证日志架构的实体关系模型。
涵盖农场、地块、土地历史、种子来源日志、收获批次、分离事件和审计条目的架构。
查看图表来源
erDiagram
Inspector ||--o{ Farm : "manager"
Farm ||--o{ LandParcel : "farm"
Farm ||--o{ SeedSourceLog : "farm"
Farm ||--o{ HarvestLot : "farm"
Farm ||--o{ CertificationVisit : "farm"
Farm ||--o{ ComplianceEntry : "farm"
Inspector ||--o{ CertificationVisit : "inspector"
LandParcel ||--o{ SeedSourceLog : "landParcel"
LandParcel ||--o{ HarvestLot : "landParcel"
Inspector {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
Farm {
String objectId PK
String farmName
String organicStatus
String managerId FK
Date createdAt
Date updatedAt
}
LandParcel {
String objectId PK
String farmId FK
String parcelName
String historyNotes
Date lastConventionalUseDate
Date createdAt
Date updatedAt
}
SeedSourceLog {
String objectId PK
String farmId FK
String landParcelId FK
String cropName
String seedSupplier
String seedLotNumber
Boolean organicVerified
String documentUrl
Date createdAt
Date updatedAt
}
HarvestLot {
String objectId PK
String farmId FK
String landParcelId FK
String lotCode
String cropName
Date harvestDate
String separationStatus
String storageArea
Date createdAt
Date updatedAt
}
CertificationVisit {
String objectId PK
String farmId FK
String inspectorId FK
Date visitDate
String visitType
String result
String notes
Date createdAt
Date updatedAt
}
ComplianceEntry {
String objectId PK
String farmId FK
String category
String status
String summary
Date resolvedAt
Date createdAt
Date updatedAt
}
认证流程
认证、现场审核、种子来源记录、收获分离和审计条目的典型运行流程。
查看图表来源
sequenceDiagram
participant Inspector
participant App as Organic Certification Log App
participant Back4app as Back4app Cloud
Inspector->>App: Sign in to review farm logs
App->>Back4app: POST /login
Back4app-->>App: Session token
Inspector->>App: Open farm list
App->>Back4app: GET /classes/Farm?include=manager
Back4app-->>App: Farm status and manager pointers
Inspector->>App: Add land history and seed source details
App->>Back4app: POST /classes/LandParcel and POST /classes/SeedSourceLog
Back4app-->>App: Parcel objectId and seedSourceLog objectId
Inspector->>App: Record harvest separation
App->>Back4app: POST /classes/HarvestLot
Back4app-->>App: Harvest lot saved
App->>Back4app: GET /classes/ComplianceEntry?order=-updatedAt
Back4app-->>App: Compliance entries and live updates数据字典
有机认证日志模式中每个类的字段级参考。
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | Inspector login name | |
| String | Inspector email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Inspector role (e.g. coordinator, fieldStaff, reviewer) | |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
7 字段在 Inspector 中
安全与权限
ACL 和 CLP 策略如何保护农场、字段、日志和分离记录。
基于角色的访问权限为员工和协调员
使用角色,以便现场员工可以创建日志,而协调员审核和批准土地历史和分离细节。
农场记录的所有权
农场和字段的更新应通过 ACL 和 Cloud Code 检查,限制在正确的操作员或组织内。
可审查的审计记录
保持审计条目仅附加以便于检查和修改,确保以前的操作可见。
模式 JSON
原始 JSON 模式定义已准备好复制到 Back4app 或用作实施参考。
{
"classes": [
{
"className": "Inspector",
"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": "Farm",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"farmName": {
"type": "String",
"required": true
},
"organicStatus": {
"type": "String",
"required": true
},
"manager": {
"type": "Pointer",
"required": true,
"targetClass": "Inspector"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "LandParcel",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"farm": {
"type": "Pointer",
"required": true,
"targetClass": "Farm"
},
"parcelName": {
"type": "String",
"required": true
},
"historyNotes": {
"type": "String",
"required": true
},
"lastConventionalUseDate": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SeedSourceLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"farm": {
"type": "Pointer",
"required": true,
"targetClass": "Farm"
},
"landParcel": {
"type": "Pointer",
"required": true,
"targetClass": "LandParcel"
},
"cropName": {
"type": "String",
"required": true
},
"seedSupplier": {
"type": "String",
"required": true
},
"seedLotNumber": {
"type": "String",
"required": true
},
"organicVerified": {
"type": "Boolean",
"required": true
},
"documentUrl": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "HarvestLot",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"farm": {
"type": "Pointer",
"required": true,
"targetClass": "Farm"
},
"landParcel": {
"type": "Pointer",
"required": true,
"targetClass": "LandParcel"
},
"lotCode": {
"type": "String",
"required": true
},
"cropName": {
"type": "String",
"required": true
},
"harvestDate": {
"type": "Date",
"required": true
},
"separationStatus": {
"type": "String",
"required": true
},
"storageArea": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CertificationVisit",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"farm": {
"type": "Pointer",
"required": true,
"targetClass": "Farm"
},
"inspector": {
"type": "Pointer",
"required": true,
"targetClass": "Inspector"
},
"visitDate": {
"type": "Date",
"required": true
},
"visitType": {
"type": "String",
"required": true
},
"result": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ComplianceEntry",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"farm": {
"type": "Pointer",
"required": true,
"targetClass": "Farm"
},
"category": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"resolvedAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}使用 AI 代理构建
使用 Back4app AI 代理根据此模板生成真实的有机认证日志应用,包括前端、后端、认证、土地历史、种子来源日志和收获分离流程。
在 Back4app 上创建一个有机认证日志应用程序的后端,使用这个确切的架构和行为。 架构: 1. 用户(使用 Back4app 内置):用户名,电子邮件,密码;objectId,createdAt,updatedAt(系统)。 2. 农场:名称(字符串,必填),位置(字符串,必填),操作员(指向用户的指针,必填);objectId,createdAt,updatedAt(系统)。 3. 田地:农场(指向农场的指针,必填),地块ID(字符串,必填),面积(数字,必填),有机状态(字符串,必填);objectId,createdAt,updatedAt(系统)。 4. 土地历史:田地(指向田地的指针,必填),先前使用(字符串,必填),转型开始日期(日期,必填),检查备注(字符串);objectId,createdAt,updatedAt(系统)。 5. 种子来源日志:田地(指向田地的指针,必填),作物(字符串,必填),供应商(字符串,必填),批号(字符串,必填),有机验证(布尔值,必填);objectId,createdAt,updatedAt(系统)。 6. 收获批次:田地(指向田地的指针,必填),作物(字符串,必填),收获日期(日期,必填),分离状态(字符串,必填);objectId,createdAt,updatedAt(系统)。 7. 分离事件:收获批次(指向收获批次的指针,必填),处理人(指向用户的指针,必填),存储区域(字符串,必填),备注(字符串);objectId,createdAt,updatedAt(系统)。 8. 审计条目:实体类型(字符串,必填),实体ID(字符串,必填),操作(字符串,必填),时间戳(日期,必填);objectId,createdAt,updatedAt(系统)。 安全: - 只有农场操作员或授权人员可以更新田地和日志记录。使用云代码进行验证。 认证: - 注册,登录,登出。 行为: - 列出农场和田地,创建土地历史条目,记录种子来源日志,捕获收获批次,并记录分离事件。 交付: - 带有架构、ACL、CLP 的 Back4app 应用;农场、田地、种子来源日志、收获批次、分离事件和审计条目的前端。
按下面的按钮以打开预填充此模板提示的代理。
这是没有技术后缀的基本提示。您可以在之后调整生成的前端堆栈。
API Playground
尝试针对有机认证日志架构的 REST 和 GraphQL 端点。响应使用模拟数据,无需 Back4app 账户。
使用与此模板相同的架构。
选择您的技术
展开每个卡片以了解如何将 Farm、Field 和 LandHistory 与您选择的技术栈集成。
Flutter 有机认证日志后端
React 有机认证日志后端
React 原生 有机认证日志后端
Next.js 有机认证日志后端
JavaScript 有机认证日志后端
Android 有机认证日志后端
iOS 有机认证日志后端
Vue 有机认证日志后端
Angular 有机认证日志后端
GraphQL 有机认证日志后端
REST API 有机认证日志后端
PHP 有机认证日志后端
.NET 有机认证日志后端
每项技术带来的收益
每个技术栈使用相同的有机认证日志架构和 API 合同。
统一的有机日志结构
使用一个一致的架构管理农场、田地、种子来源日志和收获分离。
认证审核的土地历史
在易于查询的字段中存储先前使用、过渡日期和检查备注。
种植批次的来源可追溯性
记录每个 SeedSourceLog 条目的供应商、批号和有机认证。
收获批次的分离追踪
使用 HarvestBatch 和 SeparationEvent 记录显示如何将认证产品分开存放。
REST/GraphQL APIs 为运营团队提供支持
从移动设备、网页或后台工具读取和写入相同的字段和日志数据。
有机日志技术比较
比较所有支持技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 有机日志收益 | SDK 类型 | 人工智能支持 |
|---|---|---|---|---|
| 大约 5 分钟 | 用于移动和网络的现场检查和日志审核的单一代码库。 | 类型化 SDK | 完整 | |
| 不到 5 分钟 | 快速网页仪表板,用于农场和收获分离审核。 | 类型化 SDK | 完整 | |
| ~3–7 分钟 | 适用于现场人员和协调员的跨平台移动应用。 | 输入的 SDK | 完整 | |
| 快速(5 分钟)设置 | 服务器渲染的土地历史和种子来源日志仪表板。 | 输入的 SDK | 完整 | |
| ~3–5 分钟 | 适用于有机记录的轻量级网络集成。 | 输入的 SDK | 完整 | |
| 大约 5 分钟 | 原生 Android 应用于现场检查和分离检查。 | 输入的SDK | 完整 | |
| 少于 5 分钟 | 原生 iOS 应用于农场和收获审查。 | 输入的SDK | 完整 | |
| 约 3–7 分钟 | Reactive 网页用户界面用于土地历史记录和日志。 | 输入的SDK | 完整 | |
| 快速(5 分钟)设置 | 企业认证操作的网页应用程序。 | 输入的SDK | 完整 | |
| 少于 2 分钟 | 灵活的 GraphQL API 用于嵌套农场和田地查询。 | GraphQL API | 完整 | |
| 快速(2 分钟)设置 | REST API 在田地日志和审计记录中的集成。 | REST API | 完整 | |
| 约 3 分钟 | 服务器端 PHP 后端用于有机记录工作流程。 | REST API | 完整 | |
| ~3–7分钟 | .NET后端用于认证和日志审核。 | 输入的SDK | 完整 |
设置时间反映了从项目引导到使用此模板架构进行第一次农场或田地查询的预期持续时间。
常见问题
关于使用此模板构建有机认证日志后端的常见问题。