Техновипуск Mail.ru Group 2019

Техновипуск Mail.ru Group 2019

Наприкінці травня наші випускники з Технопарку (МДТУ ім. Баумана), Технотреку (МФТІ), Техносфери (МДУ ім. Ломоносова) та Технополісу (СПбПУ Петра Великого) захистили свої дипломні проекти. На роботу виділялося три місяці, і хлопці вклали у свої дітища знання та навички, отримані за два роки навчання.

Усього на захисті було 13 проектів, які вирішували різні завдання у різних галузях. Наприклад:

  • хмарне сховище з криптографічним шифруванням файлів;
  • платформа для створення інтерактивного відео (з різною кінцівкою);
  • смарт-дошка для гри в реальні шахи по мережі;
  • архітектура для інтелектуального пошуку медичних статей;
  • ПЗ на навчання дітей молодшого шкільного віку основам алгоритмізації.

А також проекти від бізнес-юнітів:

  • CRM система для месенджера ТамТам;
  • веб-сервіс пошуку тематичних фото на карті для Однокласників;
  • сервіс геокодування адрес для MAPS.ME.

Сьогодні докладніше розповімо вам про п'ять проектів наших випускників.

Інтелектуальний пошук медичних статей

Техновипуск Mail.ru Group 2019

Існує безліч напрямів у науковій сфері, у кожному з яких ведуться дослідження, публікується величезна кількість статей у різних журналах. Це інформаційні технології, фізика, математика, біологія, медицина та багато інших.

Автори проекту вирішили сфокусуватися на медичному напрямі Майже всі статті з медичної тематики зібрані на порталі PubMed. Портал надає свій пошук. Однак його можливості дуже обмежені. Тому хлопці покращили систему пошуку, додали підтримку довгих запитів та можливість уточнювати запити за допомогою тематичного моделювання.

Техновипуск Mail.ru Group 2019
Пошукова видача містить ранжований список документів з визначенням їх тем, а слова та терміни, що належать до цих тем, підсвічуються завдяки ймовірності тематичного моделювання. Користувач може натиснути на підсвічені терміни, звузивши пошуковий запит.

Техновипуск Mail.ru Group 2019
Щоб пошук по величезній базі PubMed виконувався швидко, автори написали свій пошуковий движок, який легко інтегрується в будь-яку інфраструктуру.

Пошук здійснюється у три етапи:

  1. З допомогою зворотного індексу відбираються документи-кандидати.
  2. Застосовується ранжування кандидатів за алгоритмом BM25F, який враховує різні поля документів під час пошуку. Таким чином, слова в заголовку мають більшу вагу, ніж слова в анотації.
  3. Також використовують систему кешування для прискорення обробки частотних запитів.

Техновипуск Mail.ru Group 2019

Архітектура мікросервісна:

Техновипуск Mail.ru Group 2019
В основному між сервісами передаються структуровані текстові дані. Для високої швидкості передачі використовується GRPC – фреймворк для зв'язку модулів у мікросервісній архітектурі. Також застосовується серіалізація даних за допомогою формату обміну повідомленнями Protobuf.

Які компоненти включає система:

  • Сервер обробки вхідних запитів користувача на Node.js.
  • Балансування навантаження запитів за допомогою проксі-сервера nginx.
  • Сервер на Flask реалізує REST API і отримує запити, що переадресовуються з Node.js.
  • Усі вихідні та оброблені дані, а також інформація про запити зберігається у MongoDB.
  • Всі запити на отримання релевантної видачі на тематизацію документів надходять до RabbitMQ.

Приклад пошукової видачі:

Техновипуск Mail.ru Group 2019

Що планується зробити надалі:

  • Рекомендації при складанні оглядів на задану тематику (визначення важливих тем у документі та пошук за підмножинами документів).
  • Пошук за PDF-файлами.
  • Семантична сегментація текстів.
  • Відстеження тем та трендів у часі.

Команда проекту: Федір Петряйкін, Владислав Дорожинський, Максим Находнов, Максим Філін

Block Log

