Журнал соответствия требованиям к табаку
Создано с AI Agent
Журнал соблюдения табачных норм — Бэкенд

Шаблон бэкенда журнала соблюдения табачных норм
Журналы проверок возраста и отслеживание аудита магазина

Рабочий Бэкенд журнала соблюдения табачных норм на Back4app с журналами проверок возраста, аудитом вывесок и отслеживанием налоговых марок. Включает диаграмму ER, словарь данных, схему JSON, API-площадку и запрос AI Agent для быстрой настройки.

Основные выводы из журнала соблюдения

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

  1. Записи проверок возраста, привязанные к местоположениюМоделируйте каждую запись AgeCheckLog с указателем на местоположение, чтобы визиты в магазин, проверки продавцов и записи обзоров оставались организованными.
  2. Покрытие аудита знаковОтслеживайте результаты SignageAudit для необходимых предупреждений, размещения и проблем с отсутствующими знаками на каждом местоположении.
  3. Проверка налоговых марокЗаписывайте детали TaxStamp, включая номер марки, тип продукта и результат проверки, для готовости к аудиту.
  4. Рабочий процесс проверки готовности к полевым условиямИспользуйте классы и разрешения Back4app, чтобы координаторы могли отправлять, проверять и утверждать журналы соблюдения.

Сводка по бэкенду журнала соблюдения табака

Регуляторы ожидают, что доказательства соблюдения журнала табака будут надежными: достаточно неизменными, чтобы им доверять, и достаточно гибкими, чтобы улучшать программу со временем. Затраты отражаются в возвратах и кредитах. В Back4app локация, журнал проверки возраста, аудит вывесок и налоговая марка соединяются в связное повествование о соблюдении табака, а не в груду несвязанных билетов и файлов. Схема охватывает Пользователя (имя пользователя, электронная почта, пароль), Локацию (название магазина, адрес, район), Журнал проверки возраста (локация, имя кассира, год рождения клиента, результат), Аудит вывесок (локация, тип вывески, размещение, статус) и Налоговую марку (локация, номер марки, тип продукта, подтверждено) с встроенными контролями аутентификации и проверки. Подключите предпочитаемый фронтенд и начинайте регистрировать инспекции раньше.

Лучше всего для:

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

Журнал соблюдения норм в области табака: снимок бэкэнда

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

Ожидайте одни и те же Location, AgeCheckLog и SignageAudit, независимо от того, начинаете ли вы с Flutter, React, Next.js или другого поддерживаемого пути.

Основные функции журнала соблюдения требований к табаку

Каждая технологическая карточка в этом центре использует одну и ту же схему журнала соблюдения табачного законодательства с Location, AgeCheckLog, SignageAudit и TaxStamp.

Реестр местоположений

Класс Location хранит storeName, адрес, округ и статус.

Журналы проверки возраста

Класс AgeCheckLog хранит clerkName, customerBirthYear, результат и примечания.

Аудиты вывесок

Класс SignageAudit фиксирует signType, размещение, состояние и статус.

Отслеживание акцизных марок

Класс TaxStamp хранит stampNumber, productType, verifiedAt и verificationStatus.

Почему стоит создать бэкэнд журнала соблюдения норм табака с Back4app?

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

  • Логирование на основе местоположения: Класс Location связывает записи AgeCheckLog, SignageAudit и TaxStamp с одним магазином или сайтом.
  • Рабочий процесс AgeCheckLog и SignageAudit: Создайте записи с полями result, signType и placement, затем просмотрите их, не изменяя контракт приложения.
  • Поддержка проверки TaxStamp: Храните stampNumber, productType и verifiedAt в TaxStamp, чтобы аудиторы могли отслеживать историю проверки позже.

Объедините логирование проверок, обзор знаков и проверки налоговых штампов в одном контракте на сервере для каждого клиента.

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

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

Быстрая настройка проверки магазина

Начните с Location, AgeCheckLog, SignageAudit и TaxStamp вместо того, чтобы вручную создавать таблицы соблюдения.

Очистить журнал отзывов

Запишите, кто ввёл запись, к какому магазину она относится и какой результат был зафиксирован для последующих проверок.

Видимость для полей и менеджеров

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

Контролируемый доступ к журналам соблюдения

Используйте ACL/CLP, чтобы сотрудники на местах, супервизоры и аудиторы видели только записи, которые они должны обрабатывать.

Повторно используемый API для каждого устройства

