Nie podano
47 ofert
ZADANIE TECHNICZNE Opracowanie systemu Digital Signage dla sieci ekranów reklamowych 1. Ogólny opis systemuSystem przeznaczony do zdalnego zarządzania treściami multimedialnymi (wideo, obrazy) w sieci telewizorów działających na Android TV.
Architektura:Backend / Panel sterowania (Admin): PHP (Laravel / Yii2 lub czysty PHP) + MySQL.Frontend (Odtwarzacz na TV): HTML5 / JavaScript (Aplikacja Jednostronicowa), uruchamiana na TV w trybie pełnoekranowym przez aplikację Fully Kiosk Browser.2. Wymagania funkcjonalne: Panel sterowania (Admin na PHP)2.1. Zarządzanie ekranami (Telewizorami)Możliwość dodawania/usuwania ekranów w systemie.Każdemu ekranowi przypisywana jest: Nazwa (geo-punkt), unikalny ID (device_token) oraz status (Online/Offline).Monitorowanie (Ping): Wyświetlanie statusu TV w czasie rzeczywistym. Jeśli TV nie wysyłał zapytań przez więcej niż 5 minut, status powinien być pomalowany na czerwono (Offline).
2.2. Zarządzanie treścią (Biblioteka mediów)Przesyłanie plików (wideo, obrazy) na serwer.Usuwanie plików (z automatycznym usunięciem fizycznego pliku z serwera).Możliwość przeglądania (i zmieniania), na których ekranach jest emitowany każdy pojedynczy plik multimedialny.Ustawienie kolejności odtwarzania plików.
2.3. API serwera (do komunikacji z TV)Zrealizować REST API (JSON):POST /api/ping — przyjmuje od TV jego ID, rejestruje czas ostatniej aktywności (dla statusu Online) i zwraca aktualną wersję playlisty.GET /api/file/device_token — zwraca aktualną tablicę JSON z linkami do plików multimedialnych, ich kolejnością oraz ustawieniami czasu wyświetlania.3. Wymagania funkcjonalne: Odtwarzacz kliencki (HTML5/JS na TV)Odtwarzacz jest stroną internetową, która jest otwarta na TV. Główne zadanie klienta — autonomia.3.1. Cache i synchronizacja (Praca bez internetu)Przy starcie odtwarzacz żąda playlisty przez API.Lokalne przechowywanie: Wszystkie pliki z playlisty (wideo/obrazy) JS powinien ładować do wewnętrznej pamięci przeglądarki (używając Cache API lub IndexedDB). Streaming (odtwarzanie bezpośrednio z internetu) jest zabroniony.Synchronizacja: Jeśli na serwerze dodano nową treść, odtwarzacz ładuje ją w tle, nie przerywając aktualnego pokazu. Po zakończeniu ładowania — dodaje do transmisji. Jeśli treść została usunięta na serwerze, odtwarzacz musi usunąć ją z lokalnej pamięci podręcznej TV, aby nie zapełniać pamięci urządzenia.Tryb offline: Przy całkowitym zniknięciu internetu odtwarzacz nieskończoność powtarza ostatnią pomyślnie załadowaną playlistę.
3.2. Odtwarzanie i rotacjaCykliczne odtwarzanie treści i zgodnie z ustaloną w adminie kolejnością.Dla obrazów należy ustawić czas wyświetlania w sekundach (domyślnie 10 sek).Przejścia między filmami powinny być płynne, bez czarnych ekranów i zauważalnego przeładowania strony.
3.3. Logowanie i kontrola błędów (Ochrona przed awariami)Obsługa uszkodzonych plików: Jeśli plik wideo jest uszkodzony i nie może być odtworzony, odtwarzacz powinien go pominąć i włączyć następny w kolejności, a nie zawieszać się na czarnym ekranie.Logi pokazów (Analiza): Odtwarzacz powinien zapisywać w lokalnej pamięci fakt każdego pomyślnego odtworzenia filmu. Po pojawieniu się internetu te dane są wysyłane na serwer (POST /api/logs), aby w adminie można było zobaczyć statystyki: "Film A na TV nr 3 był wyświetlany 450 razy w ciągu doby oraz 2365 razy łącznie".4. Wymagania dotyczące optymalizacji pod Android TVInterfejs odtwarzacza nie powinien zawierać żadnych elementów sterujących (kursory, paski przewijania, przyciski). Tylko czysta treść na cały ekran.Kod JS musi być zoptymalizowany pod kątem pamięci (na czas usuwania nieużywanych elementów DOM i obiektowych URL), ponieważ budżetowe telewizory mają surowe ograniczenia dotyczące pamięci RAM i mogą awaryjnie zamykać kartę przy wycieku pamięci po 12-24 godzinach ciągłej pracy.