Техновипуск Mail.ru Group 2019

Сьогодні при навчанні програмування та інформатики у дітей молодшого шкільного віку (5 – 7 класи) виникають проблеми із засвоєнням матеріалу. Крім того, якщо учні хочуть виконувати завдання вдома, то доводиться ставити на свої комп'ютери додаткове ПЗ. Вчителям доводиться перевіряти велику кількість однотипних розв'язків задач, а у разі віддаленого навчання ще й розробляти методику для отримання завдань від учнів.

Автори проекту Block Log дійшли висновку: навчаючи дітей молодшого шкільного віку основам алгоритмізації, слід наголошувати не так на заучування команд мови програмування, але в побудова схем алгоритмів. Це дозволить учням витрачати час та сили на проектування алгоритму, а не набивання громіздких синтаксичних конструкцій.

Платформа Block Log дозволяє:

  1. Створювати та редагувати блок-схеми.
  2. Запускати створені блок-схеми та бачити результат їхньої роботи (вихідні дані).
  3. Зберігати та завантажувати створені проекти.
  4. Малювати растрові зображення (генерація зображення з урахуванням створеного дитиною алгоритму).
  5. Отримувати інформацію про складність роботи створеного алгоритму (з урахуванням кількості виконаних у алгоритмі операцій).

Передбачається поділ ролей на викладачів та учнів. Будь-який користувач набуває статусу учня, для отримання статусу викладача необхідно звернутися до адміністратора системи. Викладач може не тільки вводити опис та умови завдань, але й створювати автоматизовані тести, які будуть автоматично запущені, коли учень надішле рішення задачі до системи.

Браузерний редактор Block Log:

Техновипуск Mail.ru Group 2019

Вирішивши завдання, учень може завантажити рішення та побачити результати:

Техновипуск Mail.ru Group 2019

Платформа складається з фронтенд-додатку на Vue.js та бекенд-додатку на Ruby on Rails. Як база даних використовується PostgreSQL. Для спрощення розгортання всі компоненти системи упаковані в Docker-контейнери та збираються за допомогою Docker Compose. Настільна версія Block Log створена на основі фреймворку Electron. Для складання коду на JavaScript було використано Webpack.

Команда проекту: Олександр Барульов, Максим Колотовкін, Кирило Кучеров.

CRM-система для месенджера ТамТам

Техновипуск Mail.ru Group 2019

CRM є інструментом для зручної взаємодії бізнесу з користувачами ТамТам. Реалізовано такі функції:

  • конструктор ботів, що дозволяє створювати ботів без навичок програмування. За кілька хвилин можна отримати повністю робочого бота, який зможе не лише показувати якусь інформацію користувачам, а й збирати дані, у т.ч. файли, які адміністратор може переглянути надалі.
  • RSS. Можна легко підключити RSS до будь-якого каналу.
  • Відкладений постінг. Дозволяє надсилати та видаляти повідомлення в заздалегідь заданий час.

Також команда взяла участь у тестуванні Bot API, створивши кілька самописних ботів, таких як бот для ЧС світу з хокею 2019, бот для реєстрації/авторизації у нашому сервісі, бот для CI/CD.

Інфраструктура рішення:

  • Management-сервер містить систему моніторингу за кожним сервером та кожним Docker-контейнером на ньому, щоб швидко та зручно виявляти проблему та вирішувати її, дивитися різні метрики та статистику використання. Також є система дистанційного керування конфігурацією нашої програми.
  • Staging-сервер містить актуальну версію нашої програми, доступну для загального тестування командою розробки.
  • Management- та staging-сервери доступні лише через VPN розробникам, а production-сервер містить релізну версію програми. Він ізольований від рук розробників і доступний лише кінцевого користувача.
  • CI/CD-система реалізована за допомогою Github та Travis, нотифікація за допомогою кастомного бота в ТамТам.

Техновипуск Mail.ru Group 2019

Архітектура програми є модульним рішенням. Програма, база даних, менеджер конфігурацією та моніторинг запущені в окремих Docker-контейнерах, що дозволяє абстрагуватися від середовища запуску, змінювати або перезапускати окремий контейнер. Створення топології мережі та керування контейнерами здійснюється за допомогою Docker Compose.

