Beehive Logic

Veteran Help — Цифровий портал підтримки

| Civic Tech · Go · PostgreSQL · Telegram-бот

Огляд

17 квітня 2026 року в Запоріжжі відбулась офіційна презентація платформи Veteran Help. Захід організувала ГО «Запоріжжя. Платформа спільних дій» спільно з благодійним фондом «Рубікон Волі» за участі представників місцевої влади, громадських організацій, бізнесу та ветеранської спільноти.

Платформу розроблено командою Beehive Logic на замовлення ГО «Платформа Спільних Дій».

«Лише разом, тільки в конгломерації ми можемо зробити більше» — Олена Швець, директорка Департаменту з питань ветеранської політики


Проблема

Ветерани, військовослужбовці та члени їхніх сімей стикаються з розрізненістю інформації про доступну допомогу: частина послуг — у державних органах, частина — у громадських організаціях, частина — у бізнесі. Пошук і зведення цих ресурсів потребує значних зусиль і часу — саме такого тертя не може собі дозволити система, що обслуговує людей, яких торкнулася війна.


Рішення

Veteran Help — єдине вікно, де можна швидко знайти актуальну інформацію про підтримку, структуровану за категоріями потреб конкретного одержувача: без зайвого пошуку й технічної підготовки.

Платформа охоплює:

  • Надавачів допомоги — організації та установи, що підтримують ветеранів і їхні сім’ї
  • Категорії послуг — систематизована база за типами потреб
  • Вакансії — можливості для працевлаштування ветеранів
  • Бізнес-пільги — підприємства, що пропонують знижки та привілеї учасникам бойових дій
  • Події — заходи, тренінги, зустрічі для ветеранської спільноти

Технічний стек

ШарТехнологія
МоваGo 1.24
HTTPEcho v4
ШаблониTempl (server-side rendering)
База данихPostgreSQL 15
Міграціїgolang-migrate/v4
СесіїSCS v2
Telegram-ботTelego v1.3.1
QR-кодиskip2/go-qrcode
FrontendBootstrap, FontAwesome, jQuery, Chart.js

Архітектура

Чіткий багаторівневий поділ відповідальностей:

Echo Router → Handler → Service → Postgres → PostgreSQL
cmd/web/main.go          # Точка входу, ініціалізація, запуск HTTP + Telegram
internal/pkg/app/        # App struct, реєстрація маршрутів, middleware
internal/handler/        # HTTP-хендлери (по одному файлу на домен)
internal/service/        # Бізнес-логіка, інтерфейси між хендлером і БД
internal/postgres/       # SQL-запити до PostgreSQL
internal/telegram/       # Telegram-бот: хендлери та побудова повідомлень
models/                  # Спільні структури даних
view/                    # Templ-шаблони (pages, layout, components)
schema/                  # SQL-міграції (numbered up/down pairs)

Ключові можливості

Публічний сайт

  • Каталог із трирівневою навігацією: категорія одержувача → тип послуги → надавачі
  • Деталізована картка надавача з контактами, адресою та описом допомоги, адаптованим під конкретну категорію одержувача
  • Перегляд вакансій, подій і бізнес-пільг із фільтрацією за категорією
  • Автоматично генерований sitemap.xml для SEO

Адміністративна панель

  • Повний CRUD для всіх типів контенту: надавачі, події, вакансії, бізнеси, категорії, QR-коди
  • Гнучка рольова модель: суперкористувач + гранулярні права на редагування окремих розділів
  • Відстеження дій: кожен запис зберігає, хто і коли його створив, змінив або видалив (soft delete + audit trail)
  • Дашборд статистики: перегляди сторінок у розрізі шляхів, аналітика QR-кодів
  • Конфігурований URL-префікс адмін-панелі (ADMIN_PREFIX) для приховування адреси

Telegram-бот

  • Багаторівнева навігація через inline-кнопки
  • Stateful callback-система (парсинг callback-даних типу help_category:10:cat:5)
  • Автоматичне видалення повідомлень користувача для чистоти чату
  • Паралельний запуск у goroutine, незалежно від HTTP-сервера
  • Long polling — надійна робота без webhooks

QR-коди

  • Генерація PNG на льоту (256×256, medium error correction)
  • Унікальні slug-базовані короткі посилання
  • Відстеження переходів із часовою міткою для аналітики

Безпека

  • Хешування паролів із метаданими формату
  • CSRF-токени для всіх форм
  • Лічильник невдалих спроб входу
  • Захищені сесії (SCS v2 + Echo)

Цікаві технічні деталі

Контекстні описи надавачів. Один і той самий надавач може надавати різний опис послуги залежно від категорії одержувача. Наприклад, медичний центр описує психологічну підтримку для «військовослужбовців» і «сімей загиблих» по-різному. Реалізовано через таблицю service_provider_help_details з унікальним constraint на трійку (provider_id, beneficiary_category_id, help_category_id) серед активних записів.

Soft delete з повним audit trail. Всі сутності мають deleted_at + deleted_by_user_id. Дані не видаляються фізично — зберігається повна історія змін.

Middleware-аналітика. Трекінг переглядів сторінок реалізовано на рівні Echo middleware: перехоплює всі GET-запити, фільтрує статику та адмін-маршрути, записує шлях і часову мітку без навантаження на хендлери.


Результат

Платформа запущена в Запоріжжі та надає ветеранам, військовослужбовцям і членам їхніх сімей єдиний структурований доступ до ресурсів підтримки — без зайвих зусиль з їхнього боку, а адміністраторам — зручний інтерфейс для самостійного оновлення інформації без технічних знань.

  • ~13 handler-файлів, ~200 рядків кожен → 58 адмін-ендпоінтів + 15+ публічних маршрутів
  • 14 міграцій PostgreSQL із послідовною нумерацією та up/down парами
  • Повне покриття Templ-шаблонами для всіх сторінок
Beehive Logic

Високопродуктивна програмна інженерія для лідерів ринку. Працюємо в різних регіонах України, обслуговуємо клієнтів по всьому світу.

Послуги

Компанія

© 2026 Beehive Logic