Расчет разработки приложения: сервер JS-интерактива на Node.JS

Цена договорная • безналичный расчёт
18 января 2016, 13:29 • 1 отклик • 44 просмотра
Предупреждаю заранее, пока это не сам проект, а лишь «тендер» в виде поиска кандидатов.

Условия:

  1. Строго компания, никакого частного лица или группы лиц, никакого ИП.
  2. Компания может состоять из фрилансеров-разработчиков, но должна иметь реальный офис в Москве с ключевыми лицами в виде директора, PM, главного архитектора/тимлида и т.д. в зависимости от структуры компании.
  3. Предпочтение отдается компаниям с офисом в Москве, но рассмотрим и прочие варианты, имеющие офис в РФ.
  4. Прозрачный контроль – договорились, приехали в офис, проконтролировали процесс.
  5. Компания должна существовать больше года.
  6. Реальное портфолио из живых проектов (во множественном числе, не один!) с применением технологий JavaScript, Node.JS, HTML5, CouchDB, MongoDB.
  7. Обязателен план-график в виде диаграммы Ганта.
  8. Обязательный доступ в систему управления проектами/багтрек, особенно если это Redmine, OpenProject, Jira.
  9. Взаимодействие с нашим архитектором.
  10. Обязательно подписываем NDA (соглашение о неразглашении) без него описанное ниже задание будет крайне абстрактное.
  11. Строгое документирование кода (аннотации в коде практически для всего на свете).
Задание:

Данное задание является связующим звеном для других заданий:
http://freelansim.ru/tasks/134115
http://freelansim.ru/tasks/134119


Необходим сервер (видимо на Node.JS, т.к. очень много кода на JavaScript, но рассмотрю и иные варианты при обосновании), работающий строго с NoSQL DB (предпочтение CouchDB и MongoDB, но выслушаю иное мнение).

Основные функции данного сервера:

Сервер является связующим звеном ряда компонентов, среди которых JS-плеер описанный в другом задании, плееры для iOS/Android, не описанные в заданиях и разработанные нами самостоятельно. Так же данный сервер связывает компонент редактора, описанный в задании по ссылке выше и ряд иных компонентов, о которых пойдет речь позже.

  1. Сервер в первую очередь реализует REST API для прочих компонентов с защитой по HTTP SSL.
  2. Выполняет авторизацию приложения-редактора, описанного в задании по ссылке выше, без разграничения прав, только на уровне "есть доступ/нет доступа".
  3. Выполняет регистрацию новых пользователей (рабочих мест редактора).
  4. Загружает и сохраняет пакеты или структуру каталогов с JS-приложением, созданном в редакторе для вывода интерактива. С возможностью просмотра списка, удаления, редактирования и т.д. (согласовывается с приложением-редактором).
  5. Дистрибьюция данного приложения-интерактива в плеер, описанный по ссылке в задании выше или же в наши собственные плееры с поддержкой JS/HTML5. Отправка приложения в плеер и отмена отправки (показ прозрачной пустоты без кода) осуществляется по сигналу в API сервера или по сигналу с плеера, когда он читает файл и отсылает таймкод на сервер (в случае если интерактив привязан к таймкоду).
  6. Дистрибуция в плееры служебного кода (счетчики, сборщики метаданных (HTTP-клиент, IP-клиента и т.д., прочие функции, сокрытые до подписания NDA)).
  7. Сбор откликов на интерактивные кнопки через API, хранение и предоставление для приложения аналитики (описывается в отдельном задании).
  8. Масштабируемость путем линейного увеличения количества серверов приложений и серверов БД.
  9. Интеграция "чтение/запись" данных из личного кабинета портала компании (подробнее после подписания NDA, портал разрабатывается внутри компании собственными разработчиками и поддерживается в актуальном систоянии, готовы к взаимодействию).

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