Информационный поток
Задания вакансии материалы разработки сообщения форума
venalus
Приватное сообщение

Требуется программист для видео-портала - 4000$

22 апреля 2015 в 13:24:59(1 год 33 недели 2 дня 4 часа назад)
Описание вакансии
Структура сайта :
• Раздел главная страница - здесь отражаются анонсово все страницы сайта
• Раздел «1» представляющий собой платный каталог обучающих видео. Раздел включает: o Общую страницу всего раздела со всем контентом раздела и страницу одного материала, содержащую:  видео и описание видеоролика;  Модуль комментариев;  Модуль добавления/удаления из списка избранных;  Модель для платежей . o Модуль фильтрации видеороликов в каталоге – предоставляет возможность пользователю выбрать видеоролики по параметрам. Модуль просмотра после регистрации  Модель поделиться в соцетях  модуль Оставить Лайк
• Раздел « 2» похож по функционалу на раздел 1, но контент иной
• Раздел «3» - похож по функционалу на разделы 1 и 2, но контент иной
• Раздел Афиша с календарем событий. Есть функция добавления анонса мероприятия для читателей.
• Раздел «4» похож по функционалу на разделы 1, 2, 3 , но контент фиксированно платный.
• Раздел Блог. Здесь отражаются новости из групп из соцсетей API
• Раздел «Личный кабинет», служащий для управления платной подпиской или платным контентом. Раздел включает:

1. Мое видео
2. Мой ежедневник
3. Мои платежи
o Раздел «Мое видео» – используется для управления списком избранных видео- уроков в виде плейлиста; o Раздел «Платежи» – история платежей; o Модуль оплаты – используется для осуществления оплаты через различные платежные системы. o Модуль регистрации и авторизации на сайте – используется для осуществления регистрации и авторизации пользователей, в том числе через соцсети. o Модуль напоминания об окончании подписки. • Раздел «Мой ежедневник» – служит для сохранения событий из раздела Афиша. o Модуль добавления новой записи; • Модуль «Поиск», используемый для поиска нужного видеоролика по заданным параметрам.
• Раздел «О нас» содержит информацию о школе йоги. Используется для презентации компании, для повышения уровня доверия.
• Раздел «Помощь» содержит: o Раздел помощи по основным действиям на сайте; o Раздел часто задаваемых вопросов и ответов – FAQ; o Модуль обратной связи, который используется для получения вопросов от посетителей.
• Раздел «Отзывы и предложения» – представляет собой интегрированный в сайт модуль стороннего ресурса http://reformal.ru/. Используется для сбора отзывов и предложений от посетителей сайта.
• Раздел «Цикл семинаров» – является продающей страницей лендингового типа. Используется для продажи партнерских курсов.
• Раздел «Контакты» - для предоставления контактных данных посетителю. На данном сайте он не доработан. Нет указания телефонов, адреса, схемы проезда.
• Раздел «Вакансии», используемый для публикации информации об открытых вакансиях. В данном разделе отсутствует модуль для отклика на вакансию. Для удобства соискателей его можно реализовать.
• Раздел «Партнеры», содержащий информацию о партнерах. Используется для рекламы, обмена ссылкам и с другими весомыми ресурсами.
• Модуль интеграции с социальными сетями, позволяющий пользователям публиковать материалы сайта на своих страницах в социальных сетях.
• Модуль онлайн-консультанта, используемый для оказания помощи и ответов на вопросы посетителей в режиме онлайн.
• Баннеры на главной странице. Технологии Сайт будет разрабатываться с применением принципов адаптивного дизайна и верстки, что обеспечит правильное его отображение на экранах устройств различного размера от смартфона до монитора с большой диагональю. Страницы сайта будут сверстаны с применением HTML5 и CSS3, что обеспечит им современный внешний вид и привлекательность для посетителей. На сайте будут реализованы страницы лендингового типа.

