Кроссплатформенная система управления цифровым радиовещанием и контентом

My Image

Архитектура Кроссплатформенной системы управления цифровым радиовещанием и контентом


1. Описание Системы

Кроссплатформенная система управления цифровым радио вещанием и контентом – это Система, которая позволяет осуществлять управление цифровым контентом: подкастами, материалами, стримами, формируя для пользователя удобный интерфейс для прослушивания подкастов, музыкальных подборок и вещания радиостанций и неэфирных потоков.

Система состоит из CMS для администраторов, адаптивного веб-сайта, приложений на iOS, iPadOS, CarPlay, WatchOS и Android, Android Auto, Wear OS.

Схема взаимодействия компонентов Системы представлена на Рисунке 1.

Рисунок 1 - Схема взаимодействия элементов Системы

2. Используемые библиотеки и компоненты

В Системе используются следующие библиотеки и компоненты разработки и функционировании продукта, а также тип лицензии к ним:

Frontend:

"react": "18.2.0",
"react-dom": "18.2.0",
"next": "13.5.6",
"axios": "1.6.2",
"@tanstack/react-query": "4.36.1",
"video.js": "8.6.1",
"zustand": "4.4.7"
"ioredis": "5.3.2",

"tailwindcss": "3.3.5",
"tailwind-scrollbar": "3.0.5",
"tailwindcss-animated": "1.0.1",
"@tailwindcss/typography": "0.5.10",
"postcss": "8.4.31",
"postcss-mixins": "9.0.4",
"@material-tailwind/react": "2.1.5",
"slick-carousel": "1.8.1",

"cookies-next": "4.1.0",
"immer": "10.0.3",
"react-slick": "0.29.0",
"react-fast-marquee": "1.6.2",
"react-hot-toast": "2.4.1",
"react-intersection-observer": "9.5.3",
"react-markdown": "9.0.1",
"sharp": "0.32.6",
"touch-velocity": "0.0.4",
"ua-parser-js": "1.0.37",
"use-debounce": "9.0.4",
"usehooks-ts": "2.9.1",
"uuid": "9.0.1",
"@svgr/webpack": "8.1.0",

"typescript": "5.3.2"
"autoprefixer": "10.4.16",
"eslint": "8.54.0",
"eslint-config-next": "13.5.6",
"eslint-config-prettier": "9.0.0",
"eslint-config-standard": "17.1.0",
"eslint-plugin-react": "7.33.2",
"eslint-plugin-tailwindcss": "3.13.0",

Back-end:

ruby 2.5.1
rails 6.1.4.1
pg 1.2.3
puma 3.12.6
sass-rails 6.0.0
uglifier 4.2.0
turbolinks 5.2.1
jbuilder 2.11.2
bcrypt 3.1.16
bzip2-ffi 1.1.0
scenic 1.5.3
apnotic 1.7.0
delayed_job 4.1.9
bootsnap 1.9.1
apple_id 1.2.1
byebug 11.1.3
rspec-rails 5.0.2
factory_bot_rails 6.2.0
web-console 4.1.0
spring 3.0.0
capybara 3.35.3
selenium-webdriver 3.142.7
chromedriver-helper 2.1.1
tzinfo-data 2.0.4
oj 3.13.9
pg_search 2.3.5
kaminari 1.2.1
acts_as_tree 2.9.1
auto_strip_attributes 2.6.0
rails-i18n 6.0.0
recaptcha 5.8.1
rest-client 2.1.0
mechanize 2.8.2
nokogiri 1.12.5
mustache 1.1.1
jwt 2.3.0
traco 5.3.2
caxlsx_rails 0.6.2
roo 2.8.3
sentry-raven 3.1.2
bzip2-ffi 1.1.0
reverse_markdown 2.1.1
babosa 2.0.0

go go1.20.3
logrus v1.9.3
viper v1.17.0
lumberjack.v2 v2.2.1
fsnotify v1.6.0
hcl v1.0.0
properties v1.8.7
mapstructure v1.5.0
go-toml v2.1.0
locafero v0.3.0
slog-shim v0.1.0
conc v0.3.0
afero v1.10.0
cast v1.5.1
pflag v1.0.5
gotenv v1.6.0
atomic v1.9.0
multierr v1.9.0
exp v0.0.0-20230905200255-921286631fa9
sys v0.12.0
text v0.13.0
ini.v1 v1.67.0
yaml.v3 v3.0.1

PostgreSQL 13.10

3. Архитектура Системы

Архитектура Система имеет структуру, отраженную в Рисунке 2. Она включает с себя публичный интерфейс, представленный для различных устройств, и CMS.

Рисунок 2 - Cтруктура Системы

Основные роли пользователей:

1. Гость, незарегистрированный посетитель. Видит публичный интерфейс.

2. Зарегистрированный пользователь. Имеет доступ к личному кабинету, может формировать список избранных материалов, использовать обратную связи и обращение в эфир, менять оформление. Регистрируется самостоятельно.

3. Редактор. Назначается администратором в CMS. Имеет доступ к CMS и функционалу создания и редактирования материалов, персон, подкастов и других текстовых и графических материалов Системы.

4. Администратор. Имеет неограниченный доступ с CMS и возможность изменять функциональные параметры Системы.

5. Главный Робот. Автоматизированная сущность, выполняющая задачи по заложенным скриптам.