Обслуживайте мобильных инспекторов, внутренние панели управления и инструменты обзора из одного контракта API.

Запуск проекта, основанный на подсказках

Используйте подсказку AI Agent для генерации структуры приложения по соблюдению и более быстрого перехода к реализации.

Готовы запустить ваше приложение для учета табачной продукции?

Позвольте Back4app AI Agent сгенерировать ваш бэкенд для учета табачной продукции и создать процессы проверки возраста, аудита signage и налоговых марок из одного запроса.

Бесплатно начать — 50 запросов AI Agent в месяц, без необходимости вводить данные карты

Технический стек

Всё включено в этот шаблон бэкенда для учета табачной продукции.

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

Диаграмма ER соответствия с табаком

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

Просмотреть источник диаграммы
Mermaid
erDiagram
    User ||--o{ Location : "manager"
    User ||--o{ AgeCheckLog : "checkedBy"
    User ||--o{ SignageAudit : "auditedBy"
    User ||--o{ TaxStampInspection : "inspectedBy"
    Location ||--o{ AgeCheckLog : "location"
    Location ||--o{ SignageAudit : "location"
    Location ||--o{ TaxStampInspection : "location"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    Location {
        String objectId PK
        String storeName
        String storeCode
        String address
        String managerId FK
        Date createdAt
        Date updatedAt
    }

    AgeCheckLog {
        String objectId PK
        String locationId FK
        String checkedById FK
        Date checkDate
        String customerInitials
        Boolean dobVerified
        String idType
        String notes
        Date createdAt
        Date updatedAt
    }

    SignageAudit {
        String objectId PK
        String locationId FK
        String auditedById FK
        Date auditDate
        Boolean ageRestrictionSignPresent
        Boolean healthWarningSignPresent
        String photoUrl
        String finding
        Date createdAt
        Date updatedAt
    }

    TaxStampInspection {
        String objectId PK
        String locationId FK
        String inspectedById FK
        Date inspectionDate
        String productBrand
        String stampSerial
        Boolean stampMatched
        String issueNotes
        Date createdAt
        Date updatedAt
    }

Поток интеграции журнала соответствия

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

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

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

  User->>App: Open location queue
  App->>Back4app: GET /classes/Location?include=manager
  Back4app-->>App: Locations and managers

  User->>App: Add age check log
  App->>Back4app: POST /classes/AgeCheckLog
  Back4app-->>App: AgeCheckLog objectId

  User->>App: Submit signage audit
  App->>Back4app: POST /classes/SignageAudit
  Back4app-->>App: SignageAudit objectId

  User->>App: Review tax stamp inspection
  App->>Back4app: GET /classes/TaxStampInspection?order=-inspectionDate
  Back4app-->>App: Inspection history

Словарь данных

Полная справка по полям для каждого класса в схеме Журнала соблюдения правил табака.

ПолеТипОписаниеОбязательно
objectIdStringAuto-generated unique identifierАвто
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringUser role such as manager, coordinator, or fieldStaff
createdAtDateAuto-generated creation timestampАвто
updatedAtDateAuto-generated last-update timestampАвто

7 поля в User

Безопасность и разрешения

Как стратегия ACL и CLP защищает журналы проверки возраста, аудиты вывесок и записи налоговых марок.

Ограниченный ввод полей по ролям

Полевые работники могут создавать записи AgeCheckLog и SignageAudit, но утверждение или удаление остается ограниченным для супервизоров.

Видимость по местоположению

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

Защита аудиторского следа

Используйте проверку Cloud Code, чтобы изменения stampNumber, result и verificationStatus оставались контролируемыми и отслеживаемыми.

Схема (JSON)

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

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
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Location",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "storeName": {
          "type": "String",
          "required": true
        },
        "storeCode": {
          "type": "String",
          "required": true
        },
        "address": {
          "type": "String",
          "required": true
        },
        "manager": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AgeCheckLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "location": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Location"
        },
        "checkedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "checkDate": {
          "type": "Date",
          "required": true
        },
        "customerInitials": {
          "type": "String",
          "required": false
        },
        "dobVerified": {
          "type": "Boolean",
          "required": true
        },
        "idType": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SignageAudit",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "location": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Location"
        },
        "auditedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "auditDate": {
          "type": "Date",
          "required": true
        },
        "ageRestrictionSignPresent": {
          "type": "Boolean",
          "required": true
        },
        "healthWarningSignPresent": {
          "type": "Boolean",
          "required": true
        },
        "photoUrl": {
          "type": "String",
          "required": false
        },
        "finding": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TaxStampInspection",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "location": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Location"
        },
        "inspectedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "inspectionDate": {
          "type": "Date",
          "required": true
        },
        "productBrand": {
          "type": "String",
          "required": true
        },
        "stampSerial": {
          "type": "String",
          "required": true
        },
        "stampMatched": {
          "type": "Boolean",
          "required": true
        },
        "issueNotes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

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

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

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

