Городская афиша: мероприятия, кино и досуг · Полоцк и Новополоцк
Good Day Афиша
Афиша, которая сама собирает события и отдаёт их на модерацию
Задача
Нужна была общая афиша Полоцка и Новополоцка, которая сама собирает события из Telegram-каналов и сайтов. Посетителям — актуальные даты, расписание кино, постеры, площадки и ссылки на билеты. Владельцу и менеджеру — административная панель, чтобы проверять публикации и контролировать автоматизацию.
Какие проблемы решили
Анонсы разбросаны по разным Telegram-каналам и сайтам — единого места, где видно всё, нет.
Сбор из подключённых источников — открытых Telegram-каналов, сайтов и HUBL — в единый каталог мероприятий; разметка Schema.org JSON-LD на сайтах-источниках разбирается напрямую.
Анонс — это свободный текст: название, дату, площадку и цену из него нужно ещё вытащить.
ИИ-разбор публикации в структурированный JSON: название, дата, время, город, площадка, цена и другие поля, с проверкой структуры ответа. Сохраняются версия парсера, цитаты из источника и расход токенов.
В афишу попадали общие новости, повторы одного события и ошибочные даты.
Проверка дублей с привязкой нескольких источников к одному событию, правила отбора и автопубликации, очередь ручной модерации и нормализация года по дате публикации или сбора.
Фильмы с несколькими сеансами неправильно попадали в выборки по дням.
Сеансы хранятся и синхронизируются отдельно от фильма, а фильтры и публикация учитывают расписание.
Постеры обрезались, пропадали после обновлений или не загружались вовсе.
Пропорции изображений сохраняются, постеры загружаются в постоянное хранилище — включая изображения из HUBL, Telegram и TMDB.
Владельцу нужно видеть, как наполняется афиша и что интересно аудитории.
Административные разделы с историей обработки, журналом ошибок и расходом токенов, а также счётчики просмотров карточек, действий «поделиться» и переходов за билетами.
Что сделали
- Автосбор из открытых Telegram-каналов и сайтов с ИИ-разбором анонсов в структурированные карточки
- Сайт с переключением городов, поиском и фильтрами по категориям, датам и бесплатным событиям
- Защищённая админ-панель: события, источники, площадки, организаторы, модерация и управление автоматизацией
- Карточки событий с постером, описанием, местом, местным временем, возрастным ограничением и ценой при наличии данных
- Проверка дублей, привязка нескольких источников к событию, правила автопубликации и ручная модерация
- Цикл сбора и обработки раз в час, автоматическое завершение прошедших событий и подборки
- Ссылки на билеты и карту, добавление в Google Календарь, файл .ics для Apple Calendar и Outlook, отправка в Telegram и VK
- SEO: метаданные, sitemap, robots.txt, разметка Event и BreadcrumbList; веб-аналитика и собственная статистика действий
- Next.js 16, PostgreSQL 17 и Prisma в Docker на VPS; ежедневные зашифрованные бэкапы базы и медиа в Google Drive
Как это выглядит

