Главнаяarrow-rightКейсыarrow-rightGOLD Мессенджер

Кейс GOLD Мессенджер: защищенная платформа для видеосвязи

Краткое описание

Изолированный корпоративный мессенджер с доступом по приглашению — администратор добавляет профили вручную; внутри полный набор функций от переписки в чатах до групповых видеозвонков.

Задача

Создать закрытый защищённый мессенджер для коммуникаций внутри ограниченной среды, где доступ контролируется администратором, а функционал покрывает и текстовое, и голосовое, и видеообщение.

О проекте

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

Бизнес-выгоды

ПОЛНЫЙ КОНТРОЛЬ НАД ДОСТУПОМ К КОММУНИКАЦИЯМ — В СИСТЕМЕ ТОЛЬКО ТЕ, КОГО ДОБАВИЛ АДМИНИСТРАТОР: РЕГИСТРАЦИЯ ИЗВНЕ НЕВОЗМОЖНА, ПОСТОРОННИЕ ПОЛЬЗОВАТЕЛИ ИСКЛЮЧЕНЫ
СНИЖЕНИЕ РИСКА УТЕЧЕК ЧЕРЕЗ ПУБЛИЧНЫЕ МЕССЕНДЖЕРЫ — ПЕРЕПИСКА, ФАЙЛЫ И ЗВОНКИ КОМАНДЫ ОСТАЮТСЯ ВНУТРИ ЗАКРЫТОГО КОНТУРА ЗАКАЗЧИКА
ЭКОНОМИЯ БЮДЖЕТА РАЗРАБОТКИ ДО 70% — ОПЛАЧИВАЕТСЯ ДОРАБОТКА И ВНЕДРЕНИЕ, БАЗОВАЯ ИНФРАСТРУКТУРА МЕССЕНДЖЕРА УЖЕ ПРОВЕРЕНА РЫНКОМ

Функционал

Реализован изолированный мессенджер с контролируемым входом
Самостоятельная регистрация новых пользователей отключена
Профили пользователей создаются администратором
Администратор выдаёт пользователю доступ к системе
Доступ к мессенджеру получают только заранее добавленные участники
Возможность ограничивать круг пользователей внутри закрытого контура
Проект развёрнут на личном сервере заказчика
Создание новых пользовательских профилей через админ-панель
Назначение логина и данных для входа
Управление активностью пользователей
Возможность отключить или заблокировать пользователя
Редактирование данных профиля
Контроль списка участников системы
Управление правами доступа внутри мессенджера
Удаление пользователей из закрытого контура
Персональная страница пользователя
Отображение имени, аватара и базовой информации
Возможность редактировать данные профиля
Управление фото профиля
Настройки приватности внутри системы
Обмен личными сообщениями между пользователями
Отправка текстовых сообщений в режиме реального времени
Возможность продолжить ранее начатый диалог
Отображение статуса доставки сообщения
Отображение статуса прочтения сообщения
Индикатор набора сообщения
Возможность очистить историю диалога
Закрепление важных сообщений в чате
Видеозвонки
Аудиозвонки
Реакция на сообщения
Ответ-реплай на сообщение
Создание отдельной ветки обсуждения к определённому сообщению
Голосовые сообщения
Создание опроса
Поделиться местоположением в трёх форматах (моё положение на карте, трансляция положения в реальном времени, маркер на карте)
Отправка стикеров
Скрытие контента медиафайлов (видео и картинок)
Загрузка файлов из чата (картинки, голосовые и т.д.)
Пересланные сообщения
Добавление в чат расширений
Отправка жалоб на сообщения
Добавление чата в избранное
Создание групповых чатов
Добавление участников в группу
Удаление участников из группы
Назначение модератора группы
Управление названием и аватаром группы, темой группы, адресами комнаты (публичным и локальным)
Обмен сообщениями между участниками группы
Отображение списка участников
История сообщений внутри группы
Закрепление важных сообщений
Настройка уведомлений по конкретному групповому чату
Возможность покинуть группу
Возможность ограничить действия участников внутри группы
Гибкая настройка возможностей пользователей с разными ролями
Пинг определённого пользователя по юзернейму
Отправка текстовых сообщений
Редактирование отправленных сообщений
Удаление сообщений
Ответ на конкретное сообщение
Пересылка сообщений между чатами
Копирование текста сообщения
Закрепление сообщений
Отображение времени отправки
Отображение автора сообщения
Отображение статусов отправки, доставки и прочтения
Поддержка ссылок внутри сообщений
Поддержка emoji-реакций
Поиск по сообщениям внутри чата
Отправка файлов в личные и групповые чаты
Отправка изображений
Отправка документов
Отправка архивов
Отображение превью изображений
Скачивание полученных файлов
Хранение вложений в истории переписки
Проверка доступности файла только для участников конкретного чата
Ограничение доступа к вложениям вне закрытой системы
Отдельный просмотр отправленных изображений
Список файлов, переданных внутри чата
Быстрый переход к медиа из истории переписки
Сохранение структуры вложений по каждому диалогу
Просмотр ранее отправленных материалов без ручного поиска по всей переписке
Запуск группового видеозвонка внутри мессенджера
Подключение нескольких участников к одному звонку
Включение и отключение камеры
Включение и отключение микрофона во время звонка
Отображение участников звонка
Возможность выйти из звонка
Работа видеозвонков внутри закрытого контура системы
Использование звонков для рабочих встреч и внутренних обсуждений
Уведомления о новых личных сообщениях
Уведомления о новых сообщениях в групповых чатах
Отображение количества непрочитанных сообщений
Уведомления о добавлении в группу
Уведомления о начале видеозвонка
Настройка уведомлений по отдельным чатам
Возможность отключить уведомления для выбранного диалога
Отображение новых событий внутри интерфейса мессенджера
Поиск пользователей внутри закрытой системы
Поиск личных чатов
Поиск групповых чатов
Поиск по участникам группы
Быстрый переход к нужному диалогу
Отображение списка активных чатов
Разделение личных и групповых переписок
Закрытая архитектура без публичной регистрации
Доступ только для пользователей, созданных администратором
Размещение проекта на личном сервере заказчика
Хранение данных внутри инфраструктуры заказчика
Ограничение доступа к перепискам только для участников конкретного чата
Защита личных и групповых сообщений от публичного доступа
Контроль пользователей через административную панель
Возможность оперативно отключить доступ участнику
Развёртывание мессенджера на сервере заказчика
Настройка серверной части под закрытый режим использования
Хранение пользовательских данных, сообщений и файлов на инфраструктуре заказчика
Настройка стабильной работы личных и групповых чатов
Настройка работы видеозвонков внутри выделенной серверной среды
Подготовка системы к дальнейшему масштабированию количества пользователей
Голосовые сообщения не входили в реализованный функционал
Видеосообщения в формате кружков не входили в реализованный функционал
Основной фокус был сделан на закрытом доступе, текстовых коммуникациях, групповых чатах, файлах и видеозвонках