Адаптивная верстка (компьютер, планшет, телефон)
Модуль комментариев
Модуль добавления/удаления из списка избранных
Модуль фильтрации видеороликов в каталоге
Модуль оплаты
Модуль регистрации и авторизации на сайте
Модуль напоминания об окончании подписки
Модуль добавления фото зарегистрированными участниками
Модуль оценки и комментариев от зарегистрированных участников
Модуль добавления новой записи
Модуль комментариев и отзывов
Модуль комментариев
Модуль обратной связи
Модуль интеграции с социальными сетями
Модуль онлайн-консультанта
Модуль подбора видео-контента
Модуль регистрации через соцсети
Модуль подписки на новости портала
Модуль парсинга видео из ютуб
Модуль контроля продаж: статистика продаж, отчеты по продажам, количество просмотров платного контента, информация по айпиадресам, учет трафика. Личный кабинет для партнеров продаж со сводной информацией для партнеров по продажам конкретной авторской продукции
Модуль оставить жалобу на видео

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ ХРАНЕНИЯ И ПОДАЧИ ВИДЕО.
Системы хранения видео.
1) сторонние провайдеры:
В качестве сторонних провайдеров конвертации и хранения видео файлов выступают YouTube, Вконтакте и Vimeo на выбор. В этом случае видеоматериалы загружаемые нами, автоматически публикуются в аккаунте провайдера, где проходят весь цикл обработки исходных видео файлов. Система автоматически следит за процессом конвертации у провайдера и в случае его успешного окончания уведомляет нас об этом.
2) Хранение на сервере. Необходимо подобрать сервер с полноценной налаженной инфраструктурой проводить все операции с конвертацией видео, гибко настраивать и распределенно хранить конвертированные файлы используя механизм мультисерверности.
Гибкость системы должна позволять провайдеру конвертации по умолчанию и при необходимости переопределять его для нужных категорий видеороликов - таким образом можно миновать ограничения того или иного провайдера на тип видео контента.
3) Кроме этого, если мы не хотим использовать конвертацию (в силу ограниченного хостинга например), то сайт можно наполнять, используя парсинг видео роликов, как массовый в админке, так и единичный импорт по ссылке на страницу ролика.
Широкие возможности хранения видео:
Используя YouTube API
• все ролики загружаются в аккаунт на YouTube, где конвертируются и хранятся;
• гибкая настройка публикации роликов в канале на YouTube;
• мы сможем указать категорию youtube, в которую будут загружаться ролики;
• удобный, сделанный на основе официального api, парсер роликов YouTube;
• возможность выбирать плеер для воспроизведения;
• поддержка HD воспроизведения и переключения качества при наличии возможности.
Используя API Вконтакте
• все ролики загружаются в аккаунт Вконтакте, где конвертируются и хранятся;
• есть возможность "отвязаться" от воспроизведения с ВК, скачивая исходные файлы;
• гибкий и удобный парсер роликов Вконтакте;
• возможность выбирать плеер для воспроизведения;
Используя API VImeo
• все ролики загружаются в аккаунт
• удобные параметры публикаци;
• импорт по ссылке на ролик c личного кабинета;
• импорт по ссылке с самого сайта

Локальный провайдер конвертации и хранения
• весь цикл обработки, а так же хранение и воспроизведение роликов производится с сервера или серверов (при мультисерверности);
• конвертация при помощи ffmpeg, с последующей обработкой yamdi, flvtool2 или qt-faststart - на выбор;
• поддержка пупулярных медиаконтейнеров – flv, mp4, MOv. на выбор;
• возможность брендирования (наложение watermark) на видео;
• две схемы конвертации - по очереди или одновременно;
• несколько готовых пресетов для кодирования;
• мультиформатность видео (при мультисерверности);
• возможность ограничивать продолжительность выходного файла;
• множество опций ручной настройки кодирования;
• геометрический размер видео и сохранение пропорций;
• прогресс-бар процесса конвертации в админке;
• защита по количеству соединений;
• защита от хотлинка (привязка к сессии + Nginx X-Accel-Redirect).

