Black Friday x2 на devby: платите за одно размещение — получаете два. До 30.11
Support us

Чем полезны хакатоны. История одного проекта

2 комментария
Чем полезны хакатоны. История одного проекта

Не секрет, что идеологически правильный хакатон — это то мероприятие, которое помогает годные идеи, витающие в воздухе, воплотить в приносящие пользу обществу или компании проекты. Так, на очередном внутреннем хакатоне EPAM собрались команды, которые решали большую задачу — улучшение жизни офиса и его сотрудников. 

Победителем стала команда Voblačka, которая, к слову, не новичок в такого рода мероприятиях. Ребята смогли прийти к поставленной цели красиво и ярко. И пока где-то в офисах EPAM герои статьи воплощают проект в жизнь, мы расскажем вам о талантливой команде и их эффективной разработке.

Читать далее

Voblačka

Предыстория

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

За год Voblačka набралась сил, опыта, и начала работать над новой идеей. Формат java-хакатона особенный: за восемь напряженных часов работы им удалось создать мобильное приложение для платформы Android. Команда учла, как и что стоит подготовить заранее, как распределить задачи чтобы каждый на разных этапах смог быть вовлечённым в конкретное задание или помогать товарищу, как обсуждать и решать спорные вопросы и достигать консенсуса в условиях ограниченного времени. Такой вот «экстремальный scrum».

Состав команды

Команда состоит из четырёх человек. Капитан, Алексей Жингеровский, отвечал за координирование остальных членов команды, а также за Android-приложение и создание технического задания. Максим Голунко писал скрипты для Raspberry Pi, дорабатывал приложение под Android. Андрей Акатьев и Вера Сидорович были ответственными за Java-приложение и взаимодействие со сторонним API для работы с Outlook и Google Maps. 


Приложение

Идея

Идея приложения заключается в том, чтобы упростить бронирование комнат для совещаний. Сейчас это делается через календарь Outlook, что не всегда быстро и удобно. Быстро найти помещение — сложно, а если оно ещё и в другом офисе, то совершенно не понятно, какими характеристиками обладает. Команда решила упростить задачу и добавила интерактивности в само понимание бронирования комнат. Так, появились не только описание пространства, но и возможность «сообщать» о доступности кабинета в любой момент времени.

Часто спонтанно возникает необходимость найти место для обсуждения буквально на 10 минут. В этом случае обычный процесс с поиском и бронированием свободной комнаты через Outlook слишком громоздок. Разработанное приложение, используя геолокацию, позволяет мгновенно найти ближайшие свободные аудитории. Датчики же движения в них сообщают о занятости комнаты гораздо надежнее статуса «booked» в Outlook, избавляя от необходимости заглядывать внутрь и тревожить людей.

В итоге получился прототип реализации идеи:

Разработка

При разработке использовался Raspberry Pi — мини-компьютер с камерой. Предполагалось, что он находится в митинг-комнате и отслеживает движение через камеру.

Итого, было использовано слияние мобильного телефона и «малинового» компьютера.

Из-за укороченного формата марафона идти на него без подготовки было бессмысленно. Здесь стоит отметить доскональный бизнес-анализ и тщательную разработку тестовых прототипов приложения, которыми Voblačka занимались «до».

«Предварительная работа команды с UX-дизайнером и потенциальными пользователями была плодотворной — разработали не только скетч-прототип приложения (с использованием Indigo Studio), но и проработали BMC (Business Model Canvas), User Stories и Customer Journal Map», — говорит один из создателей приложения Алексей Жингеровский. 

Структурно проект состоял из трёх компонентов: приложение под Android, приложение на Raspberry Pi для обнаружения движения, сервер для хранения данных и API для соединения всего воедино. Использовалась следующая связка технологий: Java 8 + Spring Framework + MongoDB.

Поскольку предполагалось присутствие «малинки», которой отводилась почётная роль следить за наличием движения в комнате и сообщать пользователю о присутствии там людей, использовался Python и OpenCV.

Конечно, команда готовилась заранее, но боевой код не писала. Ребята настроили среду для разработки и позапускали демо-примеры. Это спасло их от большой проблемы: нужной версии библиотеки не было, надо было собирать из исходников, а на Raspberry Pi это заняло 8 часов! Кстати, яркий корпус из конструктора Lego, который любезно предоставил сын Алексея, тоже изготовили заранее.

