Skip to content

dapadz/telezoom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telezoom

Telezoom — дипломный проект, представляющий собой Telegram-бота для создания Zoom-встреч.
Приложение позволяет авторизовать пользователей, создавать конференции прямо из Telegram и, при необходимости, приглашать конкретных участников в закрытую встречу.

Проект реализован на Java 17 с использованием Spring Boot, Telegram Bots API, Zoom API, JWT и SQLite.

Идея проекта

Цель Telezoom — упростить процесс создания онлайн-встреч и сократить количество ручных действий при организации конференций в Zoom.

Пользователь взаимодействует с Telegram-ботом через команды или web-интерфейс внутри Telegram.
После авторизации бот может:

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

Основные возможности

  • Авторизация пользователей через команду /login
  • Создание встреч в Zoom через команду /create
  • Поддержка открытых и закрытых встреч
  • Приглашение конкретных пользователей по username
  • Интеграция с Zoom API через JWT
  • Хранение данных пользователей в SQLite
  • Поддержка Web App / web-формы для создания встречи через интерфейс внутри Telegram

Стек технологий

  • Java 17
  • Spring Boot 3
  • Telegram Bots API
  • Zoom REST API
  • JWT (jjwt)
  • SQLite
  • Jackson
  • Gradle

Архитектура проекта

Проект разделён на несколько логических слоёв:

bot

Содержит Telegram-бота, команды, обработчики сообщений и стратегию выполнения команд.

config

Конфигурация приложения, создание бинов, настройка бота и JWT-генератора.

data

Работа с базой данных и внешними REST-запросами:

  • data_base — доступ к SQLite
  • rest — работа с Zoom API, DTO и request-моделями

domain

Бизнес-логика приложения:

  • модели
  • репозитории
  • use case для создания встреч

utils

Вспомогательные классы:

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

Как это работает

1. Авторизация пользователя

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

/login example@email.com

После этого бот сохраняет Telegram username, chat id и email пользователя в локальную базу данных.

2. Создание встречи

Пользователь может создать встречу через Telegram-команду или через web-интерфейс.

Пример команды:

/create "Team Sync" @user1 @user2

Бот:

  • обрабатывает команду
  • получает список участников
  • ищет их в базе данных
  • генерирует JWT для Zoom API
  • создаёт встречу в Zoom
  • отправляет результат инициатору
  • уведомляет приглашённых пользователей

3. Web App сценарий

В проекте также есть web-страница, где можно указать:

  • название встречи
  • дату и время
  • приглашённых пользователей

Если поля не заполнены, часть параметров может быть выбрана автоматически.

Структура команд

На текущий момент бот поддерживает следующие команды:

  • /start — стартовое взаимодействие с ботом
  • /create — создание встречи
  • /info — информация о доступных командах
  • /login — авторизация пользователя

Хранение данных

Для локального хранения пользователей используется SQLite.
В базе сохраняются:

  • shortname
  • chat_id
  • email

Это позволяет связывать Telegram-пользователей с email-адресами, которые затем используются для приглашения в Zoom-встречи.

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

В проекте используются следующие параметры конфигурации:

  • api.key — Zoom API key
  • api.secret — Zoom API secret
  • bot.name — имя Telegram-бота
  • bot.token — токен Telegram-бота

Перед запуском необходимо добавить эти параметры в файл конфигурации приложения или передавать их через переменные окружения.

Запуск проекта

1. Клонировать репозиторий

git clone https://github.com/dapadz/telezoom.git
cd telezoom

2. Настроить переменные/конфигурацию

Указать:

  • токен Telegram-бота
  • имя бота
  • Zoom API key
  • Zoom API secret

3. Запустить приложение

./gradlew bootRun

После запуска Spring Boot поднимет приложение, зарегистрирует Telegram-бота и начнёт принимать обновления.

Практическая ценность проекта

Telezoom демонстрирует, как можно объединить несколько технологий в одном прикладном решении:

  • Telegram как удобный пользовательский интерфейс
  • Zoom как платформа для видеоконференций
  • локальная база данных для хранения пользователей
  • Spring Boot как основа серверного приложения

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

Возможные улучшения

В дальнейшем проект можно расширить следующими возможностями:

  • полноценная система ролей и прав доступа
  • валидация email и username
  • редактирование и удаление встреч
  • история созданных конференций
  • уведомления и напоминания перед началом встречи
  • переход на PostgreSQL для production-сценариев
  • Docker-конфигурация для деплоя
  • тесты для бизнес-логики и команд бота

Статус проекта

Проект выполнен в рамках дипломной работы и демонстрирует навыки:

  • проектирования backend-приложения
  • работы с Telegram Bot API
  • интеграции с внешним REST API
  • организации бизнес-логики и слоистой архитектуры
  • хранения и обработки пользовательских данных

About

Дипломный проект: Telegram-бот для планирования и создания Zoom-конференций с JWT-аутентификацией, SQLite и web-интерфейсом.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors