Specyfikacja techniczna dla komunikatora, należy wziąć gotowe rozwiązanie komunikatora (na przykład Element/Matrix) i wprowadzić minimalne zmiany, dodając funkcjonalność tłumaczenia wiadomości online.
1. Wprowadzenie
Celem projektu:
Dostosowanie już istniejącego komunikatora open-source (na przykład Element opartego na Matrix) do użytku korporacyjnego (do 100 użytkowników) z zachowaniem podstawowej funkcjonalności. Główna zmiana — integracja funkcji tłumaczenia wiadomości online.
Uzasadnienie:
Używamy gotowego rozwiązania komunikatora, które już realizuje szyfrowanie end-to-end i wieloplatformowość (Windows, macOS, iOS, Android). Zadanie — wprowadzenie minimalnych zmian, dodając możliwość tłumaczenia wiadomości przez zewnętrzne API (na przykład Google Translate lub Microsoft Translator).
2. Główne zadania
1. Analiza istniejącego rozwiązania:
• Zbadać kod źródłowy wybranego komunikatora (Element/Matrix).
• Określić, gdzie można zintegrować funkcję tłumaczenia.
2. Integracja tłumaczenia online:
• Dodać przycisk „Tłumacz” w interfejsie obok każdej wiadomości.
• Po naciśnięciu przycisku wysłać tekst (po lokalnym odszyfrowaniu) do zewnętrznego API tłumaczenia.
• Wyświetlać otrzymane tłumaczenie obok oryginalnej wiadomości.
3. Sprawdzenie działania szyfrowania end-to-end:
• Upewnić się, że podstawowa implementacja szyfrowania działa poprawnie.
• Jeśli zajdzie potrzeba, wprowadzić minimalne zmiany w celu zwiększenia niezawodności, bez zmiany podstawowej logiki.
4. Wieloplatformowość:
• Sprawdzić poprawne działanie gotowego klienta na platformach Windows, macOS, iOS i Android.
• Upewnić się, że integracja tłumaczenia działa poprawnie na wszystkich wspieranych platformach.
3. Wymagania funkcjonalne
• Szyfrowanie end-to-end:
• Zachować istniejący mechanizm szyfrowania (Olm/Megolm) bez zmian.
• Sprawdzić, że cała wymiana wiadomości pozostaje zabezpieczona.
• Tłumaczenie online:
• Wdrożyć przycisk „Tłumacz” w interfejsie czatu.
• Po naciśnięciu przycisku wysłać tekst wiadomości do zewnętrznego API tłumaczenia.
• Otrzymane tłumaczenie wyświetlić obok oryginalnego tekstu, nie naruszając szyfrowania.
• Wieloplatformowość:
• Użyć gotowego klienta Element, dostosowanego do Windows, macOS, iOS i Android.
• Sprawdzić jednolite wyświetlanie i działanie funkcji tłumaczenia na wszystkich platformach.
• Rejestracja i podstawowa funkcjonalność:
• Zachować standardową rejestrację i wszystkie podstawowe możliwości, zrealizowane w rozwiązaniu źródłowym.
Ograniczenia rejestracji przypadkowych użytkowników:
Aby ograniczyć rejestrację przypadkowych użytkowników, można zastosować następujące podejścia:
• Rejestracja na zaproszenie lub kody:
Umożliwić rejestrację tylko tym, którzy otrzymali specjalny kod rejestracyjny lub zaproszenie od administratora.
• Ograniczenie według domeny email:
Skonfigurować rejestrację tak, aby akceptować tylko email z określonej korporacyjnej domeny.
• Ręczne zatwierdzenie:
Wymagać potwierdzenia rejestracji przez administratora, zanim konto stanie się aktywne.
4. Plan realizacji
1. Etap 1. Analiza:
• Badanie wybranego rozwiązania open-source.
• Określenie punktów integracji dla dodania funkcji tłumaczenia.
2. Etap 2. Integracja tłumaczenia online:
• Opracowanie elementu UI (przycisk „Tłumacz”).
• Integracja wywołania zewnętrznego API tłumaczenia przez zabezpieczone połączenie.
• Testowanie wyświetlania tłumaczenia obok oryginalnej wiadomości.
3. Etap 3. Testowanie i debugowanie:
• Testowanie funkcjonalne na wszystkich platformach (Windows, macOS, iOS, Android).
• Sprawdzenie działania szyfrowania end-to-end po wprowadzonych zmianach.
• Naprawa wykrytych błędów i poprawa interfejsu.
4. Etap 4. Dokumentacja:
• Przygotowanie krótkiej dokumentacji dotyczącej wprowadzonych zmian.
• Instrukcje dotyczące wdrażania i wsparcia projektu.
5. Wymagania dla kandydata
• Doświadczenie w pracy z rozwiązaniami open-source, szczególnie z Matrix/Element.
• Znajomość zasad szyfrowania end-to-end i integracji API (na przykład Google Translate).
• Doświadczenie w tworzeniu lub dostosowywaniu aplikacji wieloplatformowych.
• Umiejętność szybkiego zrozumienia istniejącego kodu i wprowadzania minimalnych zmian.
6. Terminy i warunki
• Termin realizacji: 4–6 tygodni po zatwierdzeniu specyfikacji.
• Budżet: Możliwy minimalny budżet, ponieważ główna część funkcjonalności jest już zrealizowana.
(Szczegóły omawiane z kandydatem).
• Komunikacja:
• Regularne raporty o postępach pracy (co tydzień).
• Przekazywanie wersji pośrednich do testowania.