Skip to content
@NiShonik-Dozzza

NiShonik/Dozzza

EFIR — платформа управления цифровыми экранами (плеер + панель управления)

📺 EFIR

Платформа управления цифровыми экранами · digital signage

Контент по расписанию на сеть экранов: медиатека, плейлисты, гибкое расписание и автономные плееры, которые продолжают играть даже без сети.


Flutter FastAPI Vue PostgreSQL Keycloak Docker


🧩 Два блока проекта

EFIR состоит из двух частей, которые общаются по защищённому device-API (регистрация по подтверждению, манифест, heartbeat, раздача медиа с проверкой целостности).

📱  Client — плеер 🖥️  Server — панель

Приложение-плеер на самих устройствах-экранах.

  • Kiosk/fullscreen, автозапуск, watchdog
  • Офлайн-кэш медиа + аварийный плейлист
  • Хранилище на выбор: память / USB / диск
  • Авто-подбор адреса сервера и доверие к локальному CA
  • Сервисная зона: таймлайн, настройки, диагностика

Платформы: Windows · Linux · Android / Android TV

Flutter · Dart · media_kit

➡️ Перейти в репозиторий Client »

Веб-панель управления и API для всей сети экранов.

  • Медиатека, плейлисты, группы экранов
  • Гибкое расписание с разрешением конфликтов
  • Подтверждение и диагностика устройств
  • Аутентификация и роли через Keycloak
  • Весь стек в Docker, миграции на старте

Стек: FastAPI · Vue 3 · Postgres · MinIO · Redis · Keycloak

➡️ Перейти в репозиторий Server »


🗺️ Как это работает

flowchart LR
    O([👤 Оператор]):::people

    subgraph SRV["🖥️ EFIR Server"]
        direction TB
        PANEL["Веб-панель · Vue"]
        API["FastAPI · device API"]
        KC["Keycloak"]
        DB[("Postgres")]
        S3[("MinIO · медиа")]
        PANEL --> API
        API --- KC
        API --- DB
        API --- S3
    end

    subgraph SCREENS["📱 EFIR Clients"]
        direction TB
        C1["Экран 1"]
        C2["Экран 2"]
        C3["Экран N"]
    end

    O -->|управляет| PANEL
    C1 -. "manifest / heartbeat / media" .-> API
    C2 -. "manifest / heartbeat / media" .-> API
    C3 -. "manifest / heartbeat / media" .-> API

    classDef people fill:#fff,stroke:#888,color:#333;
Loading

Оператор готовит контент и расписание в панели → сервер собирает персональный манифест для каждого экрана → плееры забирают манифест, кэшируют медиа и играют по расписанию, продолжая работать даже при потере связи.


📐 Подробности архитектуры и планы развития — в README.md и ROADMAP.md каждого репозитория.

Дипломный проект (ВКР) · клиент + сервер

Popular repositories Loading

  1. Client Client Public

    📱 EFIR Client — плеер цифровых экранов на Flutter: kiosk, офлайн-кэш, авто-настройка (Windows/Linux/Android TV)

    Dart

  2. .github .github Public

    Профиль организации EFIR (org profile README)

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…