Агрегатор новостей на подобии Meduza.io (командный проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница, с помощью формы Новый_командный_проект)
 
 
(не показано 6 промежуточных версии 3 участников)
Строка 6: Строка 6:
 
|number_of_students=3-4
 
|number_of_students=3-4
 
|categorize=yes
 
|categorize=yes
 +
|is_archived=yes
 
}}
 
}}
  
 
=== Что это за проект? ===
 
=== Что это за проект? ===
Агрегатор новостных сайтов, также кластеризует новости, находя похожие темы. Также есть админка для коллективной работы над текстами новостей с привязкой к собраным темам.
+
Агрегатор новостных сайтов, также кластеризует новости, находя похожие темы. Также есть админка для коллективной работы над текстами новостей с привязкой к собранным темам.
  
 
=== Чему научатся студенты? Что самое интересное в проекте? ===
 
=== Чему научатся студенты? Что самое интересное в проекте? ===
Строка 24: Строка 25:
 
* Удаленная работа, встречаться нечасто (например, в конце каждого спринта), но раз в 2-3 дня обязательно синхронизовать результаты и планы в слаке/телеграмме или по почте.
 
* Удаленная работа, встречаться нечасто (например, в конце каждого спринта), но раз в 2-3 дня обязательно синхронизовать результаты и планы в слаке/телеграмме или по почте.
  
=== Компоненеты (Из каких частей состоит проект?) ===
+
=== Компоненты (Из каких частей состоит проект?) ===
 
* Агрегация и работа с разными источниками.
 
* Агрегация и работа с разными источниками.
* Кластеризация новостей, склеивание по общим темам, возможно склеивание в истории с равзитием.
+
* Кластеризация новостей, склеивание по общим темам, возможно склеивание в истории с развитием.
 
* Параллельная работа в админке (см. Описание Медузы)
 
* Параллельная работа в админке (см. Описание Медузы)
 
* Редактор новости: проверка правописания, выявление именованных сущностей и рекомендации справки о них, поиск новостей по этой же теме по мере написания материала.
 
* Редактор новости: проверка правописания, выявление именованных сущностей и рекомендации справки о них, поиск новостей по этой же теме по мере написания материала.
Строка 32: Строка 33:
  
 
Техническое описание устройства Медузы:
 
Техническое описание устройства Медузы:
 +
* https://medium.com/meduza-dev/-9dbf37861e11#.tcci76sag
 +
* https://medium.com/meduza-dev/-f86a924c09a2#.uqcmksrtt
 +
* https://medium.com/meduza-how-it-works/-1a99202d27a3#.uocxelhaj
  
https://medium.com/meduza-dev/-9dbf37861e11#.tcci76sag
+
Сделать агрегацию нескольких источников, нормализацию текста (и перевод в bag-of-words), затем кластеризацию новостей за последнее время для поиска схожих тем и их развитий.
https://medium.com/meduza-dev/-f86a924c09a2#.uqcmksrtt
+
https://medium.com/meduza-how-it-works/-1a99202d27a3#.uocxelhaj
+
 
+
Сделать агрегацию нескоьких источников, нормализацию текста (и перевод в bag-of-words), затем кластеризацию новостей за последнее время для поиска схожих тем и их развитий.
+
  
 
Админка должна отображать текущие агрегированные темы, тему, на которую составляется новость. Также через веб-сокеты должна быть реализована совместная работа над текстом. Также печатаемый текст проверяется на поиск именованых сущностей для привязки справки по ним.
 
Админка должна отображать текущие агрегированные темы, тему, на которую составляется новость. Также через веб-сокеты должна быть реализована совместная работа над текстом. Также печатаемый текст проверяется на поиск именованых сущностей для привязки справки по ним.
Строка 57: Строка 57:
 
=== Критерии оценки ===
 
=== Критерии оценки ===
 
Минимальные требования (на 4-5):
 
Минимальные требования (на 4-5):
* Агрегация по крайне мере 10 источников новостей на русском языке
+
*Агрегация по крайне мере 10 источников новостей на русском языке
* Нормализация (составление bag of words, векторной модели новостей)
+
*Нормализация (составление bag of words, векторной модели новостей)
* Кластеризация новостей по схожести, определение дубликатов
+
*Кластеризация новостей по схожести, определение дубликатов
 +
*Веб-сайт с лентой новостей с кешированием.
 +
 
 +
Требования (на 6-7):
 +
*Выделение именованных сущностей в тексте и связка с другими новостями по ним или страницами википедии.
 +
*Агрегация добавляемых аккаунтов социальных медиа: фейсбук, жж. + Несложный классификатор, похож ли пост на информационный повод (например, по длине поста, наличию именованных сущностей, слов из заданного списка, ссылок)
 +
*Админка для работы с новостями на веб-сокетах для совместных правок и работы выпускающего редактора: редактирование текста, блокировка полей для других при редактировании, сохранение истории изменений и чат/комментарии.
 +
 
 +
Требования (на 8-10):
 +
*Интеграция с Яндекс.Метрикой через API - подгрузка и кеширование данных о просмотревших новость (демография, интересы, регион и тд)
 +
*Система персональной рекомендации контента на основе фич новости и данных из Метрики.
 +
