Если вы думаете, что работа фотогруппы на танцевальном фестивале — это чистый творческий процесс, то вы правы лишь наполовину. Вторая половина — это чистый, концентрированный хаос, который начинается сразу после того, как фотограф отдал свою первую забитую фотками флешку админу.
Мне доводилось снимать разное: от классического балета и восточных танцев до акродэнса, пилонного спорта и современной хореографии. Жанр не важен, потому что финал у всех этих мероприятий всегда одинаковый: безумная суета у админского стола.
Атмосфера типичного феста
У главного компьютера стоит плотная толпа.
- Одному нужно срочно распечатать снимок прямо сейчас.
- Второй завис за ноутбуком и в упор не понимает, как среди тысяч файлов найти именно свои кадры.
- Третий просит найти видео выступления.
- Еще человек десять просто стоят над душой и ждут, когда освободится хоть один монитор, чтобы просто отсмотреть материал.
В этот момент технологии деградируют до каменного века: люди начинают судорожно записывать номера своих кадров на бумажках. После фестиваля админ собирает эту кучу записок, едет домой и вместо заслуженного отдыха всю ночь сидит и вручную отправляет гигабайты фото и видео.
Мне было больно на это смотреть. Захотелось создать продукт, который разом решит если не все, то как минимум большинство проблем этой адской рутины. Продукт, который превратит хаотичную суету в четкий, автоматизированный конвейер.
Так появился ClickFest.
Архитектура без паники: Flutter, PocketBase и полная автономность
Когда дело дошло до выбора инструментов, главным критерием стала железобетонная надежность в полевых условиях. На фестивалях бывает всякое: от перегруженного роутера до полного отключения интернета. Если софт зависит от облака, в условиях сбоя вся работа админской зоны встает.
Поэтому я собрал связку из Flutter для интерфейса и локального сервера PocketBase.
Вся система разворачивается прямо на рабочем ноутбуке в один клик и работает в закрытом локальном контуре. Даже если площадка полностью останется без связи, база данных продолжает работать, заказы принимаются, а процессы не прерываются ни на секунду.
Как это устроено изнутри: конвейер в действии
Вместо ручной работы я разделил систему на быстрые автоматические этапы:
- Оптимизация для киосков: Тяжелые исходники фотографий на лету сжимаются в легкий формат WebP и мгновенно улетают на гостевые планшеты и ноутбуки самообслуживания (киоски). Никаких тормозов при просмотре тысяч кадров.
- Интерфейс самообслуживания: Клиенты больше не дышат в спину админу. Они спокойно сидят за гостевыми экранами, отсматривают материал, добавляют нужные кадры в корзину и оформляют заказ. Им не нужно ждать, пока админ освободится — они могут подойти для оплаты в любой удобный момент.
- Автоматическая нарезка видео: Как только фиксируется заказ на видео, система сама (через встроенный FFmpeg) нарезает нужные выступления из общих мастер-файлов.
- Облачный конвейер и доставка: Готовые медиафайлы автоматически загружаются на Яндекс.Диск, а клиенту на почту мгновенно летит сгенерированное письмо со ссылкой на скачивание.
Итог: админ едет спать.
Раньше к вечеру фестивального дня админ готов был рвать на себе волосы, а впереди его ждала бессонная ночь ручной рассылки.
ClickFest проектировался с одной целью — полностью уничтожить эту рутину. По расчетам, напряжение в зоне регистрации должно упасть до нуля. Пока люди спокойно выбирают контент за изолированными киосками, система сама на заднем плане крутит шестеренки: нарезает видео, упаковывает файлы, загружает их в облако и генерирует письма.
Вместо заключения
Написание этого софта в очередной раз доказало мне простую вещь: автоматизация — это история не про бизнес, гигабайты или ускорение процессов. Это история про людей.
Когда ты убираешь из работы тупую, изматывающую рутину, хаос превращается в порядок, а вечно уставший, задерганный человек наконец-то возвращает контроль над своим самым главным ресурсом — временем. И вместо того, чтобы до рассвета портить зрение у монитора, разгребая горы бумажек, он может просто закрыть ноутбук и отдохнуть. Проводить время с близкими и спокойно спать.
Потому что роботы должны работать, а люди — жить.