Все проекты

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