powerofconsciousness.ru — цифровая платформа тренера-коуча международного класса Яны Тарасовой, автора метода КНТ. Публичный сайт, личный кабинет, Telegram-бот с ИИ-ассистентом, приём платежей с электронной подписью договоров, партнёрская программа на пять уровней, админ-CRM и контент-движок с генерацией изображений работают на одном бэкенде и общей базе.
Клиент: тренинговый центр «Сила Сознания» · Сайт: https://powerofconsciousness.ru · Категория: платформа
Коротко о главном
- Каталог из 21 тренинга и 70 статей в блоге, к каждой статье три уникальных изображения.
- Вход через Telegram-код или по телефону и почте: одно умное поле само определяет, что ввёл человек.
- Оплата с электронной подписью договора по ФЗ-63, чеки по 54-ФЗ, идемпотентные вебхуки против двойного начисления.
- Партнёрская программа на пять уровней с точной денежной арифметикой и защитой от циклов.
- Telegram-бот с ИИ-ассистентом, который помнит контекст диалога, а вся переписка видна в карточке клиента.
- PageSpeed 98 из 100 на десктопе.
Технологический стек
- Frontend: React + Vite (SPA, lazy code-split по страницам), авторский дизайн, адаптив.
- Backend: Django + REST API + админка Django Unfold.
- Telegram-бот: aiogram 3 + asyncpg (connection pool).
- БД: PostgreSQL 14 (общая для сайта и бота).
- Платежи: Т-Банк (Tinkoff) API + идемпотентные вебхуки, чеки по 54-ФЗ.
- AI: OpenAI GPT + Google Gemini / Imagen 4.
- Email: SMTP (SMTP.bz) + Mailgun, DKIM/SPF.
- Инфраструктура: nginx, supervisor, Let's Encrypt SSL, Cloudflare, бэкапы rclone → Google Drive, мониторинг ошибок (GlitchTip) и доступности (UptimeRobot).
- Интеграции: синхронизация с iCloud-календарём (CalDAV), электронная подпись по ФЗ-63.
С чего всё началось
У коуча международного класса была аудитория, программа из 21 тренинга и ни одного места, где всё это живёт вместе. Запись шла в мессенджерах, оплаты собирались вручную, партнёрские начисления считались в таблице.
Задача звучала так: собрать систему, где человек сам находит тренинг, сам оплачивает его с подписанием договора, сам видит свой прогресс и ранг, а команда центра видит каждого клиента целиком, включая его переписку с ботом.
Отдельная сложность была в деньгах. Партнёрская программа на пять уровней означает, что одна покупка порождает цепочку начислений, и ошибка округления или повторный вебхук от банка ломают баланс. Поэтому денежная арифметика сделана на точных десятичных числах и атомарных операциях, а вебхуки идемпотентны: повторный вызов ничего не начислит второй раз.
Полный список реализованных функций
🌐 Сайт и страницы
- Главная с ротацией hero-фото, прелоадер с shimmer-эффектом
- Афиша мероприятий с фильтрами и drag-scroll
- Каталог из 21 тренинга, отдельная страница каждого тренинга (/training/<slug>)
- Блог со статьями, видео и фильтрами по 7 категориям
- Страница «О Яне» (таймлайн, методология, статистика, корпоративные клиенты)
- Индивидуальный коучинг с формой записи
- Хаб из 11 интерактивных практик (флеш-карточки, дыхание, МАК-карты, заземление) с прогрессом в localStorage
- CTA после практики → профильный тренинг (маппинг практика → тренинг)
- Раздел «Документы» — 7 правовых документов (~110 000 знаков)
- Контакты, страница 404 с авто-поиском
- Полная мобильная адаптация, мобильный TabBar, lazy-загрузка, ScrollToTop
🔐 Авторизация
- Регистрация и вход через Telegram OTP (код в бот)
- Вход по телефону ИЛИ email + пароль (одно умное поле с автоопределением)
- Выбор страны для телефона (собственный лёгкий селектор)
- Установка / смена пароля, восстановление пароля по email
- Связка аккаунта бота ↔ Django-пользователя
👤 Личный кабинет
- Профиль (имя, телефон, email, город, дата рождения)
- Ранг лояльности (7 уровней) с прогресс-баром
- Чек-лист 21 программы (что пройдено / доступно)
- История покупок, отмена неоплаченного заказа
- Партнёрское дерево L1–L5, реферальная ссылка
- Sticky-навигация по вкладкам, переход в админку для сотрудников
- Уведомления (Telegram + email)
💳 Оплата и партнёрская программа (MLM)
- Приём платежей через Т-Банк, страницы успеха / ошибки оплаты
- Идемпотентные вебхуки (защита от двойного начисления)
- MLM на 5 уровней, точная Decimal-арифметика, защита от self-referral и циклов
- Дедупликация заказов, чек по 54-ФЗ, письмо «спасибо за покупку»
- Подписание оферты электронной подписью (ФЗ-63) на сайте и в боте + хеш и архив текста документа
- Цены из единого источника правды (TrainingCatalog)
- Выплаты партнёрам: запрос партнёром + инициатива админа, подтверждение получения, списание баланса
🤖 Telegram-бот @SilaSoznaniyaYT_Bot
- AI-ассистент (GPT / Gemini) с памятью контекста и логированием
- Меню тренингов с деревом категорий, расписание по месяцам
- Библиотека материалов (кнопка → статья на сайте)
- Профиль, реферальная ссылка + QR, партнёрский раздел с историей и выписками
- Промокоды, оплата с электронной подписью прямо в боте
- Планировщик: ночной импорт, деактивация, push-напоминания о старте программы
- Fail-fast проверка окружения, алерты админам при сбоях
🛠 Админка (Django Unfold, CRM)
- Календарь событий (FullCalendar), редактирование цен в таблице
- Реестр электронных подписей (ЭП / ПЭП)
- Кастомные страницы: Финансы, Лояльность, Партнёрство, дашборд статистики, визуальное дерево партнёров
- Карточка клиента: бонусы, бан / разбан / заморозка, заметки, избранное, просмотр переписки с ИИ-ассистентом, прямое сообщение, партнёрская сеть
- Массовые действия: рассылка в Telegram, выгрузка в Excel, назначение сотрудников, реанимация, смена рангов
- Ручное создание заказа, страница рассылки анонсов с выбором сегментов
- Быстрый тоггл партнёрства в списке пользователей
🧠 AI-инфраструктура
- Журнал всех ИИ-запросов, настройки моделей
- RAG-база знаний (AISmartContent)
- Анализ настроения и тематики диалогов, извлечение фактов о клиенте (имя, город, интересы)
- AI-расширение смысла в поиске
📝 Контент-движок
- Единая модель Article: одна публикация = сайт + бот (дуальный контент)
- 70 реальных статей (7 кластеров × 10), все с изображениями
- Автогенерация изображений через Gemini Flash + Imagen 4 (банки из 210 архетипов, 3 уникальных на статью)
- Markdown, видео (YouTube / RuTube / Vimeo), авто-превью в 3 размерах
- Management-команда публикации статей
🔎 Поиск
- Полнотекстовый поиск (PostgreSQL tsvector) по статьям и событиям
- Static-индекс по 21 тренингу и 12 страницам
- AI-fallback (Gemini) при нуле результатов
- Модалка поиска: Cmd+K, навигация стрелками, debounce, подсветка совпадений; лупа на десктопе, FAB на мобильном
🔍 SEO / GEO / AEO
- Sitemap.xml + robots.txt, canonical + hreflang
- Микроразметка Schema.org: EducationalOrganization, Course, BlogPosting, FAQPage, BreadcrumbList
- OG / Twitter мета-теги, серверный prerender блог-постов для корректного превью при шеринге
- Яндекс.Метрика, готовность к AI Overviews, llms.txt / llms-full.txt
- Сервис с двумя бэкендами (SMTP + Mailgun), DKIM / SPF
- Письма: подтверждение заказа, welcome, восстановление пароля, партнёрский бонус
- Сегментированная рассылка анонсов событий (партнёры / покупавшие / новые) порциями днём
- Отписка от рассылки (рабочий opt-out)
📅 Календарь
- iCal-фид для подписки в любой календарь
- Синхронизация с iCloud-календарём (CalDAV) — даты событий тянутся автоматически
⚡ Производительность
- Видео по клику (facade: плеер грузится только при нажатии, −~480 КБ JS)
- Самохостинг шрифта (убран render-blocking Google Fonts) + preload
- Пред-сжатие статики (gzip_static), кэш-заголовки, изображения в WebP + мобильные варианты
- Пререндер главной (LCP-постер) с мгновенным откатом через nginx
- Результат: десктоп 98/100 PageSpeed
🛡 Безопасность и надёжность
- Идемпотентность платежей, защита денежной арифметики (Decimal + атомарные операции)
- Защита от SQL-инъекций, экранирование пользовательского ввода
- CSP и security-заголовки, rate-limiting API (anti-DDoS), Cloudflare
- Бэкапы БД на Google Drive, мониторинг ошибок (GlitchTip) и аптайма (UptimeRobot)
📦 Инфраструктура / DevOps
- Монорепо, supervisor (web + bot), nginx, SSL с автопродлением
- Скрипты деплоя backend / frontend в один шаг
- 35+ миграций БД, прокси для исходящих запросов к Telegram / AI API, резервные копии
Результаты
| Показатель | Значение |
|---|---|
| Тренингов в каталоге | 21 |
| Статей в блоге | 70, по три изображения на каждую |
| Интерактивных практик | 11 |
| Уровней партнёрской программы | 5 |
| Рангов лояльности | 7 |
| Правовых документов | 7, около 110 000 знаков |
| PageSpeed на десктопе | 98 из 100 |
| Экономия JS от отложенного видео | около 480 КБ |

