Агрегатор новостей на подобии Meduza.io (командный проект)
Компания | IPONWEB |
Учебный семестр | Осень 2016 |
Учебный курс | 3-й курс |
Максимальное количество студентов, выбравших проект: 3-4 | |
Содержание
|
Что это за проект?
Агрегатор новостных сайтов, также кластеризует новости, находя похожие темы. Также есть админка для коллективной работы над текстами новостей с привязкой к собранным темам.
Чему научатся студенты? Что самое интересное в проекте?
- Пример разработки системы агрегации
- Обработка и анализ текста
- Разработка системы взаимодействия в реальном времени
Организация работы (Как студенты будут работать в команде?)
Основные моменты взаимодействия:
- Непрерывня интеграция: линтеры кода, прогон тестов, покрытие тестами, сборка пакета и выкладка на прод, работа с конфигурациями. Настройка на примере Jenkins или Phabricator. Работа с конфигурациями через Puppet (или, возможно, Docker или Vagrant)
- Гибкая методология разработки: бэклог, организация спринтов, оценка сложности задач и сопоставление с фактически потраченным, демо. Технически на примере Trello, RedMine или Phabricator
- В группе каждые 2 недели (спринт) переходит роль менеджера проекта, чтобы каждый мог попробовать роль пару раз и на планирование не забивали.
- Взаимные код-ревью: все ревьюят всех.
- Удаленная работа, встречаться нечасто (например, в конце каждого спринта), но раз в 2-3 дня обязательно синхронизовать результаты и планы в слаке/телеграмме или по почте.
Компоненты (Из каких частей состоит проект?)
- Агрегация и работа с разными источниками.
- Кластеризация новостей, склеивание по общим темам, возможно склеивание в истории с развитием.
- Параллельная работа в админке (см. Описание Медузы)
- Редактор новости: проверка правописания, выявление именованных сущностей и рекомендации справки о них, поиск новостей по этой же теме по мере написания материала.
- Составление рекомендаций связанного контента: по тексту и корректировка по поведению пользователей
Техническое описание устройства Медузы:
- https://medium.com/meduza-dev/-9dbf37861e11#.tcci76sag
- https://medium.com/meduza-dev/-f86a924c09a2#.uqcmksrtt
- https://medium.com/meduza-how-it-works/-1a99202d27a3#.uocxelhaj
Сделать агрегацию нескольких источников, нормализацию текста (и перевод в 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