Журнал консерватора
Создайте с AI Agent
Бэкэнд журнала искусствоведа

Шаблон бэкэнда журнала искусствоведа
Хронологические записи лечения произведений искусства, сессий и заметок о состоянии

Готовый к производству бэкэнд журнала искусствоведа на Back4app с Artwork, ConditionReport, RestorationSession, ProgressPhoto, ChemicalUsage и AuditEntry. Включает диаграмму ЭР, словарь данных, схему JSON, игровой автомат API и AI Agent для быстрой настройки.

Основные выводы из записи

Этот шаблон предоставляет бэкенд журнала художника-консерватора с записями о произведениях искусства, отчетах о состоянии, сессиях реставрации, фотографиях прогресса, использовании химикатов и записях аудита, чтобы ваша команда могла сосредоточиться на примечаниях по лечению и атрибуции.

  1. Управление временной шкалой произведений искусстваМоделируйте каждое произведение искусства с inventoryNumber, title, artist, medium, owner и currentLocation, чтобы каждое лечение начиналось с правильной записи объекта.
  2. Отчеты о состоянии, связанные с консерваторамиИспользуйте ConditionReport с artwork, conservator, reportDate, surfaceCondition, supportCondition, priority и signedOff для отслеживания проверок.
  3. История сеансов леченияЗаписывайте записи RestorationSession с artwork, conservator, sessionDate, treatmentPhase, workSummary, nextSteps и signedBy для четкой хронологии.

Что такое шаблон журнала консерватора искусства?

Практики журнала консерватора искусства зависят от выполнения: прием, сроки и общение с клиентами не могут зависеть от того, кто помнит задачу. Динамика зависит от точного состояния. Этот шаблон моделирует Консерватора, Произведение искусства, Отчет о состоянии, Сессию реставрации и Использование химикатов с доступом на основе ролей на Back4app, так что каждый член команды журнала консерватора искусства видит ту часть рабочего процесса, за которую он отвечает. Схема охватывает Консерватор (имя пользователя, email, отображаемое имя, роль), Произведение искусства (номер инвентаря, название, художник, материал, владелец, текущее местоположение), Отчет о состоянии (произведение искусства, консерватор, дата отчета, состояние поверхности, состояние поддержки, приоритет, подписан), Сессия реставрации (произведение искусства, консерватор, дата сессии, этап лечения, резюме работы, следующие шаги, подписано), Использование химикатов (сессия реставрации, консерватор, название химиката, номер партии, количество использованного, единица, цель использования, примечание по безопасности), Прогресс фото (произведение искусства, сессия реставрации, консерватор, URL фото, подпись, дата создания, угол обзора) и Запись аудита (консерватор, тип объекта, ID объекта, действие, время действия, заметки) с учетом авторизации и истории записей. Подключите ваш предпочитаемый интерфейс и начните быстрее фиксировать лечения.

Лучшее для:

Команд музеев по консервацииЖурналы лечения частных студийПриложения для документирования реставрацииИнструменты отчетности о состоянииЗапуски MVPКоманды выбирают BaaS для продуктов по сохранению искусства

Что вы получаете в шаблоне журнала консерватора искусства

Лучшие панели инструментов журнала консерватора искусства скучны, потому что основные сущности чисты — а не потому, что кто-то занимался таблицей в полночь.

Используйте Консерватора, Произведение искусства и Отчет о состоянии в качестве контрольного списка для объема MVP: если это не смоделировано, это станет обходным решением в виде таблицы.

Возможности журнала произведений искусства

Каждая технологическая карточка в этом хабе использует одну и ту же схему журнала консерватора с Artwork, ConditionReport, RestorationSession, ProgressPhoto, ChemicalUsage и AuditEntry.

Регистр произведений искусства

Произведения искусства хранят inventNumber, название, художника, материал, владельца и текущее местоположение.

Хронология сессий лечения

RestoreSession связывает произведение искусства, консерватора, дату сессии, фазу лечения, краткое содержание работы и подписано.

Архив фото прогресса

ProgressPhoto прикрепляет photoUrl, подпись, дату съемки и угол обзора к сессии.

Журнал использования химикатов

ChemicalUsage фиксирует имя химиката, номер партии, использованное количество, единицу измерения, цель использования и примечание по безопасности по сессиям.

История отчетов о состоянии

ConditionReport хранит дату отчета, состояние поверхности, состояние поддержки, приоритет и подпись.

