Технічне завдання для месенджера, треба взяти готове рішення месенджера (наприклад, 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 тижнів після затвердження ТЗ.
• Бюджет: Можливий мінімальний бюджет, оскільки основна частина функціоналу вже реалізована.
(Деталі обговорюються з кандидатом).
• Комунікація:
• Регулярні звіти про хід роботи (щотижня).
• Передача проміжних версій для тестування.