Gamification Promo Portal
Портал вовлечения для маркетинговой промо-акции. Геймификация: квизы, мини-игры, система наград.
11 типов заданий8 уровней сундуковAES-256 шифрование
Бизнес-задача
Маркетинговая промо-кампания с геймификацией. Пользователи выполняют задания (квизы, мини-игры, промокоды) и получают сундуки с наградами — скидки и промокоды.
Ключевая задача
Защита от ботов при высокой частоте запросов, гибкая система заданий с ротацией во времени, параллельная выдача наград с ограничением конкурентности для защиты внешних API.
Аутентификация
Двухэтапная авторизация по телефону с защитой от злоупотреблений.
- •SMS OTP (4 цифры), ограничение 3 минуты между попытками, срок действия 10 минут
- •Верификация кода → Bearer token в Redis (30 дней)
- •Приватность: телефоны хранятся зашифрованными (AES-256), HMAC для матчинга
- •Защита от ботов: Google reCAPTCHA на регистрации
Система заданий
11 типов заданий с ротацией по времени.
- •Интерактивные: привязка аккаунта, мини-игра, квиз, поиск кода
- •На основе покупок: интеграция с заказами (сумма, количество товаров, использование промокода)
- •Ограниченные по времени: start/end для ротации заданий
Выдача наград
8 уровней сундуков (бронза → серебро → золото) с параллельной обработкой.
- •Пул воркеров: Semaphore для ограничения конкурентности (защита Coupon API от перегрузки)
- •Атомарность: предотвращение повторного получения через транзакции
- •Купоны: генерация и трекинг промокодов
Технологии
Backend
Go 1.22Gin Frameworkpgx/v5 + pgxpoolgo-redis/v8Goose (migrations)
Data
PostgreSQLRedis (sessions)AWS S3 (exports)
Integrations
SMS GatewayGoogle reCAPTCHAExternal APIOrders API
Infra
Docker (multi-stage)GitHub ActionsYandex Cloud Registry
Моя роль
- Архитектура backend для геймификации с нуля
- Двухэтапная авторизация с ограничением частоты и AES-256 шифрованием
- Пул воркеров с Semaphore для защиты внешних API от перегрузки
- Интеграция с SMS-шлюзом, reCAPTCHA, Orders API