Почему стоит создать бекенд вашего журнала консерватора искусства с Back4app?

Back4app предоставляет вам примитивы Произведения искусства, Отчета о состоянии, Сессии восстановления, Фото прогресса, Использования химикатов и Входа аудита, чтобы ваша команда могла сосредоточиться на работе по сохранению, а не на бекенд-устройствах.

  • Записи произведений искусства и сессий остаются связанными: Классы Произведения искусства и Сессии восстановления удерживают каждое лечение, связанное с inventoryNumber, sessionDate и workSummary.
  • ProgressPhoto и ChemicalUsage легко проверять: Храните ProgressPhoto.photoUrl и ChemicalUsage.quantityUsed рядом с сессией, чтобы комиссии могли отслеживать каждый шаг.
  • История ConditionReport доступна для запроса: Используйте Live Queries для обновлений ConditionReport, в то время как REST и GraphQL остаются доступными для галерейных систем и инструментов студии.

Быстро разрабатывайте и улучшайте функции журнала консерватора с одним контрактом бэкенда на всех платформах.

Основные преимущества журнала

Бэкенд журнала консерватора, который сохраняет историю лечения организованной и легкой для проверки.

Более быстрая документация лечения

Начните с классов Artwork и RestorationSession, а не с проектирования формата лога с нуля.

Фотодоказательства остаются привязанными

Используйте ProgressPhoto.photoUrl, ProgressPhoto.caption и ProgressPhoto.takenAt, чтобы визуальный прогресс был связан с каждой сессией.

Химические отчеты остаются доступными для поиска

Запрашивайте ChemicalUsage по chemicalName, quantityUsed и unit при подготовке сводок лечения или проверок инвентаризации.

Чистая история состояния

Сохраняйте ConditionReport.surfaceCondition, ConditionReport.supportCondition и reportDate, чтобы сравнение между инспекциями было простым.

Единый бэкенд для веба и мобильных устройств

Получите доступ к одним и тем же данным произведений искусства, сессий и отчетов через REST или GraphQL с любого поддерживаемого клиента.

Настройка с помощью ИИ

Быстро создавайте каркас бэкэнда и рекомендации по интеграции с помощью одного структурированного запроса.

Готовы к восстановительным работам?

Пусть Back4app ИИ-агент создаст каркас вашего бэкэнда консерватора и сгенерирует потоки Artwork, ConditionReport, RestorationSession, ProgressPhoto, ChemicalUsage и AuditEntry с помощью одного запроса.

Можно начать бесплатно — 50 запросов ИИ-агента в месяц, кредитная карта не требуется

Технологический стек консерватора

Все включено в этот шаблон журнала консерватора искусства.

Фронтенд
13+ технологий
Бэкенд
Back4app
База данных
MongoDB
Аутентификация
Встроенная аутентификация + сессии
API
REST и GraphQL
В реальном времени
Live Queries

Диаграмма отношений произведений искусства

Модель отношения сущностей для схемы журнала консерватора по искусству.