МУЛЬТИСЕРВЕРНОСТЬ:
Определение мультисерверности в InstantMedia означает возможность хранения, конвертации и ретрансляции на серверах, отличных от расположения основного сайта.
Мультисерверность представлена так называемыми серверами обработки. Это обычные серверы, с необходимой конфигурацией и соответствующие техническим требованиям, на которых установлен скрипт обработки нашего сайта.
В админке основного сайта мы можем создать сколь угодно серверов и назначить им свои роли: как все сразу, так и каждую по отдельности. Т.е. один сервер у вас может выполнять, например, роль исключительно конвертации, другой роль хранения или же один сервер может выполнять все роли. И так далее.
Взаимодействие между серверами происходит посредством небольшого api, обмен файлами происходит по ftp.
Безопасность и отчеты
Безопасность доступа в целом к системе мультисерверности, как для взаимодействия с api, так и для доступа в интерфейс управления вы можете гарантировано обеспечить, задав доступ по ip адресу или списку ip адресов. Доступ в интерфейс управления запаролен, а все api запросы включают в себя защищенный ключ и ряд других контролирующих параметров.
Для каждой роли сервера ведутся логи. Посмотреть их можно в интерфейсе управления в удобном виде, как по ролям, так и по отдельным id роликов основного сайта.
Мультисерверное хранение видео — внешние хранилища
За распределение серверов хранения (внешние хранилища) отвечает основной сайт. Он хранит информацию по всем серверам и их загруженность. При выборе сервера хранения система вычисляет сервер с наибольшим свободным местом и отправляет файл туда.
После того, как файл будет загружен на сервер хранения по ftp (во входящую директорию, об этом ниже), уже конкретный сервер сам определит, в какое внутреннее хранилище его переместить.
Обмен сконвертированными файлами выполняется напрямую между серверами, минуя сервер, где находится основной сайт.
Воспроизведение файлов с серверов хранения может быть реализовано:
• Apache (без стриминга), 302 редирект;
• Посредством Nginx (x-accel-redirect);
• Средствами PHP (но только для flv файлов).
Файлы защищены от "хотлинка", ссылки формируются динамически на скрипт раздачи, однако для конечного пользователя это все прозрачно.
Так же можно задать ограничения по ip при обращении к файлам. В настройках указывается количество запросов и за какой период. При превышении пользователю будет показан небольшой файл-заглушка.
На первых этапах мы планируем аренду серверов. Но сразу обговариваем масштабирование портала при покупке железа:
Внутренние хранилища сервере:
Внутренние хранилища — это по сути поддиректории в корневой папке /storages. Главная суть их заключается в том, что:
• каждое хранилище желательно делать на отдельном жестком диске, примонтировав его к директории;
• хранилища можно добавлять динамически по мере их заполнения;
• на каждое хранилище можно назначать свои типы файлов для хранения;
• распределять файлы постепенно согласно опции "Схема размещения";
• если мы задали в опциях хранить исходные файлы, то можно задать отдельное хранилище для этого.
Система следит за свободным местом на всех хранилищах видео файлов и при достижении порога свободного места, заданного в настройках, автоматически закрывает хранилище и уведомляет администратора.
Структура каталогов для хранения и обработки организована таким образом, что мы сможем использовать разные жесткие диски для увеличения производительности. Поясним на примере.
Загрузка любых файлов происходит в отдельный каталог /storages/work_files/input_files/. В этом каталоге хранятся все файлы, требующие обработки и/или перемещения во внутреннее хранилище. Как правило, под эту директорию можно выделить отдельный небольшой жесткий диск, необязательно с высоким откликом и буфером.
В случае конвертации, файлы конвертируются в директорию /storages/work_files/video/output/. Ее тоже желательно вынести на отдельный жесткий диск, что даст большой прирост в производительности при конвертации.
После процесса конвертации файл переносится уже непосредственно во внутренне хранилище, откуда он далее будет воспроизводится. Управлять хранилищами вы можете в админке.
Роль конвертации
После загрузки файла, основной сайт выбирает сервер конвертации по принципу наименее загруженного в данный момент. Для каждого сервера фиксируется текущее количество выполняемых задач, а так же в настройках задается максимальное количество задач в очереди, при достижении которого, система будет пытаться искать другой сервер конвертации. Однако, если все сервера загружены в данный момент, файл все равно станет в очередь к одному из серверов.
После выбора сервера, система загружает исходный файл по ftp на сервер и уведомляет его по api о том, что появился новый файл, его имя, набор форматов, в которые нужно конвертировать и на какой сервер хранения посл конвертации его переместить. Задание становится в очередь.
Обрабатывается очередь согласно схемы конвертации (одновременно или по очереди). За прогрессом конвертации можно следить на основном сайте в админке.
Как только файл конвертируется в первый формат, ролик на основном сайте сразу же станет доступным для просмотра, и по мере выполнения конвертации, будут появляться новые форматы (опция выбора качества в плеерах) для просмотра.

