박물관 등록자 앱 백엔드 템플릿
MuseumObject 위치 제어 및 등록자 워크플로우
생산 준비 완료된 박물관 등록자 백엔드가 Back4app 위에 있으며, MuseumObject 추적, 컬렉션 소유권, 위치 업데이트, LoanAgreement 워크플로우, DeaccessionLog 이력, 그리고 ActivityLog 감사가 포함되어 있습니다. ER 다이어그램, 데이터 사전, JSON 스키마, API 놀이터, 그리고 빠른 설정을 위한 AI 에이전트 프롬프트가 포함되어 있습니다.
등록자 요약
이 템플릿은 MuseumObject 기록, 위치 업데이트, LoanAgreement 작업 흐름, DeaccessionLog 항목 및 ActivityLog 기록을 위한 박물관 등록자 백엔드를 제공합니다. 컬렉션 팀이 하나의 공유된 진실의 출처에서 작업할 수 있습니다.
- MuseumObject 위치 제어 — 현재 위치, 상태, 컬렉션, 상태 요약 및 출처 노트로 각 MuseumObject를 모델링하여 등록자가 갤러리에서 저장으로 본명을 따를 수 있습니다.
- LoanAgreement 작업 흐름 — LoanAgreement 상태, 대출 번호, 대출 기관, 시작 날짜, 만료 날짜 및 서명한 직원 정보를 사용하여 나가는 대출과 들어오는 대출을 추적합니다.
- DeaccessionLog 책임 — 각 MuseumObject에 연결된 DeaccessionLog 항목에 deaccession 결정, 승인 단계 및 최종 처분 노트를 기록합니다.
- 등록자 친화적인 권한 — ACL 및 CLP 규칙을 사용하여 등록자, 큐레이터, 컬렉션 관리자 및 보존자는 할당된 클래스만 다룰 수 있습니다.
- 컬렉션 작업을 위한 단일 API — MuseumObject, Location, Collection, LoanAgreement, DeaccessionLog 및 ActivityLog에 대해 하나의 REST 및 GraphQL 계층을 통해 웹, 모바일 및 관리 도구를 제공합니다.
박물관 등록자 앱 템플릿이란 무엇입니까?
박물관 등록자는 마감일이 선택적이지 않으며, 구조적인 기록 계층이 날짜를 놀라움이 아닌 경고로 변환합니다. 모멘텀은 정확한 상태에 따라 달라집니다. Back4app의 Collection, Location, MuseumObject, LoanAgreement 및 DeaccessionLog를 통해 박물관 등록자 팀은 동일한 케이스 기록에 대해 협력하면서도 직무 분리를 시행할 수 있습니다. 스키마는 사용자(사용자 이름, 이메일, 비밀번호, 역할, 전체 이름), 컬렉션(접수 번호, 제목, 부서, 주요 큐레이터), 위치(코드, 이름, 유형, 보안 여부), MuseumObject(접수 번호, 객체 제목, 객체 유형, 컬렉션, 현재 위치, 상태), LoanAgreement(대출 번호, 박물관 객체, 대출 유형, 대출 기관, 시작 날짜, 만료 날짜, 서명자, 계약 상태), DeaccessionLog(비축 번호, 박물관 객체, 결정 날짜, 이유, 승인자, 최종 처분, 기록 상태) 및 ActivityLog(행위자, 박물관 객체, 행동 유형, 행동 시점)를 포함하며 인증 및 기록 관리 워크플로가 내장되어 있습니다. 원하는 프론트 엔드를 연결하고 더 빠르게 배송하세요.
최고의 용도:
이 박물관 등록 담당자 백엔드가 구성된 방식
최고의 주에는 박물관 등록 기사가 채무를 드러냅니다: 1월에 괜찮게 느껴졌던 지름길이 2월 약속을 놓치게 되는 이유가 됩니다.
Collection, Location 및 MuseumObject를 MVP 범위의 체크리스트로 사용하세요: 모델링되지 않으면 스프레드시트 우회 방식이 됩니다.
박물관 등록자 기능
이 허브의 모든 기술 카드에는 User, Collection, Location, MuseumObject, LoanAgreement, DeaccessionLog 및 ActivityLog와 함께 동일한 박물관 등록자 백엔드 스키마가 사용됩니다.
MuseumObject 관리
MuseumObject는 accessionNumber, objectTitle, objectType, status, collection, 및 currentLocation을 저장합니다.
위치 추적
위치는 코드, 이름, 유형, 및 isSecure를 캡처합니다.
대출 계약 워크플로우
대출 계약은 museumObject, loanNumber, loanType, borrowingInstitution, dueDate 및 agreementStatus와 연결됩니다.
수집 해제 로그 추적
수집 해제 로그는 deaccessionNumber, decisionDate, reason, finalDisposition 및 recordStatus를 기록합니다.
왜 Back4app으로 박물관 등록자 앱 백엔드를 구축해야 할까요?
Back4app은 등록자, 큐레이터 및 컬렉션 관리자에게 필요한 클래스를 제공하여 팀이 인프라 대신 입회 번호, 현재 위치 및 이동 이력에 집중할 수 있도록 합니다.
- •MuseumObject 및 Location이 연결되어 있습니다.: MuseumObject 및 Location 포인터는 현재 위치, 상태 및 컬렉션 소유권을 쉽게 쿼리할 수 있도록 유지합니다.
- •LoanAgreement 기록은 감사 가능성을 유지합니다.: LoanAgreement는 대출 번호, 대출 유형, 대출 기관, 시작일, 만기일, 계약 상태 및 서명자를 보관하여 나가는 객체와 들어오는 객체에 대한 정보를 저장합니다.
- •DeaccessionLog 항목은 첫날부터 구조화됩니다.: DeaccessionLog는 각 객체 제거 사례에 대한 deaccession 번호, 결정 날짜, 이유, 승인자, 최종 처분 및 기록 상태를 캡처합니다.
등록자 백엔드를 한 번 구축한 후 모든 컬렉션 워크플로우와 클라이언트에서 동일한 스키마를 재사용하십시오.
등록자 혜택
이동, 대출 및 수집 해제를 정리하도록 도와주는 박물관 백엔드.
더 빠른 객체 조회
접수 및 선반 추적 테이블을 수동으로 구축하는 대신 MuseumObject 및 Location부터 시작하세요.
더 깔끔한 대출 관리
outbound 및 inbound 대출을 가시적으로 유지하기 위해 LoanAgreement 필드인 agreementStatus, dueDate, borrowingInstitution, signedBy를 사용하세요.
추적 가능한 탈헌 역사
탈헌 결정을 DeaccessionLog에 decisionDate, reason, finalDisposition, approvedBy와 함께 저장하여 나중에 검토할 수 있습니다.
직원 역할에 대한 권한 경계
ACL 및 CLP 규칙을 적용하여 등록자가 MuseumObject 기록을 편집할 수 있고, 더 넓은 직원은 승인된 객체 위치만 읽을 수 있도록 합니다.
검색 가능한 컬렉션 운영
매 시즌마다 스키마를 재설정하지 않고 MuseumObject, Location, LoanAgreement, DeaccessionLog 및 ActivityLog 항목을 쿼리하세요.
AI 지원 스캐폴드
하나의 구조화된 프롬프트에서 박물관 등록자 백엔드 및 시작 통합을 생성하세요.
박물관 등록자 앱을 출시할 준비가 되셨나요?
Back4app AI 에이전트가 귀하의 등록자 백엔드를 스캐폴드하고 하나의 프롬프트에서 MuseumObject, LoanAgreement, DeaccessionLog 및 ActivityLog 워크플로를 생성하게 하세요.
시작은 무료 - 월 50개의 AI 에이전트 프롬프트, 신용 카드 필요 없음
박물관 기술 스택
이 박물관 등록자 백엔드 템플릿에 포함된 모든 것입니다.
박물관 ER 다이어그램
박물관 등록 후端 스키마를 위한 개체 관계 모델.
사용자, 컬렉션, 장소, 박물관 객체, 대출 계약, 불용 로그 및 활동 로그를 포함하는 스키마.
다이어그램 소스 보기
erDiagram
User ||--o{ Collection : "primaryCurator"
User ||--o{ LoanAgreement : "signedBy"
User ||--o{ DeaccessionLog : "approvedBy"
User ||--o{ ActivityLog : "actor"
Collection ||--o{ MuseumObject : "collection"
Location ||--o{ MuseumObject : "currentLocation"
MuseumObject ||--o{ LoanAgreement : "museumObject"
MuseumObject ||--o{ DeaccessionLog : "museumObject"
MuseumObject ||--o{ ActivityLog : "museumObject"
User {
String objectId PK
String username
String email
String password
String role
String fullName
Date createdAt
Date updatedAt
}
Collection {
String objectId PK
String accessionNumber
String title
String department
String primaryCuratorId FK
Date createdAt
Date updatedAt
}
Location {
String objectId PK
String code
String name
String type
Boolean isSecure
Date createdAt
Date updatedAt
}
MuseumObject {
String objectId PK
String accessionNumber
String objectTitle
String objectType
String collectionId FK
String currentLocationId FK
String status
String conditionSummary
String provenanceNote
Date createdAt
Date updatedAt
}
LoanAgreement {
String objectId PK
String loanNumber
String museumObjectId FK
String loanType
String borrowingInstitution
Date startDate
Date dueDate
String signedById FK
String agreementStatus
Date createdAt
Date updatedAt
}
DeaccessionLog {
String objectId PK
String deaccessionNumber
String museumObjectId FK
Date decisionDate
String reason
String approvedById FK
String finalDisposition
String recordStatus
Date createdAt
Date updatedAt
}
ActivityLog {
String objectId PK
String actorId FK
String museumObjectId FK
String actionType
String notes
Date actionAt
Date createdAt
Date updatedAt
}
등록관 통합 흐름
인증, MuseumObject 조회, 위치 업데이트, LoanAgreement 생성, DeaccessionLog 기록 및 ActivityLog 업데이트에 대한 전형적인 실행 흐름입니다.
다이어그램 소스 보기
sequenceDiagram
participant User
participant App as Museum Registrar App
participant Back4app as Back4app Cloud
User->>App: Sign in as registrar, curator, or collections manager
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open object location board
App->>Back4app: GET /classes/MuseumObject?include=collection,currentLocation&order=accessionNumber
Back4app-->>App: MuseumObject list with Location and Collection pointers
User->>App: Record a transfer to storage or gallery
App->>Back4app: PUT /classes/MuseumObject/{objectId}
Back4app-->>App: Updated currentLocation and status
User->>App: Create a loan agreement or deaccession log
App->>Back4app: POST /classes/LoanAgreement or /classes/DeaccessionLog
Back4app-->>App: Agreement or log saved
App->>Back4app: Subscribe to ActivityLog updates
Back4app-->>App: Live updates for object movements and record changes박물관 필드 가이드
박물관 등록관 스키마의 모든 클래스에 대한 필드 수준 전체 참조입니다.
| 필드 | 유형 | 설명 | 필수 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 자동 |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role of the user (e.g., registrar, curator, collections-manager, conservator, read-only-staff) | |
| fullName | String | Display name for staff and stakeholders | |
| createdAt | Date | Auto-generated creation timestamp | 자동 |
| updatedAt | Date | Auto-generated last-update timestamp | 자동 |
8 필드가 User에 있습니다
레지스트라 보안 및 권한
ACL 및 CLP 전략이 MuseumObject 기록, 대출 서류 및 반납 노트를 어떻게 보호하는지.
역할 기반 레지스트라 접근
레지스트라가 MuseumObject, Location, LoanAgreement 및 DeaccessionLog 항목을 생성 및 편집할 수 있으며, 다른 직원은 적절한 경우 읽기 전용 액세스만 가능합니다.
대출 및 반납 관리
LoanAgreement 및 DeaccessionLog에 대한 쓰기 액세스를 제한하여 승인이 승인된 컬렉션 직원에게만 유지되도록 합니다.
객체 이력 무결성
Cloud Code를 사용하여 currentLocation 업데이트를 검증하고 이동 변경 사항을 저장하기 전에 ActivityLog를 추가하십시오.
JSON 스키마
복사할 수 있도록 준비된 원시 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
},
"fullName": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Collection",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"accessionNumber": {
"type": "String",
"required": true
},
"title": {
"type": "String",
"required": true
},
"department": {
"type": "String",
"required": true
},
"primaryCurator": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Location",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"code": {
"type": "String",
"required": true
},
"name": {
"type": "String",
"required": true
},
"type": {
"type": "String",
"required": true
},
"isSecure": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "MuseumObject",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"accessionNumber": {
"type": "String",
"required": true
},
"objectTitle": {
"type": "String",
"required": true
},
"objectType": {
"type": "String",
"required": true
},
"collection": {
"type": "Pointer",
"required": true,
"targetClass": "Collection"
},
"currentLocation": {
"type": "Pointer",
"required": true,
"targetClass": "Location"
},
"status": {
"type": "String",
"required": true
},
"conditionSummary": {
"type": "String",
"required": false
},
"provenanceNote": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "LoanAgreement",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"loanNumber": {
"type": "String",
"required": true
},
"museumObject": {
"type": "Pointer",
"required": true,
"targetClass": "MuseumObject"
},
"loanType": {
"type": "String",
"required": true
},
"borrowingInstitution": {
"type": "String",
"required": true
},
"startDate": {
"type": "Date",
"required": true
},
"dueDate": {
"type": "Date",
"required": true
},
"signedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"agreementStatus": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "DeaccessionLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"deaccessionNumber": {
"type": "String",
"required": true
},
"museumObject": {
"type": "Pointer",
"required": true,
"targetClass": "MuseumObject"
},
"decisionDate": {
"type": "Date",
"required": true
},
"reason": {
"type": "String",
"required": true
},
"approvedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"finalDisposition": {
"type": "String",
"required": true
},
"recordStatus": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ActivityLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"actor": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"museumObject": {
"type": "Pointer",
"required": true,
"targetClass": "MuseumObject"
},
"actionType": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"actionAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}AI 에이전트로 구축
이 템플릿을 사용하여 Back4app AI 에이전트를 사용하여 실제 박물관 레지스트라 앱을 생성하십시오. 여기에는 프론트엔드, 백엔드, 인증, 객체, 대출 및 취소 흐름이 포함됩니다.
Back4app에서 이 정확한 스키마와 동작으로 박물관 등록기 앱 백엔드를 만드세요. 스키마: 1. 사용자 ( Back4app 내장 사용): 사용자 이름, 이메일, 비밀번호, 역할, 전체 이름; objectId, createdAt, updatedAt (시스템). 2. 컬렉션: accessionNumber (문자열, 필수), 제목 (문자열, 필수), 부서 (문자열, 필수), 주요 큐레이터 (사용자에 대한 포인터, 필수); objectId, createdAt, updatedAt (시스템). 3. 위치: 코드 (문자열, 필수), 이름 (문자열, 필수), 유형 (문자열, 필수), 보안 여부 (부울, 필수); objectId, createdAt, updatedAt (시스템). 4. MuseumObject: accessionNumber (문자열, 필수), objectTitle (문자열, 필수), objectType (문자열, 필수), 컬렉션 (컬렉션에 대한 포인터, 필수), 현재 위치 (위치에 대한 포인터, 필수), 상태 (문자열, 필수), 상태 요약 (문자열, 선택적), 출처 노트 (문자열, 선택적); objectId, createdAt, updatedAt (시스템). 5. LoanAgreement: loanNumber (문자열, 필수), museumObject (MuseumObject에 대한 포인터, 필수), loanType (문자열, 필수), 대출 기관 (문자열, 필수), 시작 날짜 (날짜, 필수), 만기 날짜 (날짜, 필수), 서명자 (사용자에 대한 포인터, 필수), 계약 상태 (문자열, 필수); objectId, createdAt, updatedAt (시스템). 6. DeaccessionLog: deaccessionNumber (문자열, 필수), museumObject (MuseumObject에 대한 포인터, 필수), 결정 날짜 (날짜, 필수), 이유 (문자열, 필수), 승인자 (사용자에 대한 포인터, 필수), 최종 처분 (문자열, 필수), 기록 상태 (문자열, 필수); objectId, createdAt, updatedAt (시스템). 7. ActivityLog: 행위자 (사용자에 대한 포인터, 필수), museumObject (MuseumObject에 대한 포인터, 필수), actionType (문자열, 필수), 메모 (문자열, 선택적), 행동 시 (날짜, 필수); objectId, createdAt, updatedAt (시스템). 보안: - 등록자, 큐레이터 및 컬렉션 관리자 역할은 자신의 책임에 따라 MuseumObject, 위치, 대출 계약 및 DeaccessionLog 기록을 생성하고 편집할 수 있습니다. - 컬렉션 및 객체 기록에 대한 쓰기 액세스를 허가된 직원으로 제한합니다. - 대출 및 디액세션 항목을 감사 가능하도록 유지합니다; ActivityLog 기록을 보존합니다. 인증: - 가입, 로그인, 로그아웃. 행동: - 객체 위치 추적, 대출 계약 관리 및 디액세션 로그 기록. - 부서별 컬렉션과 현재 위치 및 상태별 객체 표시. - MuseumObject가 이동하거나, 대출이 서명되거나, 디액세션이 승인될 때 활동 메모 저장. 제공: - Back4app 앱은 스키마, CLPs, ACLs 및 등록자, 큐레이터, 컬렉션 관리자 및 보존자가 객체 이동, 대출 서류 및 디액세션 워크플로를 관리할 수 있는 인터페이스를 제공합니다.
아래 버튼을 눌러 미리 채워진 템플릿 프롬프트와 함께 에이전트를 엽니다.
이것은 기술 접미사가 없는 기본 프롬프트입니다. 이후 생성된 프론트엔드 스택을 조정할 수 있습니다.
API 샌드박스
REST 및 GraphQL 엔드포인트를 박물관 등록기 스키마에 대해 시도해 보세요. 응답은 모의 데이터를 사용하며 Back4app 계정이 필요하지 않습니다.
이 템플릿과 동일한 스키마를 사용합니다.
기술 선택하기
각 카드를 확장하여 선택한 스택과 Collection, Location, MuseumObject를 통합하는 방법을 확인하십시오.
Flutter 박물관 등록 담당 백엔드
React 박물관 등록 담당 백엔드
React 네이티브 박물관 등록 담당 백엔드
Next.js 박물관 등록 담당 백엔드
JavaScript 박물관 등록 담당 백엔드
Android 박물관 등록 담당 백엔드
iOS 박물관 등록 담당 백엔드
Vue 박물관 등록 담당 백엔드
Angular 박물관 등록 담당 백엔드
GraphQL 박물관 등록 담당 백엔드
REST API 박물관 등록 담당 백엔드
PHP 박물관 등록 담당 백엔드
.NET 박물관 등록 담당 백엔드
모든 기술로 얻는 것
모든 스택은 동일한 박물관 등록자 백엔드 스키마 및 API 계약을 사용합니다.
통합된 박물관 데이터 구조
하나의 스키마로 MuseumObject 기록, Location 항목, LoanAgreement 파일 및 DeaccessionLog 노트를 관리하세요.
컬렉션 팀을 위한 객체 위치 추적
현재 위치 및 활동 이력을 등록자와 큐레이터가 읽을 수 있도록 유지하십시오.
박물관을 위한 대출 계약 워크플로우
대출 기관, 만기일, 계약 상태 및 서명자를 하나의 구조화된 흐름에 저장합니다.
박물관을 위한 탈소장 문서
기록 상태, 결정 날짜 및 검토 및 감사 이유를 기록합니다.
REST/GraphQL API는 박물관 앱을 위한 것입니다.
유연한 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 컬렉션 작업을 위한 웹 UI입니다. | 타입된 SDK | 전체 | |
| 빠른 (5분) 설정 | 레지스트라 업무를 위한 기업 웹 애플리케이션. | 타입된 SDK | 전체 | |
| 2분 이하 | 유연한 GraphQL API로 객체 및 대출 뷰를 제공합니다. | GraphQL API | 전체 | |
| 빠른 (2분) 설정 | REST API 레지스트라 시스템 통합입니다. | REST API | 전체 | |
| ~3분 | 박물관 도구를 위한 서버 측 PHP 백엔드입니다. | REST API | 전체 | |
| ~3–7분 | 수집 관리용 .NET 백엔드입니다. | 타입된 SDK | 전체 |
설정 시간은 이 템플릿 스키마를 사용하여 프로젝트 부트스트랩에서 첫 번째 MuseumObject 또는 LoanAgreement 쿼리에 이르기까지 예상되는 기간을 반영합니다.
박물관 등록 담당자 질문
이 템플릿으로 박물관 등록 백엔드를 구축하는 것에 대한 일반적인 질문입니다.