Посмотреть источник диаграммы
Mermaid
erDiagram
    Conservator ||--o{ ConditionReport : "writes"
    Conservator ||--o{ RestorationSession : "performs"
    Conservator ||--o{ ChemicalUsage : "logs"
    Conservator ||--o{ ProgressPhoto : "uploads"
    Conservator ||--o{ AuditEntry : "action by"
    Artwork ||--o{ ConditionReport : "assessed in"
    Artwork ||--o{ RestorationSession : "treated in"
    Artwork ||--o{ ProgressPhoto : "documented by"
    RestorationSession ||--o{ ChemicalUsage : "includes"
    RestorationSession ||--o{ ProgressPhoto : "captures"
    RestorationSession ||--o{ AuditEntry : "references"
    Artwork {
        String objectId PK
        String inventoryNumber
        String title
        String artist
        String medium
        String owner
        String currentLocation
        Date createdAt
        Date updatedAt
    }
    Conservator {
        String objectId PK
        String username
        String email
        String password
        String displayName
        String role
        Date createdAt
        Date updatedAt
    }
    ConditionReport {
        String objectId PK
        String artworkId FK
        String conservatorId FK
        Date reportDate
        String surfaceCondition
        String supportCondition
        String environmentNotes
        String priority
        Boolean signedOff
        Date createdAt
        Date updatedAt
    }
    RestorationSession {
        String objectId PK
        String artworkId FK
        String conservatorId FK
        Date sessionDate
        String treatmentPhase
        String workSummary
        String nextSteps
        String signedBy
        Date createdAt
        Date updatedAt
    }
    ChemicalUsage {
        String objectId PK
        String restorationSessionId FK
        String conservatorId FK
        String chemicalName
        String batchNumber
        Number quantityUsed
        String unit
        String usagePurpose
        String safetyNote
        Date createdAt
        Date updatedAt
    }
    ProgressPhoto {
        String objectId PK
        String artworkId FK
        String restorationSessionId FK
        String conservatorId FK
        String photoUrl
        String caption
        Date takenAt
        String viewAngle
        Date createdAt
        Date updatedAt
    }
    AuditEntry {
        String objectId PK
        String conservatorId FK
        String entityType
        String entityId
        String action
        Date actionTime
        String notes
        Date createdAt
        Date updatedAt
    }

Поток лечения

Типичный сценарий выполнения для входа в систему, получения произведений искусства, ввода отчета о состоянии, записи сессии восстановления, загрузки фотографии прогресса, ввода использования химикатов и проверки записи аудита.

Посмотреть источник диаграммы
Mermaid
sequenceDiagram
  participant Conservator
  participant App as Fine Art Conservator Log App
  participant Back4app as Back4app Cloud

  Conservator->>App: Sign in
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  Conservator->>App: Open today's restoration queue
  App->>Back4app: GET /classes/Artwork?order=-updatedAt
  Back4app-->>App: Artwork list

  Conservator->>App: Save condition report and treatment notes
  App->>Back4app: POST /classes/ConditionReport
  App->>Back4app: POST /classes/RestorationSession
  Back4app-->>App: Report and session objectIds

  Conservator->>App: Upload progress photo and chemical usage
  App->>Back4app: POST /classes/ProgressPhoto
  App->>Back4app: POST /classes/ChemicalUsage
  Back4app-->>App: Photo and chemical entries

  App->>Back4app: POST /classes/AuditEntry
  Back4app-->>App: Audit trail recorded

  App->>Back4app: Subscribe to live updates for ConditionReport
  Back4app-->>App: Real-time changes

Справочник по полям

Полный справочник по полям для каждого класса в схеме журнала консерватора.

ПолеТипОписаниеОбязательно
objectIdStringAuto-generated unique identifierАвто
usernameStringLogin name used by the conservator
emailStringWork email for the conservator
passwordStringHashed password (write-only)
displayNameStringName shown on signed notes and reports
roleStringAccess role such as lead, registrar, or assistant
createdAtDateAuto-generated creation timestampАвто
updatedAtDateAuto-generated last-update timestampАвто

8 поля в Conservator

Контроль доступа

Как стратегия ACL и CLP защищает записи о сохранении, фотографии и детали лечения.

Записи, принадлежащие консерватору

Только назначенный консерватор должен создавать или редактировать свои строки RestorationSession и ChemicalUsage.

Контроль записи произведений искусства

Используйте Cloud Code для ограничения изменений в полях Artwork.currentLocation и связанных отчетах.

Чтение доступа по назначению

Разрешить сотрудникам студии или музея читать записи ConditionReport и ProgressPhoto, только когда они связаны с соответствующим произведением искусства.

JSON Схема

Сырая схема JSON определена и готова к копированию в Back4app или использовании в качестве справочного материала по реализации.

JSON
{
  "classes": [
    {
      "className": "Conservator",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Artwork",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "inventoryNumber": {
          "type": "String",
          "required": true
        },
        "title": {
          "type": "String",
          "required": true
        },
        "artist": {
          "type": "String",
          "required": true
        },
        "medium": {
          "type": "String",
          "required": true
        },
        "owner": {
          "type": "String",
          "required": true
        },
        "currentLocation": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ConditionReport",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "artwork": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Artwork"
        },
        "conservator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Conservator"
        },
        "reportDate": {
          "type": "Date",
          "required": true
        },
        "surfaceCondition": {
          "type": "String",
          "required": true
        },
        "supportCondition": {
          "type": "String",
          "required": true
        },
        "environmentNotes": {
          "type": "String",
          "required": false
        },
        "priority": {
          "type": "String",
          "required": true
        },
        "signedOff": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "RestorationSession",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "artwork": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Artwork"
        },
        "conservator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Conservator"
        },
        "sessionDate": {
          "type": "Date",
          "required": true
        },
        "treatmentPhase": {
          "type": "String",
          "required": true
        },
        "workSummary": {
          "type": "String",
          "required": true
        },
        "nextSteps": {
          "type": "String",
          "required": false
        },
        "signedBy": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ChemicalUsage",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "restorationSession": {
          "type": "Pointer",
          "required": true,
          "targetClass": "RestorationSession"
        },
        "conservator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Conservator"
        },
        "chemicalName": {
          "type": "String",
          "required": true
        },
        "batchNumber": {
          "type": "String",
          "required": false
        },
        "quantityUsed": {
          "type": "Number",
          "required": true
        },
        "unit": {
          "type": "String",
          "required": true
        },
        "usagePurpose": {
          "type": "String",
          "required": true
        },
        "safetyNote": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ProgressPhoto",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "artwork": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Artwork"
        },
        "restorationSession": {
          "type": "Pointer",
          "required": true,
          "targetClass": "RestorationSession"
        },
        "conservator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Conservator"
        },
        "photoUrl": {
          "type": "String",
          "required": true
        },
        "caption": {
          "type": "String",
          "required": true
        },
        "takenAt": {
          "type": "Date",
          "required": true
        },
        "viewAngle": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AuditEntry",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "conservator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Conservator"
        },
        "entityType": {
          "type": "String",
          "required": true
        },
        "entityId": {
          "type": "String",
          "required": true
        },
        "action": {
          "type": "String",
          "required": true
        },
        "actionTime": {
          "type": "Date",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Создать с помощью AI-агента

Используйте AI-агента Back4app для генерации реального приложения журнала консерватора искусства из этого шаблона, включая фронтенд, бэкенд, аутентификацию, а также потоки Artwork, ConditionReport, RestorationSession, ChemicalUsage, ProgressPhoto и AuditEntry.

Back4app AI-агент
Готово к созданию
Создайте безопасное приложение для журнала консерватора искусства на Back4app с этой точной схемой и рабочим процессом.

Схема:
1. Консерватор (используйте встроенные поля аутентификации Back4app плюс имя пользователя, электронную почту, пароль, отображаемое имя, роль): objectId, имя пользователя, электронная почта, пароль, отображаемое имя, роль, создано, обновлено.
2. Произведение искусства: objectId, номер инвентаря (строка, обязательное), название (строка, обязательное), художник (строка, обязательное), средство (строка, обязательное), владелец (строка, обязательное), текущее местоположение (строка, обязательное), создано, обновлено.
3. Отчет о состоянии: objectId, произведение искусства (указатель на Произведение искусства, обязательное), консерватор (указатель на Консерватора, обязательное), дата отчета (дата, обязательное), состояние поверхности (строка, обязательное), состояние поддержки (строка, обязательное), примечания к окружению (строка, необязательное), приоритет (строка, обязательное), подписано (логический, обязательное), создано, обновлено.
4. Сессия реставрации: objectId, произведение искусства (указатель на Произведение искусства, обязательное), консерватор (указатель на Консерватора, обязательное), дата сессии (дата, обязательное), этап обработки (строка, обязательное), сводка работы (строка, обязательное), следующие шаги (строка, необязательное), подписано (строка, обязательное), создано, обновлено.
5. Использование химических веществ: objectId, сессия реставрации (указатель на Сессию реставрации, обязательное), консерватор (указатель на Консерватора, обязательное), название химиката (строка, обязательное), номер партии (строка, необязательное), использованное количество (число, обязательное), единица измерения (строка, обязательное), цель использования (строка, обязательное), примечание по безопасности (строка, необязательное), создано, обновлено.
6. ФотоProgress: objectId, произведение искусства (указатель на Произведение искусства, обязательное), сессия реставрации (указатель на Сессию реставрации, обязательное), консерватор (указатель на Консерватора, обязательное), фотоUrl (строка, обязательное), подпись (строка, обязательное), дата съемки (дата, обязательное), угол обзора (строка, необязательное), создано, обновлено.
7. Запись аудита: objectId, консерватор (указатель на Консерватора, обязательное), тип сущности (строка, обязательное), id сущности (строка, обязательное), действие (строка, обязательное), время действия (дата, обязательное), примечания (строка, необязательное), создано, обновлено.

Безопасность:
- Только аутентифицированные консерваторы могут создавать или обновлять записи обработки.
- Отчеты, сессии, фотографии и журналы химических веществ должны принадлежать вошедшему в систему Консерватору.
- Отчеты о состоянии и сессии реставрации должны быть доступны для персонала лаборатории; зафиксированные записи должны оставаться неизменными, за исключением администраторского просмотра.

Аутентификация:
- Регистрация, вход, выход.

Поведение:
- Просмотр произведений искусства по номеру инвентаря и текущему местоположению.
- Создание отчетов о состоянии, сессий реставрации, записей использования химикатов, фотографий прогресса и записей аудита.
- Ведение хронологического следа обработки для каждого произведения искусства.

Доставка:
- Приложение Back4app с схемой, CLPs, ACLs, доступом на основе ролей и фронтендом для фотографий прогресса реставрации, учета использования химикатов и отчетов о состоянии.

Нажмите кнопку ниже, чтобы открыть агента с предварительно заполненной подсказкой этого шаблона.

Это базовый запрос без суффикса технологии. Вы можете адаптировать сгенерированный фронтенд-стек позже.

Развернуть за минуты50 бесплатных запросов в месяцКредитная карта не требуется

API Тестер

Попробуйте REST и GraphQL конечные точки по схеме журнала консерватора. Ответы используют тестовые данные и не требуют учетной записи Back4app.

Загрузка площадки…

Использует ту же схему, что и этот шаблон.

Выберите ваш стек

Разверните каждую карточку, чтобы увидеть, как интегрировать Conservator, Artwork и ConditionReport с вашим выбранным стеком.

Flutter Журнал Консерватора Искусств Backend

React Журнал Консерватора Искусств Backend

React Native Журнал Консерватора Искусств Backend

Next.js Журнал Консерватора Искусств Backend

JavaScript Журнал Консерватора Искусств Backend

Android Журнал Консерватора Искусств Backend

iOS Журнал Консерватора Искусств Backend

Vue Журнал Консерватора Искусств Backend

Angular Журнал Консерватора Искусств Backend

GraphQL Журнал Консерватора Искусств Backend

REST API Журнал Консерватора Искусств Backend

PHP Журнал Консерватора Искусств Backend

.NET Журнал Консерватора Искусств Backend

Что вы получаете с каждой технологией

Каждый стек использует одну и ту же схему бэкенда журнала консерватора и API-контракты.

Единая структура данных журнала консерватора

Управляйте произведениями искусства, отчетами о состоянии, сессионной реставрацией, фотографиями прогресса, использованием химических веществ и записями аудита с помощью одной схемы.

Записи фотографий прогресса для процедур

Прикрепите изображения до и после к точной сессии, которая их создала.

Отслеживание использования химических веществ для консервационных работ

Записывайте названия растворителей, количества и цель рядом с каждым шагом обработки.

История отчетов о состоянии произведений искусства

Держите reportDate, surfaceCondition и supportCondition в соответствии с записями о произведении искусства.

Сравнение стеков консерваторов

Сравните скорость настройки, стиль SDK и поддержку ИИ по всем поддерживаемым технологиям.

ФреймворкВремя настройкиПреимущество журнала консерватораТип SDKПоддержка ИИ
Около 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Полный

Время настройки отражает ожидаемую продолжительность от запуска проекта до первого запроса по произведению искусства или отчету о состоянии с использованием этой схемы шаблона.

Вопросы консерватора

Общие вопросы о создании бэкэнда журнала консерватора искусства с помощью этого шаблона.

Как практики журналов консерватора искусства поддерживают высокое качество входящих данных по мере увеличения объема?
Как консерватору по искусству документировать модели клиентов команд, дела и внутренние передачи без двусмысленности?
Является ли модель доступа достаточно детализированной для партнеров и подрядчиков консерватора по искусству?
Как мне выполнять запросы на произведения искусства и отчеты о состоянии с Flutter?
Как мне управлять доступом к журналу консерватора по искусству с Next.js Server Actions?
Может ли React Native кэшировать фотографии процесса офлайн?
Как предотвратить несанкционированные изменения химических данных?
Как лучше всего показать отчеты о состоянии на Android?
Как работает процесс восстановления от начала до конца?

Доверяют разработчики по всему миру

Присоединяйтесь к командам, которые быстрее создают продукты для журналов искусствоведов с помощью шаблонов Back4app

G2 Users Love Us Badge

Готовы создать своё приложение для журнала искусствоведа?

Начните свой проект для консерваторов за считанные минуты. Кредитная карта не требуется.

Выберите технологию