Небольшое оглавление:
Техническая часть - описание, стек и другое
Общее впечатление
Детальное описание - история "Как это было" глазами уставшего фронтендера
Пролетели тяжелые выходные, а за ними последовало чудо.
Всем привет👋
Выхожу на связь с чудо новостями - у меня случился первый масштабный хакатон! Настолько масштабный, что за первое место давали даже не кружки (и не рюкзаки!!!).
Техническая часть - описание, стек и другое
https://hacks-ai.ru/ - окружной хакатон ЦФО (Центральный федеральный округ, на всякий) от организации "Россия - страна возможностей". Это региональный хакатон, собравший умные головы Москвы, Санкт Петербурга и тех, кто, как и мы, решили попасть на соревнование пораньше :) Призовой фонд - 600 тысяч рублей💸
Описание кейса "Анализ качества преподавания", над которым работали:
Необходимо создать сервис, использующий аналитические алгоритмы, для сканирования онлайн-уроков и определения корректности проведения урока преподавателем, а также анализа комментариев учащихся во время занятия. При обнаружении проблем, система должна направлять автоматический сигнал в службу проверки экспертов. На основе комментариев студентов - давать общее резюме к проведенному уроку, показывать о чем шли обсуждения, на что направлен негатив.
В команде было 3 человека:
Роман - наш прекрасный тимлид и ML специалист по совместительству
Максим - чудо бэкендер, аналитик, дизайнер и просто прекрасный человек
Ирина (я) - фронтендер, дизайнер, мило улыбающийся в камеру человек
💥На чем писала фронт💥
React
Typescript
CSS modules
React Query + Axios
Antd
Архитектура FSD
Jest + Testing library
Storybook
ESlint
Что в итоге получилось?
Общее впечатление
Не получится у меня сдержаться до конца статьи - МЫ ВЫИГРАЛИ!!!! Наша команда ПИН-КОД победила в кейсе "Анализ качества преподавания"
Для меня это нечто невероятное🔥 1 место по целому региону, 1 место среди студентов ИТМО, Политеха (некоторые уже магистранты) и других крутых вузов.
Как это было:
Тяжело и нервно, поскольку заранее к хакатону мы не готовились:
дизайн рисовала в процессе (потом его перерисовывали, что тоже создавало некоторый дискомфорт)
быстро настраивала проект. Рекламы момент - я настроила свой репозиторий (https://github.com/IrkaTyman/React-template) с уже готовыми ручными конфигами для приложения на React, если вы поставите звезду и воспользуетесь, буду рада😊
согласовывали фичи на ходу, что-то принимали, что-то перерабатывали
писали код больше 30 часов (не учитывая редкие остановки на сон)
нервничали, так как впервые работали с нейросетками и ML, а сделать качественно хотелось
на презентации решения не задали вопросы, что сильно ударило по уверенности в хотя бы ТОП-3 (да-да, мы же не просто поучаствовать пришли)
Однако, несмотря на все эти сложности, я с уверенностью могу сказать, что опыт, полученный на хакатонах незаменим. Хакатон - это то, что проверяет тебя и как человека, и как программиста:
Сможешь ли ты писать код без остановки 30 часов?
Сможешь быстро генерировать классные идеи?
Сможешь обучаться новой технологии и сразу же внедрять ее в продукт?
Сможешь без сна и отдыха не нервничать и общаться с сокомандниками?
Сможешь не сломаться и не забить?
Если что-то из этого тебе пока недоступно, то попробуй себя в хакатоне, такое максимально быстрое развитие сложно получить, учась в размеренном темпе. Ответил на все вопросы "ДА"? Тогда беги на хакатоны и выигрывай, заводи знакомства, пробуй себя в новых направлениях!
* На минуту я почувствовала в себе дуновения инфоцыганства (верь в себя, в свою веру в себя), но я действительно так думаю. Хакатоны очень заряжают, особенно если собралась активная команда *
Детальное описание - история, как оно было
Хочется передать те настроения и мысли, которые посещали меня за время хакатона, поэтому опишу тайлайном :)
26 апреля
17:00 - Узнала, что сегодня начинается хакатон, на который мы регистрировались. Кажется, это было шуткой, но ребята настроены работать
18:30 - Церемония открытия. Наверное, было интересно, не знаю, я работала :)
19:30 - Должен был состояться первый созвон по кейсу, но увы, часть команды все еще работала. Увидели полное описание кейса, решили, что задача простая. Ага.
20:00 - Первый чекпоит. Оказывается, мы уже должны были начать писать код, продумывать идею, рисовать презентацию. Я пришла с работы, ребята отбиваются на созвоне с трекером, пытаются делать вид, что мы эффективные
![Трекер, когда узнала, что мы из Екб, но участвуем в хакатоне ЦФО Трекер, когда узнала, что мы из Екб, но участвуем в хакатоне ЦФО](https://habrastorage.org/getpro/habr/upload_files/44a/143/326/44a143326c75df405e499651fc497571.jpg)
20:20 - Села за фигму, идей нет, вдохновения тоже, кажется, это все, что я могу сделать
![На создание шедевра ушло 30 минут На создание шедевра ушло 30 минут](https://habrastorage.org/getpro/habr/upload_files/94e/7b3/af5/94e7b3af50e1bb778887acd3e81f4fdb.png)
20:30 - Узнали, что два человека из пяти не смогут участвовать. Один из фронтендеров стал бэкендером, тимлид стал ml'щиком. Это нормально, честно :)
20:45 - Первый созвон с командой. Собрали идеи, проработали некоторые фичи, процесс пошел
21:30 - Ну как бы вот наш логотип. Написала в макете название AIDog, ребята подумали, что я в серьез. Теперь мы называемся AIDog, окееей
23:30 - Рисую макет, мой уже не фронтендер дает мне правки, поправляя блоки под курсором. Злюсь, кажется, что мой лазерный взгляд долетит до него и разрежет мышку. Могли поругаться, но обошлось, хочется спать и плакать, зато дизайн вроде бы готов
![](https://habrastorage.org/getpro/habr/upload_files/b63/3a2/1f5/b633a21f59880015d1da014be2dc428d.png)
01:10 - "Готов дизайн", - говорили они. "Попробуй еще",- предлагали они. Дорисовала макет, теперь уже точно все, счастливая ложусь спать, ребята работают все ночь на энергетиках, я их не трогаю
![](https://habrastorage.org/getpro/habr/upload_files/68b/37f/288/68b37f2883c1ae67bca3250e666fd91d.png)
![](https://habrastorage.org/getpro/habr/upload_files/9c3/d2f/126/9c3d2f126480ed8a8694a03e05417334.png)
27 апреля
09:00 - Ребята сделали бэкенд, модельку, почти победили хакатон, а я проснулась. Ощущение, что у них прошло уже дня 3, невероятная гордость. Пора бы уже инициализировать проект на фронте, а то до чекпоинта 4,5 часа
09:30 - Как же прекрасно писать по FSD. Кто бы что не говорил, но после получасовой настройки проекта фичи начинают "клепаться" со скоростью пули из пистолета. Настроение отличное, боевое, готова сделать все, что скажет бэкендер
13:05 - Пишу базовый скелет проекта, все идет гладко, так как проект с нуля хорошо настроен (и даже не CRA). Потом я зашла в фигму...
![Макс: "Ну не люблю я, когда дизайн тяп-ляп, я так вижу" Макс: "Ну не люблю я, когда дизайн тяп-ляп, я так вижу"](https://habrastorage.org/getpro/habr/upload_files/b4e/ad1/1fe/b4ead11feb8644899569023c7254d088.png)
![Стало лучше, не спорю, но эмоции... Стало лучше, не спорю, но эмоции...](https://habrastorage.org/getpro/habr/upload_files/0a9/a33/00d/0a9a3300d2135eec540a6668f05ec0fd.png)
![](https://habrastorage.org/getpro/habr/upload_files/32f/585/682/32f585682ac3436544645a3fb3093e01.png)
Дизайн кардинально изменился, кажется, после 4 часов безостановочного кодинга фронта я не готова принимать изменения. Хочется доделать скелет и уйти. Команда в целом заряжена, ребята во всю учат модельку распознавать мат
13:30 - Второй чекпоинт. Трекер, кажется, поспала, выглядит довольной, спрашивает, что сделали. "У нас уже есть бэкенд, моделька только-только заработала, что-то по фронту сделали" (что-то...). Трекер спрашивает про презентацию:
![Оказывается, презентация должна была уже существовать, у нас есть первый слайд с нашей собакой. Трекер, фото в цвете Оказывается, презентация должна была уже существовать, у нас есть первый слайд с нашей собакой. Трекер, фото в цвете](https://habrastorage.org/getpro/habr/upload_files/389/820/382/38982038224efe18dc6199cf4210669a.png)
14:30 - Ура, я дописала скелет, все работает, сейчас бы проверить не с моковыми данными, но... Умер accessToken, у меня нет пользователя, бэкендер пошел решать проблемы. На этом моменте мотивация уже в точке минимума, кажется, что еще немного, и я заставлю бэкендера быть еще и фронтендером
![Это я сделаль, проект как бы работает, но стилей нет от слова совсем, буквально ни одной строчки :) Это я сделаль, проект как бы работает, но стилей нет от слова совсем, буквально ни одной строчки :)](https://habrastorage.org/getpro/habr/upload_files/e3c/4e3/8cb/e3c4e38cb1a0f2de68f96d845a82754f.png)
15:20 - Ооо, ребята, моей энергии хватит на всю нашу команду! Делаю интересный компонент: таймлайн по комментариям, которые отображает, где были проблемные высказывания + при перемещении курсора листается панелька чата справа до выбранного комментария. Наверное, именно такие задачи и нужно время от времени вставлять в хакатон, так как обычная разработка известного немного выматывает
![Трехслойный таймлайн:) Трехслойный таймлайн:)](https://habrastorage.org/getpro/habr/upload_files/e8e/a0d/0af/e8ea0d0af562c1bedb20efc6615ad7cd.png)
17:30 - Начинаю писать стили, предчувствую тотальный конец, так как на этот момент уже написано 18 крупных компонентов
![Рома пытался... Рома пытался...](https://habrastorage.org/getpro/habr/upload_files/921/08a/b94/92108ab94993c9d2e65e4a23d2ddab3a.png)
21:10 - Был созвон по поводу парсинга json из формы. Я уже ничего не понимаю, голова где-то далеко, думаю отказаться от хакатона и пойти спать
![Я опять могла поругаться, но не хотелось обижать своих чудо-ребят Я опять могла поругаться, но не хотелось обижать своих чудо-ребят](https://habrastorage.org/getpro/habr/upload_files/154/267/c21/154267c21ee04bcb1c04bf7aea989fb8.png)
21:15 - Презентацию сдавать в 11:00, она до сих пор не существует. Зачем я пишу фронт, мы точно участвуем?! Толкаю тилида, очень хочется поделать презентацию, а не вот это все, "фронтендерское". Настроение приподнятое, так как, возможно, я отвлекусь от кода
22:00 - Был показ фронта, кажется, последняя нервная клетка покинула чат
![Такие моменты показывают, насколько твоя команда прекрасна, и как тебе с ними повезло Такие моменты показывают, насколько твоя команда прекрасна, и как тебе с ними повезло](https://habrastorage.org/getpro/habr/upload_files/8a7/238/d79/8a7238d796a9e5c1c8c98676a7c189fc.png)
01:00 - День подошел к концу, ребята продолжают не спать, поражаюсь их выдержке
28 апреля
07:30 - Стопкодинг в 13:30, нужно все сделать идеальным, настроены на победу (разумеется)
13:30 - Все это время было самым приятным за весь хакатон. Мы спокойно работали, мотивация на высоте, фронт не решил упасть, бэк пашет, моделька распознает все, что ей дают. Готовимся к защите в 16:20
16:30 - Это провал. Нам не задали ни одного вопроса после презентации, даже ни намека. Тимлид обижен, бэкендер негодует, грустно расходимся заниматься своими делами до награждения
18:20 - Мы в ТОП-5!!! Ну что же, хотя бы что-то, но после защиты настрой все еще на нуле, я шучу про то, что хочу деньги, Максим верит, что мы победим
20:00 - Начинается церемония награждения. Охватывает легкое волнение, может, мы все-таки в ТОП-3? Пожалуйста, пусть хотя бы третье место
![](https://habrastorage.org/getpro/habr/upload_files/bb5/2f4/dc4/bb52f4dc473ae5f2671aa49472830edb.png)
20:45 - Искра, буря, эмоции. Наша команда заняла первое место, ПЕРВОЕ!!!
Я сидела от команды с включенной камерой, мне кажется, что весь спектр эмоций залил ребят в офисе VK.
Это было невероятно... Словами не описать, как нас всех трясло, улыбало, разрывало от эмоций. ПЕРВОЕ МЕСТО !!!
Вот так прошли тяжелые, но насыщенные и мотивирующие деньки. Были спады, были подьемы, но мы справились и поняли, что мы можем. Можем сделать классный продукт за три дня, можем полностью довериться друг другу и сработаться, можем победить.
На этой ноте спасибо за внимание и пока, а я пойду попивать свой смузи где-то на Бали (кофе из Жизньмарт где-то в парке)🌴🍹