Клиент — сеть кофеен (6 точек). Бумажные штампы терялись; приложение в App Store не окупало разработку. Постоянные клиенты — в Telegram-канале кофейни (18K). Нужна цифровая лояльность без установки app.
Задача: Mini App — бонусный баланс, QR для начисления/списания на кассе, история операций, уровни (Silver/Gold), акции. Кассир сканирует QR клиента или клиент показывает код.
Реализация:
• wallet UI: баланс баллов, tier, progress до следующего уровня;
• QR dynamic token (TTL 60 сек) — защита от скриншота replay;
• API: accrue/redeem webhook с POS или tablet кассира;
• правила: 1 балл = 1 ₽, max 30% оплаты баллами;
• push через бота: начисление, акция «двойные баллы», день рождения;
• рефералка: invite link + бонус обоим;
• админ: сегменты, акции, fraud alerts (аномальные начисления).
Стек: React, Telegram WebApp SDK, FastAPI, PostgreSQL, Redis, aiogram, QR, Docker. Приёмка: 100 транзакций на staging POS.
Итог: repeat visit rate +25%; участие в программе 4× vs бумажные штампы. NDA: сеть не публикуется.