Схема:
1. Пользователь (используйте встроенный Back4app): имя пользователя, электронная почта, пароль; objectId, createdAt, updatedAt (система).
2. Местоположение: название магазина (строка, обязательное), адрес (строка, обязательное), район (строка, обязательное), статус (строка, обязательное); objectId, createdAt, updatedAt (система).
3. Лог проверки возраста: местоположение (указатель на местоположение, обязательное), имя продавца (строка, обязательное), год рождения клиента (число, обязательное), результат (строка, обязательное), заметки (строка); objectId, createdAt, updatedAt (система).
4. Аудит вывесок: местоположение (указатель на местоположение, обязательное), тип вывески (строка, обязательное), размещение (строка, обязательное), состояние (строка, обязательное), статус (строка, обязательное); objectId, createdAt, updatedAt (система).
5. Налоговая марка: местоположение (указатель на местоположение, обязательное), номер марки (строка, обязательное), тип продукта (строка, обязательное), дата проверки (дата, обязательное), статус проверки (строка, обязательное); objectId, createdAt, updatedAt (система).

Безопасность:
- Только назначенные пользователи полей могут создавать журналы для своих местоположений. Руководители могут просматривать и утверждать. Используйте Cloud Code для проверки.

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

Поведение:
- Перечислить местоположения, создавать журналы проверки возраста, отправлять аудиты вывесок и проверять налоговые марки.

Доставка:
- Приложение Back4app с схемой, ACL, CLP; фронтенд для местоположений, проверок возраста, аудитов вывесок и проверки налоговых марок.

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

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

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

API Playground

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

Загрузка песочницы…

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

Выберите вашу технологию

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

Flutter Лог соответствия табачной продукции заднего плана

React Лог соответствия табачной продукции заднего плана

React Native Лог соответствия табачной продукции заднего плана

Next.js Лог соответствия табачной продукции заднего плана

JavaScript Лог соответствия табачной продукции заднего плана

Android Лог соответствия табачной продукции заднего плана

iOS Лог соответствия табачной продукции заднего плана

Vue Лог соответствия табачной продукции заднего плана

Angular Лог соответствия табачной продукции заднего плана

GraphQL Лог соответствия табачной продукции заднего плана

REST API Лог соответствия табачной продукции заднего плана

PHP Лог соответствия табачной продукции заднего плана

.NET Лог соответствия табачной продукции заднего плана

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

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

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

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

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

Фиксируйте имя клерка, год рождения клиента и результат на уровне магазина.

Отслеживание аудита знаков

Записывайте тип знака, расположение и состояние для каждого визита аудита.

Отслеживаемость проверки налоговой марки

Сохраните номер штампа и статус проверки для последующего рассмотрения.

REST/GraphQL API для приложений по соблюдению требований

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

Расширяемый рабочий процесс ревизии

Добавляйте одобрения, делайте заметки по проблемам или шаги эскалации, не заменяя основную модель журнала.

Сравнение рамок соответствия табачной продукции

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

РамкаВремя установкиПреимущество журнала соответствияТип SDKПоддержка ИИ
Около 5 минутЕдиное кодовое основание для контрольных инспекторов на мобильных устройствах и веб.Типизированный SDKПолный
Менее 5 минутБыстрая веб-панель для менеджеров по соответствию.Типизированный SDKПолный
~3–7 минутКроссплатформенное мобильное приложение для визитов в магазин.Типизированный SDKПолный
Быстрая настройка (5 минут)Серверное веб-приложение для команд проверки.Типизированный SDKПолный
~3–5 минутЛегкая интеграция в браузер для ведения полевых записей.Типизированный SDKПолный
Около 5 минутНативное приложение Android для инспекций магазина.Типизированный SDKПолный
Менее 5 минутНативное iPhone-приложение для проверки соблюдения требований.Типизированный 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Полный

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

Часто задаваемые вопросы

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

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

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

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

G2 Users Love Us Badge

Готовы создать ваше приложение для учета табачной продукции?

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

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