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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница, с помощью формы Новый_командный_проект)
 
(Компоненеты (Из каких частей состоит проект?))
Строка 32: Строка 32:
  
 
Техническое описание устройства Медузы:
 
Техническое описание устройства Медузы:
 +
* 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), затем кластеризацию новостей за последнее время для поиска схожих тем и их развитий.
+
  
 
Админка должна отображать текущие агрегированные темы, тему, на которую составляется новость. Также через веб-сокеты должна быть реализована совместная работа над текстом. Также печатаемый текст проверяется на поиск именованых сущностей для привязки справки по ним.
 
Админка должна отображать текущие агрегированные темы, тему, на которую составляется новость. Также через веб-сокеты должна быть реализована совместная работа над текстом. Также печатаемый текст проверяется на поиск именованых сущностей для привязки справки по ним.

Версия 21:34, 29 августа 2016

Компания 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