Роль ретрансляции
В админке основного сайта для провайдеров, поддерживающих ретрансляцию, для каждого в отдельности можно задать свой сервер ретрансляции. Это будет означать, что роль проксирования трафика от провайдера будет выполнять другой сервер, а не тот, на котором находится основной сайт. Что позволит существенно снять нагрузку с сайтов, в полной мере использующих данную функцию.
В настройках ретрансляции можно задать скорость отдачи, приоритет качества при воспроизведении, и самое интересное, это опция "Отвязывать от провайдера после воспроизведения".
Она позволяет после первого воспроизведения закешировать воспроизводимый файл у себя, а далее, в зависимости от опции "Менять провайдера на основном сайте после отвязки" соответственно выполнить заданное действие. В чем основная суть: мы можем не менять провайдера на основном сайте, система "будет думать", что ретранслирует файл, хотя по факту будет воспроизводиться уже из кеша нашего сервера. Это полезно при конфликтных ситуациях с хостингами, откуда у нас идет ретрансляция, т.к. в любой момент мы можем очистить кеш.
Требования к серверу ретрансляции самые минимальные: от 1 Гб ОЗУ (в зависимости от того, какие файлы будут ретранслироваться), минимум дискового пространства (если кеширование не будет включено). Но самое главное конечно для ретрансляции, это широкий канал.


КАТЕГОРИИ
Категории нашего портала это важная составляющая системы. Принадлежность ролика к категории влияет на его полный url, определяет поля, которые у него будут, провайдера конвертации, размеры и параметры доступа групп пользователей.
Перечислим основные особенности категорий:
• seolink для категорий (опционально);
• неограниченная вложенность категорий;
• просмотр категорий в виде дерева;
• групповые операции над роликами;
• иконки на каждую категорию;
• свой файл шаблона вывода на категорию;
• доступ по группам для категорий;
• ограничение просмотра для пользователей;
• настраиваемые размеры роликов;
• возможность формировать дополнительные поля у роликов категории;
• рубрики категорий;
• возможность назначить своего провайдера конвертации на категорию;
• Персональные SEO параметры.
Все это позволит достаточно гибко настраивать как внешний вид каждой категории, так и ее системные параметры.



