DOI: 10.12731/2227-930X-2023-13-4-22-36 УДК 004.67
Научная статья | Системный анализ, управление и обработка информации
АВТОМАТИЗАЦИЯ ПРОЦЕССА ИНФОРМИРОВАНИЯ УЧАСТНИКОВ УЧЕБНОГО ПРОЦЕССА НА ОСНОВЕ TELEGRAM
В.А. Чернов, Д.Р. Фатихов, А.Д. Рамазанов, Г.А. Гареева
В данной статье рассмотрен процесс создания Telegram бота, который бы автоматически присылал расписание занятий для студентов очной/заочной формы обучения день в день. Особенностью Telegram ботов является простота использования и минимизация ресурсов, что в значительной степени упрощает его создание и взаимодействие с ним.
Цель - создание удобный среды, в которой студент может с легкостью получить нужную информацию, потратив минимальное количество времени.
Метод или методология проведения работы: в статье рассматривается способ, в котором путем назначения учебной кафедры, как администратора, будет доступ для заполнения базы данных. Студентам, при запуске Telegram бота, единожды нужно будет указать форму обучения и группу. Для реализации используется база данных SQLite и язык программирования Python.
Результат: разработан инструмент, путем автоматизации которого студент будет всегда в курсе своего расписания, а для учебной части облегчится создание расписания для каждой группы.
Область применения результатов: данные, хранящиеся в базе данных, целесообразно использовать для получения информации в учебной жизни.
Ключевые слова: Python; SQLite; Telegram бот; автоматизация; программирование; база данных; студент; расписание; информация; мессенджер; приложение; диалог; интернет; учебные занятия
Для цитирования. ЧерновВ.А., Фатихов Д.Р., Рамазанов А.Д., Гареева Г.А. Автоматизация процесса информирования участников учебного процесса на основе Telegram //International Journal of Advanced Studies. 2023. Т. 13, № 4. С. 22-36. DOI: 10.12731/2227-930X-2023-13-4-22-36
Original article | System Analysis, Management and Information Processing
OPTIMIZATION OF THE LEARNING PROCESS BY AUTOMATION OF OBTAINING THE SCHEDULE BASED ON TELEGRAM
V.A. Chernov, D.R. Fatikhov, A.D. Ramazanov, G.A. Gareeva
This article describes the process of creating a Telegram bot that would automatically send class schedules for full-time/part-time students on a daily basis. A feature of Telegram bots is - simplicity of use and minimization of resources, which greatly simplifies its creation and interaction with it.
Purpose - create a convenient environment in which the student can easily get the information he or she needs, spending a minimum amount of time.
The method or methodology of the work: the article deals with the way in which by appointing the academic department as the administrator, there will be access to fill the database. Students, when starting the Telegram bot, once will need to specify the form of study and the group. To implement it, the following are used a SQLite database and the Python programming language are used in the implementation.
Result: developed a tool that automates the student will be aware of his schedule, and for the educational part it is easier to create a schedule for each group.
Scope of the results: the data stored in the database is reasonable to use to obtain information in the academic life.
Keywords: Python; SQLite Telegram bot; automation; programming; database; student; schedule; information; messenger; application; dialogue; internet; study life
For citation. Chernov V.A., Fatikhov D.R., Ramazanov A.D., Gareeva G.A. Optimization of the Learning Process by Automation of Obtaining the Schedule Based on Telegram. International Journal of Advanced Studies, 2023, vol. 13, no. 4, pp. 22-36. DOI: 10.12731/2227-930X-2023-13-4-22-36
Введение
Информационные технологии охватывают всё более разнообразные аспекты нашей жизни. С каждым днем люди стараются упростить жизнь при решении различных задач. Студенты и школьники - самая большая группа людей, которая активно пользуется благами интернета, различными электронными устройствами. Им интересно наблюдать за развитием интернета не только в обычной жизни, но и во время учебы.
ВУЗы и другие учебные заведения, в основном, имеют собственный сайт или площадку в других информационных сетях, в которых они оповещают своих студентов и их родителей, а также преподавателей о тех или иных событиях в жизни учебного заведения. Но не всем удобно посещать сайты своего учебного заведения, постоянно заходить в свою учетную запись, чтобы узнать о каких-либо изменениях. Поэтому постоянно следить за новостями и стараться быть в курсе событий - необходимо.
Цель работы: разработать программный продукт, который мог бы содержать всю необходимую информацию для обучающихся и преподавателей.
Есть несколько способов решения данной задачи: Первый способ - создание отдельного мобильного приложения, который можно будет установить себе на телефон и уже через него получать актуальную информацию.
Второй способ - создание Telegram бота, который бы выполнял аналогичные действия.
Так как первый способ более энерго и денежно затратен, то выбор, очевидно, падает на второй способ решения.
Чтобы достичь поставленных целей исследования необходимо:
• исследование информации с сайта учебного заведения;
• разработка и развитие проекта, которое позволило бы посредством диалога обеспечить необходимой информацией пользователя;
• проверка работоспособности готового проекта.
В качестве ответа от базы данных будет предоставлен массив, который содержит следующую информацию:
• номер группы;
• форма обучения;
• название предмета;
• дата;
• номер аудитории;
• время проведения занятий;
• ФИО преподавателя.
Готовый проект состоит из следующих элементов:
• главной страницы;
• модуля взаимодействия с базой данных;
• скрипта для обновления базы данных.
После краткого описания будущего проекта, необходимо:
• проанализировать, каким образом осуществляется диалог между пользователем и самим Telegram ботом;
• провести итоговое тестирование.
Для написания Telegram бота необходимо выбрать язык программирования и библиотеку для данного языка. Для решения по-
ставленных задач был выбран язык Python, отличающийся большим количеством библиотек и высокой скоростью разработки.
На компьютере работает интерпретатор Python, а внутри интерпретатора крутится программа Python. Она отвечает за весь контент: в неё заложены данные с базы данных SQLite, все шаблоны текста, логика и поведение.
Внутри программы на Python работает библиотека, которая отвечает за общение с сервером Telegram. В самой библиотеке находится секретный ключ, чтобы сервер Telegram понимал, что код связан с определенным ботом.
Когда студент запрашивает у бота расписание, запрос приходит на сервер, а сервер отправляет его на компьютер. Запрос обрабатывается программой Python, полученный ответ идет на сервер Telegram, сервер отправляет ответ в бота.
Пошаговый план создания Telegram бота:
• регистрация бота в Telegram:
В поиске Telegram необходимо найти канал @BotFather и нажать «Начать» (рис. 1).
Рис. 1. Создание Telegram бота
После этого ввести команду /newbot. Бот по очереди спросит название и никнейм. После этого бот выдаст HTTP API, как на рисунке 2.
• установка Python-библиотеки для работы с Telegram.
• добавление библиотеки в программу и учение реагировать на сообщения в чате.
• написание кода, который будет обрабатывать все запросы.
• привязка к коду базы данных SQLite, с которой он будет получать и обновлять информацию в боте.
Рис. 2. Получение HTTP API
В первой части кода находится приветствие и обработка пользователя, как на рисунке 3.
Во второй части кода находится основная часть, которая отвечает за ответ на запрос пользователя (рис. 4).
1 import asyncpg
2 from aiogram import types
3 from aiogram.types import Message, ReplyKeyboardRemove
4 from aiogram.dispatcher.filters.builtin import CommandStart, Text
5 from loader import dp, bot
6 from utils.db_api import quick_commands as commands
7 from aiogram.dispatcher import FSMContext
8 from states.botStates import StatesOfBot
9 from keyboards.default.choice_stud_or_teach_kb import choice_kb
16
11
12 @dp.niessage_handler{CammandStart(), state=None)
13 async def command_start(message: types.Message, state: FSMContext):
14
await message.answer(f1 % Здравствуйте, {message.from_user.full_name}J\n'
16 f'Кем вы являетесь?', reply_markup=choice_kb)
17
18 await StatesOfBot.start_state.set[()|
Рис. 3. Код Telegram бота
gdp. яе s sageha rid 1er ( t ext = " Пои ск" )
async def search_keyboard(message: Message):
await message.answer(f"Выберите то, что нужно найти", reply_markup=searchbutton)
^dp. callbackqueryhandler(text_contains-"bchedule_forspecday") async def schedule_for_a_specific_day(call: CallbackQuery): await call.answer(cache_time=60)
await bot.delete_message{message_id=call.message.messageid,
chat_id=call.message.chat.id) await call.message.answer('Укажите дату, на которую нужно найти расписание.
2020-11-66 (год-месяц-день)') await StatesOfBot.search_by_spec_day.set()
fidp.яе 5 sage_ha ndler(s tat e=StatesOfBot.search_by_spec_day)
async def search_timetable_by_specific_day(ntessage: Message, state: FSMContext): global data today
user = await commands.select_user(id=ii)essage.fron_u5er.id) group_name = user.nane_group
try:
data_today = datetime.strptime(message.text, "%Y-Sm-%d") except ValueError:
await message.answer{"некорректный ввод датыЛп"
"Введите дату в соответствии [с] образцом.")
await state.finish()
data = await get_data_from_google(data_today)
reformatjlata = re.sub('n\s+|\n|\r|\s+$', data[e][8])
if user.nane_group != "None":
timetable = await find_timetable_by_group(data, group name) timelessons = |"0", "08:06 - 09:36", "9:40 - 11:10", "11:36 - 13:00", "13:10 - 14:46", "15:96 - 16:30", "16:40 - 18:16", "18:15 - 19:4Ejnj reforms t_t imetable = timetable.split{"\n") div_info_lesson = []
for i in reformattimetable:
try:
name_teacher = re.search{
r-\S([g-fl](.)'\S[§-B][§-fl][,](.)'\S[S-fl][g-fl]|fl-i](.)«\S[g-fl][§-fl]\H4@-s]......ч§-янй-я]1ч8-«1.......\stB-"] A-»])".
i).g™uK9)
Рис. 4. Код Telegram бота
В третьей части кода находится обработчик, который отвечает на большое количество запросов со стороны пользователя (рис. 5).
>rt asyncio
from aiogram import types, Dispatcher
from aiogram.dispatcher import DEFAULTRATELIMIT
from aiogram.dispatcher.handler import CancelHandler, currenthandler
from aiogram.dispatcher.middlewares import BaseMiddleware
from aiogram.utils.exceptions import Throttled
class ThrottlingMiddleware(BaseMiddleware): Simple middleware
def _init_(self, limit=DEFAULT_RATE_LIMIT, key_prefix='antiflood_'):
self.rate_limit = limit
self.prefix = key_prefix
super(ThrottlingMiddleware, self)._init_()
# noinspection PyUnusedLocal
async def on_process_message(self, message: types.Message, data: diet): handler = current_handler.get() dispatcher = Dispatcher.get_current() if handler:
limit = getattr(handler, ,throttling_rate_liinit', self.ratelimit)
key = getattr(handler, 'throttling_key', f"{self.prefix}_{handler._name_}")
else:
limit = self.rate_limit key = f"{self.prefix}_message"
try:
await dispatcher.throttle(key, rate=limit) except Throttled as t:
await self.message_throttled(message, t) raise CancelHandler()
async def message_throttled(self, message: types.Message, throttled: Throttled): delta = throttled.rate - throttled.delta if throttled.exceededcount == 2:
await message.reply("Слишком иного запросов. \n"
"Попробуйте нажать снова через 10 секунд") elif throttled.exceeded_count == 3:
await message.гер1у("Превышено количество запросов. \n"
"Кнопка станет доступной для нажатия через минуту") await asyncio.sleep|)delta|
Рис. 5. Код Telegram бота
Студент может легко получать расписание в Telegram боте и узнавать об актуальной информации, перейдя к простому поиску в самом приложении «Telegram» в правом верхнем углу (рис. 6).
0ЕШ2Э
lté m ]• © Отмена
Файлы My 3i
09:18 Q. ncf_kaibot
Чаты Медиа Загрузки Ссылки ЧАТЫ И КОНТАКТЫ ^^ NCFKAI
СООБЩЕНИЯ
BotFather ©
Done] Congratulations on your new bot. You will find it at t.me/NCF_KAIbot. You can now a...
BotFather
ig, NCF_KAIbot
09:17
Рис. 6. Результат поиска Telegram бота
Для запуска Telegram бота необходимо нажать кнопку «Начать», либо вручную ввести команду при помощи клавиатуры «/start» (рис. 7).
Рис. 7. Начальная страница
После старта необходимо будет при помощи кнопок выбрать свою форму обучения, курс, номер группы. После чего автоматически будет приходить информация.
Алгоритм работы Telegram бота представлен на рисунке 8. Работа с Telegram ботом включает в себя следующие этапы:
1. Пользователь отправляет в текстовом формате номер группы.
2. Программа распознает номер группы.
3. Запускается поиск в элементах базы данных.
4. При обнаружении программа предоставит информацию. В противном случае отобразится надпись: «Группа не найдена».
5. Далее, при любых изменениях в расписании пользователь будет получать измененную информацию.
/start Ввел данные Получил информацию
Пользователь
активировал бота
Рис. 8. Алгоритм работы Telegram бота Результат работы
Таким образом, на основе языка программирования Python и базы данных SQLite был разработан программный продукт, в результате которого студент может с легкостью получить нужную информацию, потратив минимальное количество времени. Процесс получения информации был оптимизирован путем создания бота, который информирует участников учебного процесса о каких-либо изменениях.
Список литературы
1. Джеймс Р. Грофф. SQL. Полное руководство / Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель. СПб.: Вильямс, 2019.
2. Федоров Д.Ю. Программирование на языке высокого уровня Python: учебное пособие для прикладного бакалавриата. Москва: Издательство Юрайт, 2019.
3. Тугов В.В. Проектирование автоматизированных систем управления: учебное пособие / В.В. Тугов, А.И. Сергеев, Н.С. Шаров. Санкт-Петербург: Лань, 2019. 172 с.
4. Модели и методы исследования информационных систем: монография / А.Д. Хомоненко, А.Г. Басыров, В.П. Бубнов [и др.]. Санкт-Петербург: Лань, 2019. 204 с.
5. Златопольский Д.М. Основы программирования на языке Python. М.: ДМК Пресс, 2017. 284 с.
6. Прохоренок Н.А. Python 3 и PyQt. Разработка приложений. СПб.: БХВ-Петербург, 2012. 704 с.
7. Пономарева Л.А., Чискидов С.В., Ронжина И.А., Голосов П.Е. Проектирование компьютерных обучающих систем: Монография. М-во образования и науки РФ, РАНХиГС, МГПУ ИЦО. Тамбов: Консалтинговая компания Юком, 2018. 120 с.
8. Бенгфорт Б. Прикладной анализ текстовых данных на Python. Машинное обучение и создание приложений обработки естественного языка. СПб.: Питер, 2019. 368 с.
9. Виноградова Е.Ю. Интеллектуальные информационные технологии - теория и методология построения информационных систем: монография / М-во образования и науки РФ, Урал. гос. экон. ун-т. Екатеринбург: Изд-во Урал. гос. экон. ун-та, 2011. 263 с.
10. Насибулин Р.О. Создание простого бота модератора для мессен-джера Telegram с помощью языка программирования Python / Р.О. Насибулин, Г.А. Гареева // Молодежь и системная модернизация страны: Сборник научных статей 7-й Международной научной конференции студентов и молодых ученых. В 5-ти томах, Курск, 19-20 мая 2022 года / Отв. редактор М.С. Разумов. Том 3. Курск: Юго-Западный государственный университет, 2022. С. 425-427.
11. Гареева Г.А. Разработка HR-бота для автоматизации процесса подбора персонала в производственном предприятии / Г. А. Гареева, И.М. Сафонов, З. Г. Джибладзе [и др.] // Научно-технический вестник Поволжья. 2023. № 1. С. 52-55.
1. Alex Root Jr. Aiogram Documentation, November 2022. https:// readthedocs.org/projects/aiogram/downloads/pdf/latest/
2. David Love. Tkinter GUI Programming by Example. Packt Publishing, 2018. 340 p.
3. Hans-Jürgen Schönig Mastering PostgreSQL 13 - Fourth Edition: Build, administer, and maintain database applications efficiently with PostgreSQL 13. Packt Publishing, 2020. 476 p.
4. Baji Shaik, Avinash Vallarapu Beginning PostgreSQL on the Cloud: Simplifying Database as a Service on Cloud Platforms. Apress, 2018. 381 p.
References
1. James R. Groff. SQL. Polnoe rukovodstvo [SQL. A complete guide] / James R. Groff, Paul N. Weinberg, Andrew J. Oppel. SPb: Williams, 2019.
2. Fedorov D.Yu. Programmirovanie na yazyke vysokogo urovnya Python: uchebnoeposobie dlyaprikladnogo bakalavriata [Programming in the high-level language Python: textbook for applied bachelor's degree]. Moscow: Yurait Publishing House, 2019.
3. Tugov V.V. Proektirovanie avtomatizirovannykh sistem upravleniya [Designing automated control systems] / V.V. Tugov, A.I. Sergeev, N.S. Sharov. Saint-Petersburg: Lan, 2019, 172 p.
4. Modeli i metody issledovaniya informatsionnykh sistem [Models and methods of information systems research] / A.D. Khomonenko, A.G. Basyrov, V.P. Bubnov [et al.]. St. Petersburg: Lan, 2019, 204 p.
5. Zlatopol'skiy D.M. Osnovy programmirovaniya na yazyke Python [Fundamentals of programming in the Python language]. M.: DMK Press, 2017, 284 p.
6. Prokhorenok N.A. Python 3 i PyQt. Razrabotka prilozheniy [Python 3 and PyQt. Application development]. SPb.: BHV-Peterburg, 2012, 704 p.
7. Ponomareva L.A., Chiskidov S.V., Ronzhina I.A., Golosov P.E.
Proektirovanie komp'yuternykh obuchayushchikh sistem [Designing computer learning systems]. Tambov: Consulting company Yukom, 2018, 120 p.
8. Bengfort B. Prikladnoy analiz tekstovykh dannykh na Python. Mash-innoe obuchenie i sozdanie prilozheniy obrabotki estestvennogo ya-zyka [Applied textual data analysis in Python. Machine learning and building natural language processing applications]. SPb.: Piter, 2019, 368 p.
9. Vinogradova E.Yu. Intellektual'nye informatsionnye tekhnologii - te-oriya i metodologiya postroeniya informatsionnykh sistem [Intellectual information technologies - theory and methodology of building information systems]. Yekaterinburg: Ural State University of Economics, 2011, 263 p.
10.Nasibulin R.O., Gareeva G.A. Molodezh'i sistemnaya modernizatsi-ya strany: Sbornik nauchnykh statey 7-y Mezhdunarodnoy nauchnoy konferentsii studentov i molodykh uchenykh. V 5-ti tomakh, Kursk, 19-20 maya 2022 goda [Youth and system modernization of the country: Collection of scientific articles of the 7th International Scientific Conference of Students and Young Scientists. In 5 volumes, Kursk, May 19-20, 2022] / ed. M.S. Razumov. Tom 3. Kursk: South-West State University, 2022, pp. 425-427.
11. Gareeva G.A., Safonov I.M., Dzhibladze Z.G. [et al.] Nauchno-tekh-nicheskiyvestnikPovolzh'ya, 2023, no. 1, pp. 52-55.
12. Alex Root Jr. Aiogram Documentation, November 2022. https:// readthedocs.org/projects/aiogram/downloads/pdf/latest/
13. David Love. Tkinter GUI Programming by Example. Packt Publishing, 2018, 340 p.
14. Hans-Jürgen Schönig Mastering PostgreSQL 13 - Fourth Edition: Build, administer, and maintain database applications efficiently with PostgreSQL 13. Packt Publishing, 2020, 476 p.
15. Baji Shaik, Avinash Vallarapu Beginning PostgreSQL on the Cloud: Simplifying Database as a Service on Cloud Platforms. Apress, 2018, 381 p.
ДАННЫЕ ОБ АВТОРАХ
Чернов Вадим Алексеевич, студент
Казанский национальный исследовательский технический
университет им. А.Н. Туполева-КАИ
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
mercsllflezai@gmail.com
Фатихов Динар Ринатович, студент
Казанский национальный исследовательский технический
университет им. А.Н. Туполева-КАИ
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
d.fatikhov@mail.ru
Рамазанов Азат Данилович, студент
Казанский национальный исследовательский технический
университет им. А.Н. Туполева-КАИ
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
azatasd95@gmail.com
Гареева Гульнара Альбертовна, заведующий кафедрой Информационных систем, канд. пед. наук, доцент Казанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ ул. Академика Королева, 1, г. Набережные Челны, 423814, Российская Федерация gagareeva1977@mail. ru
DATA ABOUT THE AUTHORS
Vadim A. Chernov, student
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation mercsllflezai@gmail.com
Dinar R. Fatikhov, student
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation d.fatikhov@mail.ru
Azat D. Ramazanov, student
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation azatasd95@gmail.com
Gulnara A. Gareeva, Head of the Department of Information Systems, Candidate of Pedagogical sciences, Associate professor
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation gagareeva1977@mail. ru SPIN-code: 3279-8465 Scopus Author ID: 36801593200 ResearcherID: М-1728-2015 ORCID: https://orcid.org/0000-0002-8539-4541
Поступила 19.04.2023
После рецензирования 09.06.2023
Принята 06.09.2023
Received 19.04.2023 Revised 09.06.2023 Accepted 06.09.2023