Техновипуск Mail.ru Group 2019

Команда проекту: Олексій Антуф'єв, Єгор Горбатов, Олексій Котелевський.

ForkMe

Техновипуск Mail.ru Group 2019

Проект ForkMe – це платформа для перегляду інтерактивних відео, де ви можете сконструювати свій ролик та показати його друзям. Навіщо потрібні інтерактивні відео, якщо є звичайні?

Нелінійний сюжет відео та можливість самому вибирати продовження дозволяють залучити глядача, а творці контенту зможуть показувати унікальні історії, на сюжет яких впливатимуть користувачі. Також творці контенту, вивчаючи статистику переходів у відео, зможуть зрозуміти, що найбільше цікавить аудиторію та робити матеріали привабливішими.

Під час розробки проекту хлопці надихалися інтерактивним фільмом Bandersnatch від Netflix, який зібрав багато переглядів та хороших відгуків. Коли MVP вже було написано, з'явилася новина, що й Youtube планує запустити майданчик для інтерактивних серіалів, що вкотре підтверджує популярність цього напряму.

MVP включає: інтерактивний плеєр, конструктор відео, пошук за вмістом і тегами, добірки відео, коментарі, перегляди, рейтинги, профілі каналу і користувача.

Техновипуск Mail.ru Group 2019

Технологічний стек, який використовували у проекті:

Техновипуск Mail.ru Group 2019

Як планується розвивати проект:

  • збір статистики та інфографіка про переходи у відео;
  • повідомлення та особисті повідомлення для користувачів майданчика;
  • версії під Android та iOS.

Після цього планується додати:

  • створення відео-історій із телефону;
  • редагування завантажених фрагментів відео (наприклад, обрізання);
  • створення та запуск інтерактивної реклами у плеєрі.

Команда проекту: Морєв Максим (fullstack-розробник, займався архітектурою проекту) та Маслов Роман (fullstack-розробник, займався дизайном проекту).

On-Line-On-Board

Техновипуск Mail.ru Group 2019

Техновипуск Mail.ru Group 2019

Сьогодні батьки багато уваги приділяють розумовому розвитку дітей, а діти цікавляться інтелектуальними іграми. Тому знову набирають популярності шахи. І хоч шахи загалом досить популярні, проте знайти собі регулярного суперника для ігор проблематично. Тому багато хто користується шаховими онлайн-сервісами, незважаючи на те, що чимало гравців вважають за краще грати «наживо», справжніми фігурами. Однак при грі в шахи людина прикладає багато розумових зусиль та втомлюється, а ця втома доповнюється негативним впливом від сидіння за комп'ютером чи смартфоном. У результаті мозок перевантажується вже після двох партій.

Всі ці фактори підштовхнули авторів до ідеї проекту On-Line-On-Board, який складається з трьох частин: фізичної шахівниці, настільного додатка та веб-сервісу. Дошка є звичайним шаховим полем, яке розпізнає положення фігур і за допомогою світлової індикації позначає ходи противника. Дошка підключається USB до ПК і зв'язується з десктопним додатком. У режимі навчання (і дітей) підсвічуються ваші можливі ходи.

Додаток перебирає основні функції управління дошкою, що дозволяє сильно скоротити її вартість і винести реалізацію більшості функцій програмний рівень. Програма пов'язується з веб-сервісом, головна цінність якого – динамічне оновлення.

Основний сценарій використання продукту: одна людина грає на сервісі, друга – на фізичній дошці, підключеній до сервісу. Тобто сервіс перебирає комунікативну функцію.

Команда проекту: Данило Тучин, Антон Дмитрієв, Сашко Кузнєцов.

Детальніше про наші освітні проекти ви можете почитати цим посиланням. І частіше заходьте на канал ТехнострімТам регулярно з'являються нові навчальні відео про програмування, розробку та інші дисципліни.

Джерело: habr.com

Додати коментар або відгук