Skip to content

alllexey-dev/ITMO.Queue

Repository files navigation

ITMO.Queue

Телеграм-бот для удобного управления очередями на лабы в ИТМО.
» Попробовать бота «

ITMO.Queue — это многофункциональный Телеграм-бот, созданный для студентов Университета ИТМО. Его главная задача — упростить и автоматизировать процесс записи и управления очередями на сдачу лабораторных работ.

🌟 Ключевые возможности

Для студентов

  • Быстрая запись: Записывайтесь в очередь на сдачу лабораторной работы в пару кликов.
  • Управление очередью: Отмечайтесь как "сдавший", выходите из очереди или записывайтесь повторно для пересдачи.
  • Персонализация: Установите уникальный никнейм, который будет виден всем участникам.
  • Просмотр в реальном времени: Отслеживайте свое место в очереди через сообщения бота или на специальной веб-странице.

Для администраторов (старост)

  • Гибкое управление: Создавайте и редактируйте учебные предметы и лабораторные работы прямо в личном чате с ботом.
  • Общая очередь: Бот автоматически формирует общую очередь по предмету, объединяя очереди по отдельным лабораторным.
  • Интеграция с группами: Управляйте очередями в общих чатах и супергруппах, назначая основной топик для уведомлений.

🚀 Расширенный функционал

  • Учет попыток: Настройте бота так, чтобы он запрашивал у студентов номер попытки сдачи (в общем чате или ЛС).
  • Кастомизация:
    • 3 алгоритма для формирования очередей на лабораторные работы (при включенном учете попыток).
    • 4 алгоритма для формирования общей очереди по предмету.
  • И множество других полезных функций, делающих работу с очередями максимально удобной!

🤖 Команды бота

Вот основные команды для взаимодействия с ботом.

💬 В групповых чатах

  • /group — Показывает меню этого чата.
  • /labs — Отображает список доступных лабораторных работ.
  • /subjects — Отображает список доступных предметов.
  • /cancel — Отменяет текущее действие (например, ввод названия).

👤 В личных сообщениях

  • /start — Запускает бота и показывает приветственное сообщение.
  • /group — Управление вашими группами.
  • /labs — Просмотр информации о лабораторных, в очередях на которые вы стоите.
  • /name — Позволяет изменить ваш никнейм.
  • /cancel — Отменяет текущее действие.

🛠️ Технологический стек

Компонент Технология
Бэкенд Kotlin, Spring Boot, Spring Data JPA
База данных MariaDB (по умолчанию)
Telegram API TelegramBots
Веб-интерфейс Thymeleaf

⚙️ Установка и запуск (селфхост)

Предварительные требования

  • Java Development Kit (JDK) 21 или новее.
  • Рабочий сервер базы данных (например, MariaDB или PostgreSQL).
  • Токен Телеграм-бота, полученный у @BotFather.

Конфигурация

  1. Клонируйте репозиторий:

    git clone https://github.com/alllexey123/ITMO.Queue.git
    cd ITMO.Queue
  2. Настройте переменные окружения: Для конфигурации приложения создайте файл .env в корне проекта или настройте переменные в вашей среде исполнения.

    • DB_URL: Полный URL для подключения к БД.
      • Пример: jdbc:mariadb://localhost:3306/itmo_queue
    • DB_USER: Имя пользователя БД.
    • DB_PASSWORD: Пароль пользователя БД.
    • TG_TOKEN: Токен вашего Телеграм-бота.
    • SELF_ORIGIN: Публичный URL вашего сервера (необходим для генерации ссылок на веб-страницы очередей).
      • Пример: https://my.queue-bot.com

Запуск

Проект можно запустить с помощью встроенной задачи Gradle:

./gradlew bootRun

После запуска бот будет готов к работе в Telegram.

About

Телеграм-бот для управления очередями на сдачу лабораторных работ в ИТМО

Resources

Stars

Watchers

Forks

Contributors