Skip to content

BrightGir/itmo-booking-bot

Repository files navigation

🤖 Kot-Booking Bot

Telegram бот для бронирования спортивных занятий в ITMO

Kotlin Gradle SQLite alt text

📖 О проекте

Kot-Booking — это умный Telegram бот, который помогает студентам ITMO бронировать спортивные занятия. Бот интегрируется с внутренней системой университета и позволяет:

  • 🏃‍♂️ Просматривать доступные занятия
  • 📅 Бронировать места на тренировки
  • 📋 Отслеживать свои бронирования
  • ❌ Отменять бронирования
  • 🔄 Автоматически записываться в очередь при отсутствии мест

🚀 Быстрый старт

Требования

  • JDK 17+
  • Gradle 8.5+
  • SQLite (встроен в приложение)

1. Клонирование

git clone https://github.com/BrightGir/itmo-booking-bot
cd kot-booking

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

Создайте .env файл или установите переменные окружения:

# Токен Telegram бота (получить у @BotFather)
export BOT_TOKEN="your_telegram_bot_token"
# Ключ шифрования токенов (минимум 32 символа)
export ENCRYPTION_KEY="your-super-secret-encryption-key-here"
export DATASOURCE_URL="jdbc:sqlite:/data/kot-booking.db"

3. Запуск

docker compose up --build

⌨️ Основные команды

Бот управляется с помощью простых команд. Вот основные из них:

Команда Описание Пример использования
/start Запуск бота и отображение приветственного сообщения. /start
/login Авторизация в системе my.itmo /login itmo_student@mail.ru your_password
/logout Выход из системы. /logout
/show Показывает список доступных занятий. Можно использовать ключевые слова для поиска. /show
/show плавание
/show Кронверкский
/bookings Отображает все ваши активные бронирования с возможностью их отмены. /bookings
/book Забронировать место или записаться /book 43243
/delbook Отменить бронирование /delbook 43243

🏗 Архитектура

Проект разделен на два модуля:

📦 kot-booking-core

  • Базовый фреймворк для создания Telegram ботов с функцией бронирования.
  • Включает в себя обработку команд и callback'ов, управление состоянием пользователей, пагинацию, локализацию и общую конфигурацию.

📦 kot-booking-itmo

  • Конкретная реализация логики для системы бронирования ИТМО.
  • Отвечает за интеграцию с API ИТМО, процессы аутентификации, управление бронированиями и логику автозаписи.

📝 Лицензия

Этот проект распространяется под лицензией MIT License.

⚠️ ВАЖНОЕ ЗАЯВЛЕНИЕ (DISCLAIMER)

Этот бот является неофициальным сторонним проектом и не имеет отношения к администрации, студенческому совету или IT-отделу ИТМО.

  1. Использование на свой риск: Бот взаимодействует с непубличным API ИТМО. Автор не несет ответственности за любые последствия, включая, но не ограничиваясь:
    • Сбои в бронировании или его отмене.
    • Временную или постоянную блокировку вашего аккаунта ИТМО.
    • Любой ущерб, вызванный изменениями в API или неверной работой бота.
  2. Отсутствие гарантий: Проект предоставляется "КАК ЕСТЬ" (AS IS), без каких-либо гарантий работоспособности.

Используйте этот инструмент осознанно.

About

Smart Telegram bot for ITMO students. It helps reserve sports classes, manage bookings, and automatically join the queue when spots are full.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors