Техническое задание для месседжера, надо взять готовое решение мессенджера (например, Element/Matrix) и внести минимальные изменения, добавив функционал онлайн-перевода сообщений.
1. Введение
Цель проекта:
Адаптировать уже существующий open‑source мессенджер (например, Element на базе Matrix) для корпоративного использования (до 100 пользователей) с сохранением базового функционала. Основное изменение — интеграция функции онлайн-перевода сообщений.
Обоснование:
Мы используем готовое решение мессенджера, которое уже реализует end‑to‑end шифрование и мультиплатформенность (Windows, macOS, iOS, Android). Задача — внести минимальные изменения, добавив возможность перевода сообщений через внешний API (например, Google Translate или Microsoft Translator).
2. Основные задачи
1. Анализ существующего решения:
• Изучить исходный код выбранного мессенджера (Element/Matrix).
• Определить, где можно интегрировать функцию перевода.
2. Интеграция онлайн-перевода:
• Добавить кнопку «Перевести» в интерфейс рядом с каждым сообщением.
• При нажатии кнопки отправлять текст (после локальной расшифровки) на внешний API перевода.
• Отображать полученный перевод рядом с исходным сообщением.
3. Проверка работы end‑to‑end шифрования:
• Убедиться, что базовая реализация шифрования работает корректно.
• Если потребуется, внести минимальные изменения для повышения надёжности, без изменения базовой логики.
4. Мультиплатформенность:
• Проверить корректную работу готового клиента на платформах Windows, macOS, iOS и Android.
• Убедиться, что интеграция перевода корректно работает на всех поддерживаемых платформах.
3. Функциональные требования
• End‑to‑end шифрование:
• Сохранить существующий механизм шифрования (Olm/Megolm) без изменений.
• Проверить, что весь обмен сообщениями остаётся защищённым.
• Онлайн-перевод:
• Внедрить кнопку «Перевести» в интерфейс чата.
• При нажатии на кнопку отправлять текст сообщения в внешний API перевода.
• Полученный перевод отобразить рядом с оригинальным текстом, не нарушая шифрование.
• Мультиплатформенность:
• Использовать готовый клиент Element, адаптированный для Windows, macOS, iOS и Android.
• Проверить единообразное отображение и работу функции перевода на всех платформах.
• Регистрация и базовый функционал:
• Оставить стандартную регистрацию и все базовые возможности, реализованные в исходном решении.
Ограничения регистрации случайных пользователей:
Для ограничения регистрации случайных пользователей можно использовать следующие подходы:
• Регистрация по приглашению или кодам:
Допускайте регистрацию только тех, кто получил специальный регистрационный код или приглашение от администратора.
• Ограничение по домену email:
Настройте регистрацию так, чтобы принимать только email с определённого корпоративного домена.
• Ручное одобрение:
Требуйте подтверждения регистрации администратором, прежде чем аккаунт становится активным.
4. План реализации
1. Этап 1. Анализ:
• Изучение выбранного open‑source решения.
• Определение точек интеграции для добавления функции перевода.
2. Этап 2. Интеграция онлайн-перевода:
• Разработка UI-элемента (кнопки «Перевести»).
• Интеграция вызова внешнего API перевода через защищённое соединение.
• Тестирование отображения перевода рядом с оригинальным сообщением.
3. Этап 3. Тестирование и отладка:
• Функциональное тестирование на всех платформах (Windows, macOS, iOS, Android).
• Проверка работы end‑to‑end шифрования после внесённых изменений.
• Исправление обнаруженных ошибок и доработка интерфейса.
4. Этап 4. Документация:
• Подготовка краткой документации по внесённым изменениям.
• Инструкции по развёртыванию и поддержке проекта.
5. Требования к кандидату
• Опыт работы с open‑source решениями, особенно с Matrix/Element.
• Знание принципов end‑to‑end шифрования и API интеграции (например, Google Translate).
• Опыт разработки или адаптации мультиплатформенных приложений.
• Умение быстро вникать в существующий код и вносить минимальные изменения.
6. Сроки и условия
• Срок выполнения: 4–6 недель после утверждения ТЗ.
• Бюджет: Возможен минимальный бюджет, так как основная часть функционала уже реализована.
(Детали обсуждаются с кандидатом).
• Коммуникация:
• Регулярные отчёты о ходе работы (еженедельно).
• Передача промежуточных версий для тестирования.