/Java-Quiz-bot

Spring boot java telegram bot for quiz

Primary LanguageJava

Java-Quiz-bot

For 21 kagort )

Загрузка
Запуск бота
Настройка квиза
Контакты

Этот бот я написал в рамках своего ПЭТ проекта после получения диплома Java разработчика в Yandex practicum На данный момент бот использует стеки и версии библиотек:
Amazon corretto : 17
Spring Boot : 3.1.0
Telegrambots : 6.8.0
TelegramLongPollingBot

В планах - дальнейшее развитие. Roadmap по развитию пришлю по запросу.
Если у вас есть желание поучаствовать в развитие проекта, контакты внизу страницы ))

#Использование Бот на данный момент не является коммерческим проектом, поэтому разрешено его использование без ограничений
(кроме случаев, предусмотренных законодательством РФ)

Настройка и запуск

Загрузка

В виде репозитория Клонируем репозиторий

git clone git@github.com:alex-from-90/Java-Quiz-bot.git

Скачиваем на свой локальный компьютер

git pull
    
В виде zip архива

https://github.com/alex-from-90/Java-Quiz-bot/archive/refs/heads/master.zip

Распаковываем архив в любое место на локальном компьютере и открываем в intelligent idea

Настройка
Для работы бота требуется токен, полученный от телеграмма. Что бы получить токен, заходим в телеграмм и в строке поиска вводим - botfather

После приветствия появятся команды управления вашими ботами выбираем
/newbot - create a new bot


Придумываем и отправляем имя для своего бота

В следующем шаге нужно придумать nic бота, по которому пользователи смогут обращаться к нему.

Ник обязательно должен содержать слово _bot в конце

После успешного создания бота, вам будет выдан токен

Use this token to access the HTTP API: какой то набор символов

Записываем или копируем этот набор и вставляем в фаил
config.properties
Путь к файлу:
bot -> src - > main -> resources

bot.name = Ник бота (которое заканчивается на _bot)
bot.token = Полученный токен
bot.chatId = если планируете разместить бота в группе, получите id группы (можно оставить пустым)
bot.messageThreadId = Если группа содержит темы, получите id темы (можно оставить пустым)

Запуск

Для запуска бота достаточно перейти в intelligent idea в папку bot -> src - > main -> java -> com.quiz.bot
и запустить BotApplication.java


Далее находите своего бота в поиске телеграмм по нику и проверяете работоспособность ))
Добавление бота в группу происходит по простому поиску бота по нику.

Развертывание бота в докере
Для удобства развертывания в докере вы можете использовать docker-compose.yml который находится в корне проекта.

  • Открываем проект с ботом в intelligent idea
  • Выполняем в командной строке
maven clean package
  • запускаем на исполнение docker-compose.yml
    (Не забудте выбрать current file при запуске, что б конфигурация run запустила именно этот фаил, а не весь проект)
    Образ докера создастся и запустится автоматически

Для непрерывной работы бота рекомендуется сделать деплой бота на сервер. Подойдёт любой с возможностью деплоя java или установкой docker`a

Квиз

Создание вопросов для квиза Вопросы с ответами для квиза пока что находятся в файле polls.json Путь к квизам:
bot -> src - > main -> resources

Квизы представляют собой обычный json, но имеется ряд ограничений.
Вопрос или ответ не должен превышать 300 символов. Это ограничение телеграмма на викторины
Старайтесь не использовать спец символы в вопросах или ответах.
Если же они нужны по условию, добавьте их в метод

escapeSpecialCharacters

Шаблон формата json

[
{
"question": "Какой метод используется для вывода текста в консоль?",
"options": [
"print()",
"console.log()",
"System.out.println()",
"echo()"
],
"correctAnswer": "System.out.println()"
},
{
"question": "Второй вопрос:",
"options": [
"1 ответ",
"2 ответ"
],
"correctAnswer": "Правильный ответ"
}
]

Контакты

Пожелания и предложения принимаются в группе телеграмм или на почту:

https://t.me/java_yandex_practicum (Алексей - N911)

freelance@site-n.ru