В 2021 году фрилансер Александр Соловьев начал работать с онлайн-школой Praktika.School. Это уже был действующий проект, разработанный на Tilda, который нуждался в ребрендинге и добавлении нового функционала. Александр взялся усовершенствовать сайт с помощью стека no-code инструментов: Airtable, Collabza, Make, CloudPayments. Бюджет проекта составил около 300 тыс. рублей.

Главная страница онлайн-школы Praktika.School

Об Александре

Меня зовут Александр Соловьев. Мне 31 год, я фрилансер, который пытается успеть в 24 часа уложить все 25, но в последнее время это удается с трудом.

Первый проект я сделал в 14 лет. Для этого специально выучил HTML, чтобы сделать сайт клана в онлайн-игре. Затем периодически возвращался к этому делу, изучал разные инструменты для себя и даже делал кому-то простенькие лендинги.

Учился на маркетолога в МЭСИ (сейчас это «Плешка»), но ни разу не работал по профессии. После вуза стал ведущим мероприятий, но по-прежнему продолжал создавать сайты — брал коммерческие заказы и делал проекты на Тильде. Переходить в разработку я не спешил — работа ведущим казалась «моим делом». А потом мир накрыл коронавирус. Так хобби и профессия поменялись местами.

Я могу писать код на JavaScript, в совершенстве знаю Tilda, Collabza, работаю в AirTable, Make. Иногда делаю проекты на WebFlow, Botmother, щупаю FlutterFlow, изучаю Wappler, но совсем не хочу притрагиваться к Bubble и Adalo. Первый замыкается на себе, второй, как по мне, аналог начальных версий Wix, но только для приложений.

Если вы хотите больше узнать об инструментах зерокодинга и как с их помощью создавать веб-приложения для бизнеса, приходите на бесплатный двухдневный марафон «Веб-разработчик на зерокоде». Мы покажем этапы сборки и рассмотрим реальные примеры приложений, созданных без кода.

О проекте Praktika.School

Praktika.School — это онлайн-школа с видеокурсами и отдельными лекциями. Проект уже работал, когда ко мне обратилась заказчица и попросила усовершенствовать функционал. Заказчицу Снежану я нашел в чате «Тильдошной» — главном русскоязычном комьюнити платформы Tilda, там клиенты и разработчики часто находят друг друга.

Изначально онлайн-школа была сделана на Тильде с использованием только внутренних инструментов. Пользователям было доступно два варианта обучения: они могли приобрести понравившийся курс навсегда или оформить подписку, которая позволяла смотреть сразу все курсы.

Два варианта, чтобы начать обучение в школе: приобрести подписку на весь контент или купить определенный курс

До того, как я приступил к работе, всё было устроено так: для покупателей курсов была своя группа в личном кабинете, а для покупателей подписки — другая отдельная группа с курсами. Это было неудобно, потому что приходилось вручную отслеживать всех, кто перестал оплачивать подписку. Заказчица хотела, чтобы в рамках одного личного кабинета можно было отслеживать и продажу курсов, и подписку.

О проблеме

К проекту была подключена система CloudPayments. Основная проблема — на Тильде нельзя подключить одну платежную систему дважды, выставив для подписки настройку «рекуррентные платежи» (то есть повторяющиеся переводы средств, автопереводы), а для курсов — «нерекуррентные» (единоразовые платежи).

Было решено все платежи проводить как рекуррентные, а затем в Make после получения платежа забирать его ID, заново обращаться к нему и отменять рекуррентность, чтобы избежать повторного списания средств за купленный навсегда курс. Такой прием позволил показывать в едином кабинете разные блоки, которые выглядят одинаково, но отображают разный контент для пользователей без подписки, с подпиской, и тех, кто купил курсы навсегда.

Пользователи, которые купили курсы, видят в блоке и то, что у них куплено, и новые предложения. Для тех, кто еще ничего не купил, отображаются курсы, которые можно приобрести

О разделе «Вакансии»

В рамках развития проекта владельцы решили добавить на сайт новый раздел «Вакансии». Необходимо было настроить автоматическую публикацию вакансий с разных Telegram-каналов.

Это можно легко реализовать через бота, так как многие no-code инструменты имеют их нативную поддержку. Проблема в том, что никакой канал не согласится добавить к себе бота и выдать ему права, чтобы тот парсил вакансии.

Пришлось написать скрипт на Python, который запускается на сервере от имени пользователя, а не бота, и забирает вакансии из тематических групп. Вакансии фильтруются по стоп-словам, чтобы избежать рекламы, и отправляются в AirTable.

Менеджер сайта перед публикацией проверяет еще раз вакансию, и она появляется в разделе. Пользователь может откликнуться на вакансию, перейдя к обсуждению с человеком, который вакансию выложил.

Раздел вакансий на сайте онлайн-школы. Вакансии автоматически подтягиваются из тематических каналов Telegram и после модерации появляются на странице

О ребрендинге

Летом 2022 года владельцы проекта решили провести ребрендинг. Мне пришлось переделывать структуру сайта под новый дизайн. Помимо нового дизайна появился новый тип контента — лекции.

Лекции на сайте Praktika.School

Если для каждого курса изначально были созданы отдельные страницы с видео, то для лекций необходимо было создать одну динамическую страницу, на которой бы менялся контент. То есть нужно было сделать единый адрес, на которой бы по фильтрам подтягивалась информация из Airtable о спикере, название лекции, описание, само видео, дополнительные материалы и т. д.

Вся новая страница после ребрендинга была сверстана в Zero-блоках, что усложнило работу над внедрением динамического контента. У Collabza нет инструмента для нативной работы с Zero, поэтому в дополнение к интеграции с HTML-блоком пришлось использовать и JavaScript.

Лекции на сайте

Внизу под лекциями были добавлены комментарии, которые пользователи могут оставлять через Telegram.

Также была добавлена реферальная программа. В кабинете пользователи могут посмотреть количество рефералов, которые зарегистрировались по их ссылке, посмотреть заработок и вывести деньги на карту.

В личном кабинете можно посмотреть и вывести средства, заработанные по реферальной программе

О будущем проекта

Я до сих пор поддерживаю проект, вношу при необходимости мелкие правки.

Что я понял, работая с инструментами зекородинга над Praktika.School? Сайты такого масштаба необходимо проектировать заранее. Изначально была всего одна задача, которая была выполнена быстро и дешево с помощью зерокодинга. Потом понадобились новые функции, и чтобы всё работало так, как работает сейчас, пришлось к зерокодингу дописывать код.

Этот сложный проект я бы изначально проектировал по-другому. Некоторые реализованные функции можно было бы сделать проще, быстрее и надежнее, если бы проектирование было сделано заранее. Сейчас мы упираемся в некий потолок по возможностям. Чтобы реализовать большее, нужны другие инструменты — более сложные no-code или low-code решения. Например, Wappler.