Skip to content
This repository was archived by the owner on Nov 22, 2025. It is now read-only.

K1rL3s/vkmax-hackathon

Repository files navigation

img.png

gg

MAX Уведомления

Также есть информация в backend/README.md и frontend/README.md

Миро доска

🎯 Целевая аудитория

  • Руководители отделов - которым важно не тратить время на ручные напоминания сотрудникам
  • Администраторы и тимлиды - чтобы держать команду в курсе событий и не допускать сбоев в расписании
  • Сотрудники и волонтёры - которым удобно получать уведомления только о тех событиях, что действительно к ним относятся
  • HR- и офис-менеджеры - для автоматизации внутренних коммуникаций: смен, дежурств, корпоративных мероприятий

🚨 Проблема

В рабочих коллективах и проектных командах регулярно происходят события - совещания, дежурства, смены, тренинги. Но ручное информирование через мессенджеры - неэффективно:

  • Сообщения теряются в чате
  • Уведомления приходят не тем людям
  • Напоминания отправляются слишком поздно или вовсе забываются.

Это снижает дисциплину, вызывает путаницу и тратит время руководства.


🧭 Цель проекта

Создать систему автоматических уведомлений о событиях, которая:

  • Учитывает роли, теги и принадлежность пользователей к группам
  • Работает без участия человека в момент отправки
  • Работает в мессенджере MAX

🤖 Техническая архитектура

Компоненты:

  • MAX - сам мессенджер, наш отечественный 💪
  • t123_hakaton_bot - бот в Максе
  • Backend (API) - бизнес-логика, управление ролями, событиями, тегами и всем-всем-всем
  • Scheduler - модуль планирования и отправки напоминаний по cron
  • Postgres - основная база данных (пользователи, события, группы, теги)
  • Redis - кэш и очередь задач
  • Frontend & WebApp - визуальный интерфейс для настройки групп и событий

👍 Решение

Бот для мессенджера МАХ, который позволяет:

Боссу группы (владельцу):

  • Назначать и отзывать «начальников»

  • Присваивать участникам теги (например: “дизайнер”, “дежурный”)

  • Создавать события с гибкими настройками уведомлений (в момент события, за N минут до, с возможностью множественных напоминаний)

  • Привязывать события к отдельным пользователям или к тегам

  • Управлять приглашениями в группу (создавать/удалять инвайт-ссылки)

  • Начальнику (администратору):

  • Управлять участниками (кроме босса)

  • Просматривать и изменять назначения тегов, но без права редактировать саму группу или удалять её владельца

Участнику:

  • Получать автоматические уведомления только о тех событиях, к которым он привязан - либо напрямую, либо через теги
  • Подтверждать своё участие или отсутствие одной кнопкой
  • Оставаться в информационном потоке без избыточного шума

✅ Результат

МAX Уведомления

  • автоматизирует оповещения внутри коллектива
  • снижает нагрузку на руководителей
  • поддерживает порядок и дисциплину в команде
  • исключает пропущенные события и “человеческий фактор”

Итог

Бот - удобный инструмент для управления напоминаниями: снижает нагрузку на руководство, повышает дисциплину команды и гарантирует, что каждый получит нужное уведомление вовремя.


Запуск

  1. Склонировать репозиторий и перейти в него:

    git clone https://github.com/K1rL3s/vkmax-hackathon.git
    cd ./vkmax-hackathon
    
  2. Создать и заполнить файл .env в корневой папке (пример: .env.example).
    Для локального запуска достаточно заменить MAX_TOKEN:

     cp .env.example .env
     nano .env
    
  3. Иметь установленный Docker Engine и docker compose v2

  4. Собрать и запустить:

    docker compose up -d --build
    

🛠️ Реализованный функционал

🤖 Бот

👤 Создание пользователя - автоматическое сохранение в БД при первом запуске бота

🔗 Вход в группу по диплинку - мгновенное подключение без ручной настройки

📢 Все уведомления - только через бота

📅 Отклик на событие

  • ✅ Буду
  • ❌ Не буду
  • 🤷 Не знаю

📚 Пагинация по своим группам (в боте):

  • 👑 Роль
  • 📛 Название группы
  • 🔗 Ссылка-переход в WebApp
  • 📆 Выгрузка событий группы в ics календарь
  • 🔔 Настройка режима уведомлений в одной группе

⚙️ Настройки

  • 🔔 Настройка режима уведомлений сразу везде
  • 📞 Ввод и удаление телефона
  • 📍 Определение часового пояса

🖼️ Вебапп 🌐

Изменение юзера ✏️

  • Имя 👤
  • Фамилия 👤
  • Таймзона 🌍
  • Телефон 📱
  • Глобальная настройка уведомлений 🔔

Просмотр юзера (себя или юзера в одной со мной группе) 👀

  • Имя 👤
  • Фамилия 👤
  • Телефон 📱
  • Таймзона 🌍
  • Аватарка из макса 🖼️

Просмотр своих групп 📋

  • Название 🏷️
  • Роль 🎖️
  • Локальная настройка уведомлений 🔔

Изменение и удаление группы 🛠️🗑️

  • Название 🏷️
  • Описание 📝
  • Таймзона 🌍

Изменение и удаление участников из группы 👥⚙️

  • Роль 🎖️
  • Тэги 🏷️

Изменение приглашение 📨

  • Скопировать 🔗
  • Отозвать 🚫
  • Пересоздать 🔄

Создание, изменение, удаление и просмотр событий 📅

  • Название 🏷️
  • Описание 📝
  • Группа 👥
  • Ближайшая дата-время ⏰

Просмотр всех ивентов юзера во всех группах (самого себя) 🗓️👀

Просмотр всех ивентов юзера в конкретной группе (себя и других в группе) 🗓️👥

Просмотр всех ивентов в группе (все участники видят все ивенты в группы) 📅👁️

Темная/Светлая тема 🌓


Разработчики

Кирилл Лесовой, почта, гитхаб
Иван Дядечков, почта, гитхаб
Даниил Карпенко, почта, гитхаб

About

Трек «Эффективность» в хакатоне по чат-ботам или мини-приложениям для мессенджера MAX

Resources

License

Stars

Watchers

Forks

Contributors