Вспомнить всё и стать первыми
Продолжаем рассказывать о победителях осеннего хакатона DevDays. Герои этого интервью — команда MindMapper или «Вспомнить все». Ребята написали сервис, который на основе текстовой презентации может создать mindmap и карточки с основной информацией для быстрого повторения тем. Кому это нужно, как работает приложение и сложно ли перформить в команде с незнакомыми людьми, читайте в материале.
Команда проекта
  • Екатерина Семчук
    TeamLead — «Разработка программного обеспечения»
  • Данил Костенников
    Backend developer — «Руководитель IT-разработки»
  • Тахир Латыпов
    Backend developer — «Программное обеспечение высоконагруженных систем»
  • Мария Блинова
    Frontend developer — «Разработка программного обеспечения»
  • Ольга Ивлева
    Frontend developer — «Руководитель IT-разработки»
— Екатерина, у вас очень интересный проект — как и кому пришла идея именно такой реализации?

Екатерина Семчук
TeamLead — «Разработка программного обеспечения»
— Изначально идея моя. Она появилась после подготовки к коллоквиуму по дискретной математике в середине семестра. Объем информации был довольно большим, а вот времени на ее структурирование и повторение — совсем мало. Поэтому мысль сделать инструмент, который поможет в таких ситуациях, показалась интересной.
— Почему вы решили стать тимлидом? Как распределялись другие роли в команде?

Екатерина Семчук
TeamLead — «Разработка программного обеспечения»
— Роль тимлида досталась по авторству идеи: у меня было наиболее полное понимание, как должен выглядеть результат. Команда подобралась очень удачно по навыкам и интересам. Оля и Тахир, как более опытные в своем деле, взяли на себя роли ведущих фронт- и бэкенд разработчиков, а Мура и Данил прекрасно выступили в качестве их правых рук.
— Ребята, расскажите, как работает ваш сервис «под капотом»? Какая по качеству и формату презентация должна быть на входе?

Тахир Латыпов
Backend developer — «Программное обеспечение высоконагруженных систем»
— Приложение работает так: мы загружаем презентацию в формате PDF, разбираем ее на текст, избавляемся от метаданных и лишних символов. Затем отправляем текст в YandexGPT с подготовленным запросом, чтобы LLM-ка [Large Language Model — Прим. ред.] разобрала его на основные смыслы и построила их иерархию. Дальше запрашиваем выжимки для каждой из полученных тем в формате Markdown: его удобно рисовать на странице и хранить в базе данных, да и YandexGPT с ним хорошо работает.

Данил Костенников
Backend developer — «Руководитель IT-разработки»
— Мы тестировали приложение на презентациях среднего объема [около 30 слайдов с текстом. — Прим. ред.]. Ограничений на количество текста нет. Можно загрузить презу и с минимумом информации: mind map построится, но будет не лучшего качества.

Тахир Латыпов
Backend developer — «Программное обеспечение высоконагруженных систем»
— Пока наше приложение не умеет распознавать картинки, но это сделано специально, чтобы не утяжелять MVP. Если в будущем мы решим доработать проект, будет не сложно прикрутить более крутую LLM, ту же GPT4, которая умеет транскрибировать изображения.
— А краткая информация в карточках — это копипаст из презентации или саммари?

Тахир Латыпов
Backend developer — «Программное обеспечение высоконагруженных систем»
— Это выжимка основной информации. Но помимо данных из презентации, YandexGPT также добавляет туда некоторые дополнительные факты. То есть получается саммари из самой презентации и данных из памяти модели.
— Ольга, Мария, трудно ли вдвоем работать над одной задачей? Помогает или мешает то, что вы с разных программ, соответственно с разным опытом и разными знаниями?

Ольга Ивлева
Frontend developer — «Руководитель IT-разработки»
— То, что команда собралась с трех направлений, я считаю нашим преимуществом. Это как в реальном проекте: чтобы написать хороший продукт, нужны разные компетенции. Наш опыт и знания позволили каждому заниматься своим делом и приносить максимальную пользу.

С Мурой работать было одно удовольствие. Да, мы обе занимались фронтендом, но поделили задачи и ускорили разработку. Благодаря максимальной эффективности удалось сделать даже то, что изначально не планировали — боковую панель ранее загруженных презентаций.

Мария Блинова
Frontend developer — «Разработка программного обеспечения»
— Мы быстро нашли общий язык. У Ольги намного больше опыта во фронтенде, поэтому внутренняя организация разработки легла на нее. Моим делом было быстро вникать и оперативно выполнять подзадачи.
— А с какими сложностями в своей части работы вы столкнулись?

Мария Блинова
Frontend developer — «Разработка программного обеспечения»
— Мне было нелегко, потому что чувствовались нехватка опыта и навыков в необходимом стеке — на проекте мы использовали библиотеки React, а раньше я писала на чистом JavaScript.

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

Ольга Ивлева
Frontend developer — «Руководитель IT-разработки»
— Для меня хакатон — это, прежде всего, стресс. Темп работы, бессонные ночи приводят к снижению эффективности: очень сложно думать о хороших решениях, когда не выспался.
— Для вас это первый опыт участия в хакатоне? Что полезного для себя вы вынесли? Какие скилы прокачали (и хард, и софт)?

Данил Костенников
Backend developer — «Руководитель IT-разработки»
— Да, для меня это первый в жизни хакатон. Было интересно познакомиться с ребятами с других направлений. Ну и вообще такой формат, где ты пару дней интенсивно создаешь продукт, — любопытный опыт.

Екатерина Семчук
TeamLead — «Разработка программного обеспечения»
— Для меня это первый хакатон, как и первая работа в роли тимлида. Из хард скилов могу отметить формулировку задач как для разработчиков, так и для отчетности перед ментором. Софт скилов оказалось куда больше: я улучшила навыки презентации идеи и проекта, получила дополнительный опыт публичных выступлений и организации работы внутри команды. Основная мысль, которую я вынесла с хакатона — это то, что в таких проектах результат целиком зависит от команды, и в этом плане мне очень повезло: ребята прекрасно справились, и с ними было очень приятно работать.

Ольга Ивлева
Frontend developer — «Руководитель IT-разработки»
— Я тоже первый раз участвовала в хакатоне. Он очень сильно встряхнул меня. Интересно было смотреть, как в условиях ограниченного времени можно достичь максимального продуктового value исключительно благодаря сплоченности людей. Я была убеждена, что классная команда способна сделать, что угодно. И это убеждение только укоренилось.

Мария Блинова
Frontend developer — «Разработка программного обеспечения»
— Первый. Из хард скилов — подтянула стек фронтенд-технологий, потому что мне повезло попасть в команду с опытным разработчиком. Что касается софт скилов, я впервые попала в ситуацию, где надо было показать результат в сжатые сроки, взаимодействуя с незнакомыми людьми. Мы привыкали к формату работы друг друга, но подозреваю, что этот процесс у нас прошел очень быстро.
— Вы бы хотели дальше развивать этот проект или работать с нуля над MVP — интереснее и драйвовее?

Екатерина Семчук
TeamLead — «Разработка программного обеспечения»
— Если выпадет возможность продолжить работу над проектом таким же составом — я соглашусь не раздумывая. Идея все еще кажется мне интересной, и было бы здорово сделать полноценный продукт.

Мария Блинова
Frontend developer — «Разработка программного обеспечения»
— Конечно, было бы классно докрутить фичи, о которых мы рассказывали на презентации приложения: возможность добавлять в уже готовые mindmap и карточки новые презентации и масштабирование mindmap. Начинать новый проект сложнее с психологической точки зрения, но не менее интересно — особенно в такой команде.