РУБРИКИ
Рубрики это производные от категорий, но с более расширенными функциями. Они позволяют сгруппировать ролики внутри категории по определенному признаку, например: категория "Мульфильмы", в ней соответственно находятся все ролики с мультипликацией; но в этой категории есть рубрика "Смешарики", к которой принадлежат видеоматериалы данного мультсериала. Одна рубрика может принадлежать к сколь угодно категориям.
Список возможностей:
• для каждой рубрики формируется уникальный seolink, как в автоматическом, так и ручном режиме;
• можно группировать рубрики по тематике;
• у каждой рейтинг рубрик;
• комментарии к рубрикам;
• неограниченное количество постеров (фотографий) к рубрике;
• возможность задания своих css правил для рубрики - уникальное оформление;
• для каждой рубрики можно указать свой файл шаблона;
• SEO оптимизация вывода;
• каждая рубрика может выступать как плейлист и ролики в ней будут воспроизводиться последовательно.
Рубрики очень полезны и удобны, группируют видеоролики по определенным признаками и связанно показываются.




УПРАВЛЕНИЕ ВИДЕО-МАТЕРИАЛОМ
Управление видеороликами на сайте - это чуть ли не самый важный и главный процесс.
Удобная форма добавления ролика: загрузка, добавить по ссылке, добавить по коду на выбор

Очень удобный поиск роликов в админке для управления. Поиск по параметрам, автозавершение искомых слов и удобная подсветка найденного.


• расширенный вывод рейтинга ролика с процентным индикатором голосов;
• возможность добавлять ролики в избранное;
• личные плейлисты пользователей;
• возможность жаловаться на ролик, количество жалоб, которых набрал ролик указывается в админке;
Коды для встраивания бесплатных роликов на сторонние сайты формируются на выбор: посредством iframe, прямыми кодами от провайдеров или же совместно на выбор пользователя. Разумеется, перед копированием можно выбрать размеры из списка или задать свои.

Доступ и поля ролика
Разграничение прав доступа ко всему
• добавление роликов;
• редактирование роликов;
• модерация;
• управление рубриками;
• смена категории;
• ограничения на добавлению ролика по коду;
Поля на странице просмотра ролика
• описание ролика может быть как текстовым или с поддержкой bb-кодов, так и используя полноценный html редактор;
• настраиваемая видимость ролика
• возможность отключения комментариев для ролика;
• возможность отключения функции встраивания ролика;
• возможность присвоить флаг "18+"; т.д.
• администратор имеет возможность присвоить флаги "хит", «новое» с последующим выводом в одноименном модуле;
• возможность добавить любое количество дополнительных полей через конструктор форм, ролики каждой категории могут иметь свой набор дополнительных полей.

УПРАВЛЕНИЯ РЕКЛАМОЙ
В системе заложено гибкое и удобное управление показом рекламы. На данный момент доступны следующие типы рекламных блоков:
• перед показом видео, после нажатия кнопки "плей" - pre-roll;
• перед показом видео, сразу на странице - псевдо pre-roll;
• на странице ролика в заданной позиции.
Отдельно подчеркнем тип "псевдо pre-roll" - он позволяет вставлять перед показом ролика тизерные рекламные блоки.

Рекламные блоки можно привязывать к категориям, рубрикам, задавать длительность рекламного блока, длительность кнопки "пропустить", а так же время суток для показа.
Рекламным блокам задается порядок показа, заложена возможность определенные рекламные блоки показывать пользователю один раз.

SEO оптимизации
SEO оптимизации в системе должно быть уделено огромное внимание. Для всех разделов системы, будь то категория, рубрика или сам ролик, формируются мета-теги keywords и description, как в автоматическом режиме, так и в ручном.
На странице видеоролика генерируются теги по протоколу OpenGraphProtocol и согласно рекомендаций Яндекс. Кроме этого, должна быть полная поддержка формата oEmbed, генерируются как xml ссылка так и json - все исключительно по стандарту.
Плеер на странице воспроизведения ролика формируется посредством html разметки - по сути самого flash (или html5) плеера на странице нет, он подгружается при нажатии "плей". В случае наполнения сайта парсингом с видеохостингов, прямые ссылки на провайдера исключены.
Настраиваемый блок "Похожие ролики" так же играет немаловажную роль при ранжировании поисковой системой..
Отклики(2)
Для того, чтобы добавить отзыв, Вам необходимо авторизоваться