Если говорить про сервер, то команда открыла для себя ещё раз Spring Framework через Spring Boot. Быстрый и приятный старт с Spring Boot + Spring Data позволили сосредоточится на бизнес-логике, в то время как всё остальное «просто работало». Удачный выбор для хакатона.

Основным продуктом было мобильное приложение. Проектирование интерфейса для Android-телефона было в новинку. Ребята ознакомились с темой за два вечера по книжкам. Это стало настоящим испытанием. Тем более, цель была поставлена непростая: использовать максимально свежую версию Android-платформы. Но опыта с Java, как оказалось в итоге, было достаточно для создания приложения.

Сложности

Проектировать UI оказалось не так просто, как казалось. Voblačka, вдохновлённые картинками и документацией по Material Design, не ожидали, что многие компоненты (анимация, поведение) не реализованы в SDK, а ещё инструментарий для разработки интерфейсов, которые чуть сложнее, чем одна кнопка, не так функционален и удобен. И всё пришлось писать в XML (что само по себе не сложно, но, учитывая крайне скудные познания в Android API, было проблемно), и сразу проверять на телефоне.

Стандартные приложения, такие как «Календарь», открыты. Поэтому некоторые моменты реализации брались напрямую оттуда. Но в итоге мечты о Material Design разбились, и всё было сделано скудно, зато работало.

Как заставить работать геолокацию? Как хранить данные и передавать их между Activity? Как отобразить фото с сервера? Всё это легко для тех, кто уже работал с Android, а вот ребятам пришлось исследовать новый мир на ходу (спасибо stack overflow за ответы).

Так как основная идея — простое и быстрое бронирование комнат, нужно было научиться это делать. В EPAM управление ими реализовано через MS Exchange Server. Поэтому Voblačka взяли на вооружение доступную библиотеку от Microsoft; никаких подводных камней не было найдено, всё работало.

На телефоне предлагалось бронировать комнаты в зависимости от текущего положения. Полуручной синтаксический анализ (парсинг) пары сотен адресов и ассоциация их с геолокацией через Google Location API — и поиск ближайших адресов через MongoDB заработал. В итоге на демо показывалась не болванка с адресами — всё было честно.

Естественно, идея интересна не только команде, но и компании. Поэтому приложение будут развивать и дорабатывать.

Читайте также
Украинская EPAM помогла обустроить временную школу на Николаевщине
Украинская EPAM помогла обустроить временную школу на Николаевщине
Украинская EPAM помогла обустроить временную школу на Николаевщине
24 комментария
Опытную айтишницу не взяли на курсы, хотя она отлично сдала тесты (трижды!). EPAM объяснил
Опытную айтишницу не взяли на курсы, хотя она отлично сдала тесты (трижды!). EPAM объяснил
Опытную айтишницу не взяли на курсы, хотя она отлично сдала тесты (трижды!). EPAM объяснил
Разбирались, почему айтишнице с 12-летним опытом нужен EPAM, а она EPAM’у — выходит, нет.
22 комментария
«Стать лидером в мире AI-ориентированных бизнесов». EPAM ожидает рекордную выручку в 2025
«Стать лидером в мире AI-ориентированных бизнесов». EPAM ожидает рекордную выручку в 2025
«Стать лидером в мире AI-ориентированных бизнесов». EPAM ожидает рекордную выручку в 2025
EPAM ожидает рекордную выручку в 2025 году. Это следует из финансового отчёта компании по итогам третьего квартала. 
6 комментариев
«Ночью сосед с ножом выбивает дверь в ванную — обычная ссора с женой». Епамовец пожил в Азии
«Ночью сосед с ножом выбивает дверь в ванную — обычная ссора с женой». Епамовец пожил в Азии
«Ночью сосед с ножом выбивает дверь в ванную — обычная ссора с женой». Епамовец пожил в Азии
Алексей — тимлид в EPAM, который с весны 2022 года работал в ташкентском офисе компании, а в прошлом месяце переехал в Польшу. Вот его история.
16 комментариев

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.