Middle та Senior .NET розробники та розробниці зі Львова, Києва, Харкова, Дніпра та Івано-Франківська і 10 годин для того, щоб створити сервіс для корпоративної онлайн-освіти. Так коротко можна описати онлайн-хакатон від BrainStorm команди Intellias, який відбувся 3 липня.
Головне завдання учасників – впродовж 10-ти годин реалізувати сервіс для роботи з контентом навчальної платформи, якою користуються представники таких світових гігантів як PepsiCo, Visa, Delloitte та інші світові гіганти.
Йдеться про розробку QuickHelp від компанії BrainStorm, яку вона розробляє у партнерстві з Intellias. Платформа вчить співробітників компаній працювати з потрібним програмним забезпеченням, а також пропонує різноманітні вебінари, тренінги тощо. Користувачі платформи мають свій план навчання, можуть переглядати освітні матеріали та перевіряти отримані знання за допомогою тестів.
проєкт BrainStorm: як це працює
Детально про завдання
“Учасники мали реалізувати спрощену версію сервісу, який є у платформі QuickHelp. Завдання сервісу – працювати з контентом і призначенням контенту до індивідуального користувача або групи користувачів. Основний тип контенту – відео, яке може групуватися у навчальні плани, які там само можна було б асайнити як на групу, так і на індивідуального користувача”, – розповідає Олександр, .NET розробник в Intellias та один з організаторів хакатону.
“Аби завдання вважалось зарахованим, учасники хакатону мали реалізувати на сервісі два ендпоінти: перший для того, щоб отримати весь контент, до якого юзер має доступ, другий ендпоінт – отримати інформацію, яким чином користувач має доступ до певного контенту.
Складність завдання полягала в тому, що контент являв собою певну ієрархію, крім того, контент міг асайнитись на користувачів/чів з певним пріоритетом до перегляду (Low, Medium, High, Critical). Ще одна складність – в першому випадку користувач може мати доступ до відео кількома способами, в другому варіанті – потрібно було показати шляхи, яким чином юзер має доступ до ось такого контенту.
Також сервіс повинен був збирати статистику виконання запитів до сервіса та відправляти її в чергу меседж брокера RabbitMQ.
Що було далі?
Свої рішення учасники мали опублікувати в окремому публічному репозиторії на GitHub. Надати його потрібно було у вигляді серверної частини. Підніматись в контексті віртуального оточення Docker. Щоб стартувати додаток потрібна була єдина команда – docker-compose up.
Для оцінювання робіт учасників завдання поділили на кілька підкатегорії. До прикладу:
Аналіз рішень учасників
“Дуже приємно було спостерігати, що деякі учасники дуже швидко виконували завдання, використовуючи технології, з якими працювали вперше. Перед хакатоном ми провели мітап, на якому розповідали, як працює команда Intellias на проєкті BrainStorm. Зокрема, говорили про графові бази даних. Були учасники, які використовували їх для вирішення завдання. Круто бачити репозиторії, де люди тільки дізнались про нову технологію і вже з нею працюють. Також дуже вразила кількість роботи, яку учасники зробили за обмежений для них час.
Серед типових помилок, які ми виявили в учасників:
- Невідповідність завданню
- Шляхи до ендпоінтів відрізнялись від зазначених
- Формат відповіді від сервера відмінний від вказаного
- База даних
- Вибір стратегії збереження даних
- Вибір патернів доступу до даних
- Інфраструктура
- Проблеми налаштування docker-compose
- Масштабування
- Рішення швидко втрачає ефективність при збільшенні кількості контенту користувача
До речі, поставлене завдання трійка лідерів хакатону вирішила по-різному: переможець обрав для свого сервісу документну базу даних, срібний призер – графову базу даних, а учасник, який посів третє місце вирішив завдання за допомогою бази даних SQL“, – підсумовує Олександр.
“Я взагалі не сподівався на перемогу, а от моя дівчина, коли я їй розповів, що виграв, відразу сказала, що знала – усе закінчиться саме так”, – каже Альберт, .NET розробник з Києва.
Він переміг у нашому хакатоні. У такому заході він бере участь вперше. Для Альберта це спосіб отримати досвід та розбавити робочу рутину новим завданням. Коли зачитали завдання, Альберт відчув полегшення, однак далі важливо правильно побудувати процес роботи, щоб вкластись у час:
“Потрібно прагматично оцінити задачу і ресурси, які в тебе є. Наприклад, ти розумієш, що з певними технологіями працюєш швидше, інші технології потребують часу для того, щоб з ними розібратись, але краще підходять для виконання задачі. На мою думку, складно в хакатонах правильно виставити пріоритети і побудувати оптимальну стратегію вирішення. Одна з думок, яка має бути в кожного учасників – мінімальний об’єм роботи для максимального ефекту”.
За перемогу Альберт отримав від нас 1000$. Ми не стали запитувати, на що він їх витратить, а от про кар’єрні плани все-таки запитали. Своє майбутнє він бачить й надалі в технічному напрямку та архітектурі. Ми ж точно знаємо, що це не останній хакатон від нашої команди, а поки пропонуємо вам більше дізнатися про проєкт BrainStorm.