Агрегатор новостей на подобии Meduza.io (командный проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Компания 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-10 будут сформулированы на первых занятиях исходя из составленного бэклога и уровня подготовки участников проекта.

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

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

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

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