Главное о кейсе
Арабский стартап поставил перед собой задачу создать современную образовательную платформу для изучения иностранных языков с нуля — веб-сайт и мобильные приложения под iOS и Android. Платформа объединяет преподавателей и учеников, дает возможность вести уроки в формате видео- и аудиозвонков — как индивидуально, так и в группах. Пользователи могут выбирать язык, преподавателя, формат и стоимость занятий, а также гибко менять преподавателя при необходимости.
Doubletapp выступил партнёром заказчика на всех этапах разработки — от формирования первоначальной концепции до реализации сложных технических решений. Вместе с командой стартапа мы выстраивали дорожную карту разработки, корректировали функционал и дизайн, ориентируясь на реальные потребности пользователей и условия международного рынка.
➤ Благодаря слаженной коммуникации и инициативному подходу удалось не только создать работоспособный продукт, но и вывести проект на новый уровень, привлечь следующий раунд инвестиций и масштабировать платформу на несколько регионов — США, Европу, Ближний Восток.
_____
An Arab startup aimed to create a modern educational platform for learning foreign languages from scratch, including a website and mobile applications for iOS and Android. The platform connects teachers and students, offering lessons via video and audio calls—both individually and in groups. Users can choose the language, teacher, format, and price of lessons, and can easily switch teachers if needed.
Doubletapp partnered with the client at every stage of development—from shaping the initial concept to implementing complex technical solutions. Together with the startup team, we built the development roadmap, refined functionality and design, and tailored the platform to real user needs and international market requirements.
➤ Thanks to smooth communication and a proactive approach, we were able not only to deliver a working product but also to scale the platform to new regions—the USA, Europe, and the Middle East—and attract the next round of investment.
Как проект изменил жизнь пользователей
Мы спроектировали платформу так, чтобы каждый участник экосистемы — ученик, преподаватель и администратор — получил свой понятный и безопасный пользовательский путь.
➤ Трек ученика
Раньше ученикам приходилось вручную искать преподавателей, разбираться с оплатами и договариваться о встречах. Теперь весь цикл — от выбора специалиста до завершения урока — происходит внутри платформы.
➣ Платформа
● предоставляет преподавателей с подтверждённой квалификацией;
● позволяет оплачивать уроки в местной валюте по подписной модели;
● автоматически списывает платежи и напоминает о продлении;
● обеспечивает удобный формат уроков: через видеозвонки с акцентом на разговорную практику;
● поддерживает чат для письменной коммуникации и обмена файлами.
В итоге ученик получает не просто доступ к урокам, а предсказуемый и комфортный учебный процесс, где ничего не отвлекает от освоения языка.
➤ Трек преподавателя
Основная боль преподавателей — искать учеников, управлять расписанием, решать вопросы связи и оплат. Платформа снимает эти задачи.
➣ Платформа:
● освобождает от поиска учеников: поток заявок идёт через систему, нет географических ограничений;
● автоматически проводит все выплаты раз в месяц — с вычетом комиссии платформы;
● предоставляет страницу с историей транзакций и статусами операций;
● дает надёжный инструмент для проведения уроков: видеозвонки, модерация встреч, чат.
Преподаватель получает стабильный поток учеников и прозрачную финансовую модель — без лишних коммуникаций и технических хлопот.
➤ Трек администратора
Администраторам нужен быстрый доступ к контенту, заявкам преподавателей и инструментам контроля.
➣ Платформа:
● позволяет управлять заявками преподавателей, проверять документы о квалификации, выдавать или отклонять доступ;
● открывает доступ к дашбордам Stripe: все выплаты, отчёты, экспорт данных;
● предоставляет удобный редактор для публикации материалов в блоге (новости, статьи, иллюстрации);
● обеспечивает модерацию видеосессий и пользователей.
Администратор управляет платформой через единый центр контроля, где все процессы — от модерации уроков до контент-менеджмента — автоматизированы и прозрачны.
_____
We designed the platform so that every participant—student, teacher, or administrator—has a clear and secure user journey.
➤ Student Journey
Previously, students had to manually search for teachers, handle payments, and arrange lessons. Now, the entire cycle—from selecting a teacher to completing a lesson—occurs within the platform.
➣ The platform:
● provides teachers with verified qualifications
● allows payment in local currency via a subscription model
● automatically processes payments and sends renewal reminders
● offers convenient lesson formats with a focus on conversational practice via video calls
● supports chat for written communication and file sharing
Students now experience a predictable, seamless learning process that keeps their focus on language acquisition.
➤ Teacher Journey
Teachers’ main pain points were finding students, managing schedules, handling communication, and processing payments. The platform removes these obstacles.
➣ The platform:
● automatically matches teachers with students without geographical restrictions
● processes monthly payments, deducting the platform’s commission
● provides a transaction history and operation status page
● offers reliable lesson tools: video calls, meeting moderation, chat
Teachers benefit from a steady flow of students and a transparent financial model, free from unnecessary communication or technical issues.
➤ Admin Journey
Administrators need quick access to content, teacher applications, and management tools.
➣ The platform:
● manages teacher applications, verifies qualifications, and grants or denies access
● provides dashboards via Stripe for payments, reports, and data export
● offers a content editor for publishing blog posts, articles, and illustrations
● moderates video sessions and users
Administrators control the platform through a centralized system where all processes—from lesson moderation to content management—are automated and transparent.
Бизнес-задача и ее решение
Заказчик пришёл с общей идеей платформы и первичными эскизами дизайна. Его цель была двойной: выйти на европейский и американский рынок онлайн-образования и подготовить продукт к следующему раунду инвестиций. Для этого требовалось создать живой сервис, в котором смогут работать реальные ученики и преподаватели, и который при этом будет масштабируем, безопасен и технологически зрел.
➤ Бизнес-задача включала три ключевых направления:
● Сформировать полноценное ТЗ и архитектуру продукта. Превратить идеи и эскизы заказчика в рабочие пользовательские сценарии, требования к ролям, инфраструктуре и функционалу.
● Разработать продукт, рассчитанный на реальную эксплуатацию. С международными оплатами, качественными видеозвонками, прозрачной модерацией, удобством для всех ролей и готовностью к росту аудитории.
● Создать основу для инвестиционного раунда, но не в виде прототипа-витрины, а в виде платформы, которая уже может выполнять свои задачи и демонстрирует реальную ценность, подтверждённую поведением пользователей.
➤ Как мы подошли к решению:
Вместе с заказчиком мы детализировали пользовательские пути для учеников, преподавателей и администраторов, сформировали структурированное техническое задание и собрали архитектуру платформы. Затем реализовали ключевые модули:
● систему видеосвязи с гибкой модерацией на основе JWT-токенов;
● чаты на WebSocket с мгновенной синхронизацией;
● международные платежи в Stripe и автоматизированные ежемесячные выплаты преподавателям;
● административную панель с расширенными правами;
● мобильные приложения на Flutter для iOS и Android.
Для финансовых сценариев мы создали отдельные тестовые стенды, проверяя подписки, списания и поведение сервиса в различных временных режимах. Это обеспечило стабильную работу критически важных процессов.
В результате платформа стала не концептом, а полноценным продуктом, в котором уже начали регистрироваться пользователи и проводить реальные уроки. Проект получил устойчивый фундамент для выхода на международные рынки и стал сильной технологической базой для дальнейшего привлечения инвестиций.
_____
The client came with a general platform idea and initial design sketches. Their dual goal was to enter European and American online education markets and prepare the product for the next investment round. To achieve this, we needed a live platform capable of supporting real students and teachers while being scalable, secure, and technologically robust.
➤ The business challenge had three main objectives:
1. Develop full technical specifications and product architecture, transforming ideas and sketches into working user scenarios, role definitions, infrastructure, and functionality.
2. Build a product ready for real-world use, with international payments, high-quality video calls, transparent moderation, usability for all roles, and scalability.
3. Create a foundation for investment, not as a prototype but as a live platform delivering real user value.
➤ Our Approach
Together with the client, we detailed user journeys for students, teachers, and administrators, formalized technical specifications, and designed the platform architecture. Key modules implemented included:
● video system with flexible moderation via JWT tokens
● WebSocket-based chats with instant synchronization
● international payments via Stripe and automated monthly teacher payouts
● admin panel with advanced permissions
● mobile apps for iOS and Android built with Flutter
For financial workflows, we created separate test environments to validate subscriptions, payments, and platform behavior under various scenarios, ensuring stable operation of critical processes.
As a result, the platform became a fully functional product, with users already registering and attending real lessons. It established a solid foundation for international expansion and served as a strong technological base for attracting investment.
Крафт (мастерство), реализация, технические детали
Мы разработали два веб-приложения — сайт и административную панель. Сайт написан на React, с ним использовали
Next.js для SEO-оптимизации. Язык программирования для веба — TypeScript.
➤ Встречи
Уроки на платформе — по сути видеозвонки, и заказчик вначале предлагал сделать интеграцию через Zoom. Но в этом случае нужно было решать вопрос с владельцами Zoom, заказчику это не подошло, и он предложил взять опенсорсную систему интернет-телефонии Jitsi. Сервис Jitsi для видеосвязи всех устроил, потому что он работал и с веб-приложениями на React, и с мобильными приложениями на Flutter.
Опенсорсное решение пришлось дорабатывать под нужды проекта, например, вводить ограничение времени урока. Технически пользователи Jitsi могут вести общение часами, из коробки ограничения нет, а на учебной платформе нужно ограничить время урока, так как оно оплачивается. Создатель Chat room сам указывает продолжительность встречи и выбирает время в диапазоне от 15 минут до двух часов. Для решения задачи доработали плагин Time restricted plugin: он обращался на наш бэкенд по ID встречи, а в ответе запроса приходит длительность встречи. Jitsi внутри себя обращается к нашему бэкенду, получает информацию о встрече, и, соответственно, заканчивает встречу в заданное время.
Следующая задача — отслеживать, когда человек вошел на встречу и покинул ее. Плюс нужно убрать возможность для пользователя заходить одновременно на несколько встреч. В Jitsi из коробки этого также нет. Здесь использовали плагин Event Sync, он нужен, чтобы вебхук получал события от Jitsi. То есть на бэкэнд приходит событие — встреча создалась, человек вошел на встречу, человек вышел из встречи, встреча завершилась. И мы на уровне бэкэнда можем отслеживать, что человек, например, находится на другой встрече, поэтому он не сможет войти на вторую встречу. Или, допустим, человек уже находится на встрече, и он не сможет дважды подключиться на одну и ту же встречу. Благодаря этому плагину мы получаем эту информацию и сохраняем ее в базе данных.
Однако вебхук работает по протоколу HTTP, а события по протоколу HTTP обрабатываются не по порядку: могла возникнуть ситуация, что сначала человек вошел на встречу, а потом встреча создалась. Для решения нужно, чтобы все запросы, которые отправлял Jitsi, были синхронными. Целостности данных добились следующим образом: использовали доработанный плагин Event Sync, добавили очередь RabbitMQ: Jitsi отправляет HTTP-запрос очередь в RabbitMQ, и события обрабатываются по порядку.
Распределение ролей на платформе происходит с помощью JWT-токенов. Плагин, с помощью которого выдаются права модератора, называется Token Moderation. Бэкенд генерирует JWT-токен, передает этот токен на фронтенд, фронтенд передает этот токен в SDK Jitsi. Если это Flutter (мобильная версия) — то во Flutter SDK, если это React (веб-версия) — то в React SDK. И на уровне вот этого JWT-токена прописывается в пейлоаде информация о том, что конкретный пользователь — модератор, и ему даются модераторские права: удалять или добавлять пользователей на встречу.
➤ Чаты
Чаты могут создавать и писать и в них все пользователи сервиса. Для загрузки текста и вложений используется открытый протокол WebSocket. Он позволяет установить прямое соединение и «слушать» события, которые приходят с сервера. То есть по умолчанию мы не можем узнать, что на сервере что-то изменилось. А благодаря WebSocket у нас идет двусторонняя связь: один пользователь отправил сообщение, оно улетело улетело на сервер, сервер уже второму клиенту спустил событие, что у нас новое сообщение, и оно отобразилось.
➤ Оплаты
Заказчик планировал использовать PayPal, но проект задумывался как международный, и есть сложности с прохождением оплат в разных странах. В итоге выбрали сервис Stripe, который агрегирует несколько способов оплаты, и ими удобно управлять. Сценарий реализации: события с вебхука Stripe поступают в очередь RabbitMQ и обрабатываются.
Выплаты преподавателям происходят 1-го числа каждого месяца: создается задача, проходит по всем преподавателям и выплачивается гонорар за прошедший месяц за вычетом услуг платформы. У преподавателей есть страничка, где они могут посмотреть список транзакций, а у владельцев платформы в Stripe — дашборд, где можно смотреть все выплаты, формировать отчет и экспортировать его в Excel.
Ученики регистрировались на платформе и оплачивали уроки через подписную модель. Мы проверили, удобно ли пользователям взаимодействовать с платформой, и для этого создали тестовые стенды. Например, мы регистрировали Stripe Customer, клиента Stripe, и проводили с помощью реальных банковских карт все финансовые операции типа оплаты и подписки: человек оформил подписку, нужно, чтобы через месяц деньги списались. Приходит ли на почту ссылка для перехода и подтверждения платежа? Работает ли автоматическая отписка, если платеж не поступил в оговоренный срок? В самом Stripe есть инструментарий, который позволяет перематывать время подписки, чтобы можно было протестировать все операции.
➤ Административная панель
Владелец платформы управляет площадкой через административную панель.
В блог на сайте через текстовый редактор можно загружать новости и статьи, форматировать и редактировать их, добавлять иллюстрации. Мы использовали коробочное решение, но оно не позволяло полностью реализовать ТЗ, поэтому дописали собственный плагин и подобрали библиотеку, которая могла поддерживать дополнительные самописные плагины для реализации кастомных решений внутри текстового редактора.
➤ Модерация на платформе — это не только удаление нарушителей порядка, но также и прием и рассмотрение заявок от преподавателей. Соискатель при регистрации указывает, что он хотел бы давать уроки, у него открывается форма для загрузки подтверждающих документов. Администратор просматривает новые заявки, выдает апрув или отказывает. В случае подтверждения заявки у преподавателя меняется статус и права доступа.
➤ Мобильные приложения на Flutter
Для разработки мобильных приложений мы выбрали быстрые экономичные решения — Flutter: труд разработчиков стоит дорого, и быстрее в плане разработки — значит дешевле.
В ограниченные сроки необходимо было разработать идентичные приложения под iOS и Android, и технология идеально подходила под эту задачу. Начиная разработку мобильного приложения всегда надо держать в уме требования Google Play и App Store и учитывать их при планировании будущего функционала. Например, при добавлении в приложение чата между пользователями нужно обязательно добавлять возможность блокировки.
Учитывая все эти требования и спланировав заранее возможные вопросы от ревьюеров, мы минимизировали время, затраченное на ревью сложного по функционалу приложения.
➤ Менеджмент
В целом работы велись по гибкой системе взаимодействия между разработчиками, зачастую одновременно и параллельно. Например, бэкенд только закончил фичу авторизации, и тут же фронтенд и мобильщики берут ее в работу.
У проекта был фиксированный бюджет, и мы, не выходя за его рамки, смогли действовать максимально гибко, чтобы в итоге зарелизить готовый продукт, которым можно пользоваться.
Инсайты, гипотезы, процесс создания и взаимодействия с заказчиком
С 2015 года Doubletapp создаёт цифровые продукты для разных сегментов — от стартапов до бигтехов и международных компаний. Такой опыт позволяет быстро погружаться в задачи, находить эффективные решения в нужные сроки и в рамках бюджета.
➤ Для Lingoline мы стали не просто подрядчиками, а партнёрами в формировании концепции и уточнении требований. Совместно проверяли гипотезы, строили пользовательские сценарии и расставляли приоритеты, чтобы продукт развивался на основе реальных нужд пользователей.
В итоге заказчик получил зрелый и рабочий продукт, который уже привлёк первых пользователей и стал основой для следующего инвестиционного раунда.
_____
Since 2015, Doubletapp has created digital products for startups, big tech, and international companies. This experience allows us to quickly understand tasks, find efficient solutions, and deliver on time and budget.
For Lingoline, the client’s first large EdTech project, we acted as partners, not just contractors: validating hypotheses, building user scenarios, and prioritizing features to ensure the product met real user needs.
The result: a mature, fully functional product that attracted initial users and became the foundation for the next investment round.
Скриншоты