Стек технологий

React 19 + TypeScript — современный typed frontend для сложного интерфейса в реальном времени
Matrix SDK — real-time коммуникация на протоколе Matrix
End-to-End Encryption — защищённые сообщения и безопасная коммуникация
Webpack 5 + Nx Monorepo — масштабируемая сборка и управление большой фронтенд-кодовой базой
Jest + Playwright — автоматическое тестирование UI, логики и пользовательских сценариев
Swift — основной язык разработки
SwiftUI — современный декларативный UI (используется в новых экранах, наряду с UIKit)
UIKit — базовый UI-фреймворк приложения
MVVM Architecture — архитектура приложения
Combine — реактивная обработка данных
Swift Package Manager (SPM) — управление зависимостями
End-to-End Encryption — сквозное шифрование сообщений (Olm/Megolm)
VoIP & Push Notifications — голосовые вызовы и push-уведомления
Kotlin — современный язык разработки Android-приложений
Jetpack Compose — декларативный фреймворк для создания пользовательского интерфейса
MVVM — архитектура с разделением логики, данных и интерфейса
Kotlin Coroutines — асинхронное выполнение задач без блокировки UI
Kotlin Flow — реактивная обработка потоков данных и состояния
Appyx Navigation — современная система навигации между экранами
Gradle Kotlin DSL — инструмент сборки и управления зависимостями
End-to-End Encryption — сквозное шифрование сообщений и звонков
Synapse (Python 3 + Twisted) — Matrix homeserver, ядро мессенджера: обработка сообщений, комнат, пользователей, федерации и E2E-шифрования
Matrix — открытый протокол децентрализованного обмена сообщениями
coturn — TURN/STUN-сервер для аудио- и видеозвонков (обход NAT для WebRTC), с поддержкой TLS и авторизацией по shared secret
Ketesa (React + TypeScript) — веб-панель администрирования homeserver'а: управление пользователями, комнатами, медиа
PostgreSQL 16 — основная база данных Synapse (хранение сообщений, состояния комнат, аккаунтов)
Docker / Docker Compose — контейнеризация и оркестрация всех сервисов
Nginx — reverse proxy: терминация TLS, проксирование клиентского и федеративного трафика к Synapse и панели администрирования
Let's Encrypt — TLS-сертификаты (используются nginx и coturn)

Работа с заказчиком

*Важно это не работа по проекту это работа именно с заказчиком, и это то чего нет в смете или коммерческом предложении это то что мы делаем для увеличения вероятности успеха продуктаМы делаем клиента сильнее — и вот как это выглядитВ этом проекте мы сознательно вышли далеко за рамки технического задания так как безопасность бизнеса клиента по сути зависела от созданного нами решения. Наша цель была — чтобы заказчик перестал зависеть от подрядчиков в ключевых вопросах. Мы погрузили его в продуктовую логику, разобрали идеологическую основу бизнеса и помогли сформулировать смыслы, которые цепляют аудиторию. Затем — честный разбор всех подводных камней, от юридических нюансов до поведенческих ловушек пользователей. Отдельным треком дали работающие маркетинговые шаги, актуальные прямо сейчас, без воды и общих рекомендаций. Итог: не просто готовый продукт, а владелец, который точно знает, что делает, и команда, которая понимает, как извлекать из платформы максимум.Наша цель это не просто разработка, это успех нашего заказчика.