Агрегатор новостей на подобии Meduza.io (командный проект) — различия между версиями
Ivsavin (обсуждение | вклад) (Новая страница, с помощью формы Новый_командный_проект) |
Ivsavin (обсуждение | вклад) (→Компоненеты (Из каких частей состоит проект?)) |
||
Строка 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 | ||
− | + | Сделать агрегацию нескольких источников, нормализацию текста (и перевод в bag-of-words), затем кластеризацию новостей за последнее время для поиска схожих тем и их развитий. | |
− | + | ||
− | + | ||
− | + | ||
− | Сделать агрегацию | + | |
Админка должна отображать текущие агрегированные темы, тему, на которую составляется новость. Также через веб-сокеты должна быть реализована совместная работа над текстом. Также печатаемый текст проверяется на поиск именованых сущностей для привязки справки по ним. | Админка должна отображать текущие агрегированные темы, тему, на которую составляется новость. Также через веб-сокеты должна быть реализована совместная работа над текстом. Также печатаемый текст проверяется на поиск именованых сущностей для привязки справки по ним. |
Версия 21:34, 29 августа 2016
Компания | 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-10 будут сформулированы на первых занятиях исходя из составленного бэклога и уровня подготовки участников проекта.
Похожие проекты
- Яндекс.Новости, Google News - агрегация
- Meduza.io - редактирование новостей
Контактная информация
- Почта: acccko@gmail.com
- Телеграмм: @acccko