Что можно сделать, когда стандартных возможностей не хватает
Последние семь лет я работаю с онлайн-школами и GetCourse. И значительная часть моих проектов начиналась примерно одинаково:
«Нам нужно вот так. Но, кажется, GetCourse этого не умеет».
Чаще всего действительно не умеет. По крайней мере штатно.
Но если посмотреть на задачу не как на набор стандартных функций GetCourse, а как на продуктовую и техническую систему, вариантов обычно становится сильно больше.
Я собрал несколько примеров того, что имею в виду.
Сделать внутри GetCourse функционал, которого там вообще нет
Например, для школы медитации я делал полноценную систему учёта практики учеников: таймер синхронизирован с аудио, учитывает фактическое время занятий и собирает прогресс по урокам, модулям и всему курсу.
→ Пост про умный таймер медитаций
Для другой школы мы встроили прямо в GetCourse персонального AI-помощника: у каждого ученика свой контекст, документы, показатели и отдельные чаты для работы с ИИ.
→ Пост про персонального AI-помощника
Это как раз тот тип задач, который мне особенно нравится: когда есть идея полезной механики для ученика, но совершенно непонятно, как заставить её жить внутри существующей платформы.
Собрать нормальную аналитику вместо десятка процессов и таблиц
В GetCourse огромное количество данных, но получить из них ответ на простой вопрос иногда surprisingly сложно.
Например: как реально проходят курс ученики каждого куратора? Какие уроки они открыли? Где сделали ДЗ? Где остановились?
Для одной из школ я делал отдельную систему, которая собирала эти данные в базу и выводила удобную многоуровневую аналитику.
→ Пост про аналитику прохождения курса
Позже из многократно повторявшейся задачи вырос уже отдельный мой продукт — Lessons Courses.
→ Как появился Lessons Courses
То есть иногда индивидуальная задача школы оказывается достаточно системной, чтобы в итоге превратиться в полноценный продукт.
Автоматизировать процесс, который почему-то до сих пор делают люди
Например, для записи учеников на встречи с экспертами я сделал отдельную систему бронирования внутри GetCourse.
Она работает с доступными слотами и расписанием экспертов, позволяет управлять бронированиями и отправлять уведомления. Позже у неё появился собственный визуальный редактор — настройки рабочих часов, слотов, уведомлений и оформления можно менять через интерфейс, не залезая в код.
→ Пост про систему бронирования
В другом крупном проекте я работал уже над целым комплексом автоматизаций: обработкой входящих обращений, мониторингом автовебинаров и связкой учеников с Telegram.
→ Пример комплекса автоматизаций для онлайн-школы
Вообще ручные процессы — одна из моих любимых точек входа в задачу.
Если сотрудник школы каждый день повторяет одни и те же действия, обычно возникает вопрос: зачем?
Связать GetCourse с системой, с которой он нормально не связывается
Отдельная категория — интеграции.
Например, несколько лет назад мне понадобилось управлять доступом к закрытым Telegram-каналам в зависимости от групп и доступов пользователя в GetCourse.
Первая версия решения со временем перестала нормально работать из-за изменений Telegram. Поэтому систему пришлось фактически переизобрести: отказаться от userbot, убрать сторонние библиотеки и сделать прямое управление каналами через обычного Telegram-бота.
→ История системы управления Telegram-каналами
Подобные задачи мне обычно интереснее обычного «соединить API A с API B», потому что реальная интеграция почти всегда требует ещё продумать состояния, ошибки, синхронизацию и то, что будет происходить, когда одна из систем внезапно изменится.
Превратить разовую разработку в систему
Так, собственно, появился и Remake.
Я много лет делал кастомные личные кабинеты GetCourse. В какой-то момент стало очевидно, что каждый раз собирать всё заново слишком долго и дорого.
Мы с Даниилом Постновым сделали универсальную основу, которую можно адаптировать под разные школы. Со временем Remake вырос в отдельный продукт, который установили уже больше 100 онлайн-школ.
→ Remake перешагнул отметку в 100 школ
Для меня это хороший пример того, почему я обычно смотрю чуть дальше конкретного ТЗ.
Иногда школе действительно нужна одна функция.
А иногда за запросом скрывается процесс, который лучше перестроить целиком.
Я могу написать frontend или backend, поднять внешний сервис, работать с API, базами данных, Telegram, AI, интерфейсами GetCourse и его внутренней логикой.
Но обычно проект начинается не с выбора технологии.
что именно вы хотите, чтобы стало происходить по-другому?
Если у вашей онлайн-школы сейчас есть такая задача — новый функционал для учеников, нестандартная автоматизация, аналитика, интеграция или идея, про которую вам уже сказали «в GetCourse такого нет» — пришлите мне ТЗ или просто опишите проблему в личку.
Даже если пока непонятно, как это должно быть реализовано.
Собственно, разбираться в этой части задачи мне обычно интереснее всего.