*Конструктор верстки текста новости. + AMP версия.
 +
*Работа с твиттером: мониторинг трендов, отслеживание добавляемых аккаунтов, экспорт и визуализация твиттов и диалогов в новости.
 +
*Пуш-уведомления о новостях.
 +
 
 +
Требования (на вероятность создать в итоге успешный сервис для СМИ):
 +
* Код соответствует современным стандартам кодирования
 +
* Актуальная документация по работе процессов сервиса
 +
* Покрытие тестами, юнит-тесты, функциональные и интеграционные тесты
 +
* Проведен UX-анализ основных интерфейсов и сценариев пользователей
  
Точные требования на 6-10 будут сформулированы на первых занятиях исходя из составленного бэклога и уровня подготовки участников проекта.
+
''Точные требования на 6-10 будут сформулированы на первых занятиях исходя из составленного бэклога и уровня подготовки участников проекта.''
  
 
=== Похожие проекты ===
 
=== Похожие проекты ===

Текущая версия на 13:01, 8 октября 2017

Компания IPONWEB
Учебный семестр Осень 2016
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 3-4


Внимание! Данный проект находится в архиве и реализован не будет.

Что это за проект?

Агрегатор новостных сайтов, также кластеризует новости, находя похожие темы. Также есть админка для коллективной работы над текстами новостей с привязкой к собранным темам.

Чему научатся студенты? Что самое интересное в проекте?

  • Пример разработки системы агрегации
  • Обработка и анализ текста
  • Разработка системы взаимодействия в реальном времени

Организация работы (Как студенты будут работать в команде?)

Основные моменты взаимодействия:

  • Непрерывня интеграция: линтеры кода, прогон тестов, покрытие тестами, сборка пакета и выкладка на прод, работа с конфигурациями. Настройка на примере Jenkins или Phabricator. Работа с конфигурациями через Puppet (или, возможно, Docker или Vagrant)
  • Гибкая методология разработки: бэклог, организация спринтов, оценка сложности задач и сопоставление с фактически потраченным, демо. Технически на примере Trello, RedMine или Phabricator
  • В группе каждые 2 недели (спринт) переходит роль менеджера проекта, чтобы каждый мог попробовать роль пару раз и на планирование не забивали.
  • Взаимные код-ревью: все ревьюят всех.
  • Удаленная работа, встречаться нечасто (например, в конце каждого спринта), но раз в 2-3 дня обязательно синхронизовать результаты и планы в слаке/телеграмме или по почте.

Компоненты (Из каких частей состоит проект?)

  • Агрегация и работа с разными источниками.
  • Кластеризация новостей, склеивание по общим темам, возможно склеивание в истории с развитием.
  • Параллельная работа в админке (см. Описание Медузы)
  • Редактор новости: проверка правописания, выявление именованных сущностей и рекомендации справки о них, поиск новостей по этой же теме по мере написания материала.
  • Составление рекомендаций связанного контента: по тексту и корректировка по поведению пользователей

Техническое описание устройства Медузы:

Сделать агрегацию нескольких источников, нормализацию текста (и перевод в bag-of-words), затем кластеризацию новостей за последнее время для поиска схожих тем и их развитий.

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

Какие будут использоваться технологии?

Язык разработки непринципиален, подойдет любой, в котором удобно работать с HTTP-запросами, взаимодействовать с СУБД и разрабатывать веб-сервер (например, Python, Ruby, JavaScript)

В качестве платформы подойдут AWS или Google Cloud

Какие начальные требования?

  • Базовое понимание HTTP, опыт работы с API.
  • Опыт веб-разработки

Темы вводных занятий

  • Взаимодействие в команде, методология Agile
  • Архитектура разрабатываемого проекта
  • Составление бэклога и планирование спринтов

Критерии оценки

Минимальные требования (на 4-5):

  • Агрегация по крайне мере 10 источников новостей на русском языке
  • Нормализация (составление bag of words, векторной модели новостей)
  • Кластеризация новостей по схожести, определение дубликатов
  • Веб-сайт с лентой новостей с кешированием.

Требования (на 6-7):

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

Требования (на 8-10):

  • Интеграция с Яндекс.Метрикой через API - подгрузка и кеширование данных о просмотревших новость (демография, интересы, регион и тд)
  • Система персональной рекомендации контента на основе фич новости и данных из Метрики.
  • Конструктор верстки текста новости. + AMP версия.
  • Работа с твиттером: мониторинг трендов, отслеживание добавляемых аккаунтов, экспорт и визуализация твиттов и диалогов в новости.
  • Пуш-уведомления о новостях.

Требования (на вероятность создать в итоге успешный сервис для СМИ):

  • Код соответствует современным стандартам кодирования
  • Актуальная документация по работе процессов сервиса
  • Покрытие тестами, юнит-тесты, функциональные и интеграционные тесты
  • Проведен UX-анализ основных интерфейсов и сценариев пользователей

Точные требования на 6-10 будут сформулированы на первых занятиях исходя из составленного бэклога и уровня подготовки участников проекта.

Похожие проекты

  • Яндекс.Новости, Google News - агрегация
  • Meduza.io - редактирование новостей

Контактная информация

  • Почта: acccko@gmail.com
  • Телеграмм: @acccko