FreemiumProBusinessEnterprise

Что работает без интернета

Зачем нужен оффлайн-режим

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

Оффлайн-режим активируется автоматически при потере соединения. Никаких специальных настроек или действий не требуется.

Что работает оффлайн

Check-in участников

Главный оффлайн-сценарий. Вы можете:

  • Сканировать QR-коды билетов
  • Искать участника по имени или номеру регистрации
  • Отмечать прибытие участника
  • Видеть статус check-in (отмечен / не отмечен)

Все отметки сохраняются локально и синхронизируются с сервером, когда интернет станет доступен.

Просмотр списка участников

Полный список зарегистрированных участников доступен оффлайн:

  • Имя, email, телефон
  • Тип билета
  • Статус регистрации и оплаты
  • Дополнительные поля из формы регистрации

Данные кэшируются при каждом посещении страницы участников в онлайн-режиме.

Просмотр информации о событиях

Основная информация о ваших мероприятиях доступна оффлайн:

  • Название, описание, даты
  • Место проведения
  • Типы билетов и цены
  • Текущее количество регистраций

Просмотр платежей

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

  • Сумма и статус
  • Метод оплаты
  • Дата платежа

Ручная отметка оплаты

Если участник оплачивает на месте (наличными или переводом), вы можете отметить оплату вручную. Отметка сохранится локально и синхронизируется позже.

Что НЕ работает оффлайн

Некоторые операции требуют подключения к серверу и недоступны без интернета:

  • Создание новых событий -- требуется генерация slug и проверка уникальности
  • Обработка онлайн-платежей -- платежный шлюз недоступен без сети
  • Отправка уведомлений -- email и Telegram требуют подключения
  • Редактирование формы регистрации -- версионирование формы требует сервера
  • Управление командой -- приглашения и роли требуют серверной валидации
  • Финансовые отчеты -- расчеты выполняются на сервере

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

Хранение данных

IndexedDB и Dexie.js

Локальные данные хранятся в браузерной базе данных IndexedDB через библиотеку Dexie.js. Основные таблицы:

ТаблицаСодержимое
eventsИнформация о мероприятиях
registrationsСписок участников и статусы
paymentsПлатежи и транзакции
syncQueueОчередь изменений, ожидающих синхронизации
metaМетаданные синхронизации (last sync timestamp)

Шифрование

Все данные в IndexedDB зашифрованы для защиты персональных данных участников:

  • Алгоритм: AES-GCM (256-bit)
  • Ключ: выводится из учетных данных пользователя через PBKDF2 (100 000 итераций)
  • Шифрование/дешифрование выполняется через Web Crypto API на стороне клиента

Данные невозможно прочитать без авторизации в системе. При выходе из аккаунта (logout) локальные данные очищаются.

Подготовка к оффлайн-работе

Хотя оффлайн-режим активируется автоматически, для надежной работы рекомендуется:

  1. Откройте событие заранее. Перейдите на страницу события и откройте список участников при наличии интернета. Данные закэшируются автоматически.
  2. Проверьте индикатор синхронизации. Убедитесь, что все данные загружены -- индикатор должен быть зеленым.
  3. Установите PWA. Установите evntflo на домашний экран устройства для более надежной работы оффлайн.

Совместимость

Оффлайн-режим работает:

  • В PWA (установленном на домашний экран) -- наилучший опыт
  • В мобильном браузере (Chrome, Safari, Firefox)
  • В десктопном браузере
  • В Telegram Mini App (с ограничениями, зависящими от клиента Telegram)

Для стабильной работы оффлайн рекомендуется использовать PWA.

Частые вопросы

Нужно ли что-то специально настраивать для работы оффлайн?
Нет. Данные автоматически кэшируются в IndexedDB при каждом посещении. Достаточно открыть событие и список участников хотя бы один раз при наличии интернета -- после этого данные будут доступны оффлайн.
Безопасно ли хранить данные участников локально?
Да. Все данные в IndexedDB зашифрованы алгоритмом AES-GCM. Ключ шифрования выводится из учетных данных пользователя через PBKDF2 (100 000 итераций). Без авторизации данные прочитать невозможно.
Что произойдет с изменениями, сделанными оффлайн, когда интернет вернется?
Все изменения автоматически синхронизируются с сервером при восстановлении связи. Порядок изменений сохраняется -- они отправляются в хронологическом порядке по метке времени.