Similar presentations:
kursovaya-3
1.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ имени И.С. ТУРГЕНЕВА»
РАЗРАБОТКА ИНСТРУМЕНТА НА ПЛАТФОРМЕ ВКОНТАКТЕ
ДЛЯ ПОЛУЧЕНИЯ РАСПИСАНИЯ ЗАНЯТИЙ В
УНИВЕРСИТЕТЕ
Выполнил студент очной формы обучения
3 курса группы 31 ПМ
физико-математического факультета
Лысенко Андрей Ильич
Научный руководитель:
к.ф.-м.н., доцент Федяев Ю.С.
2.
АКТУАЛЬНОСТЬПроблема:
• С 2025 года в Орловской области действуют ограничения мобильного интернета (механизм
«белых списков»)
• Доступность к сайтам университетов и сервисам расписания затруднилась
• Студенты потеряли доступ к актуальному расписанию при использовании мобильного
интернета
Решение:
• Платформа ВКонтакте остаётся доступной
• Разработка чат-бота для получения расписания в обход ограничений
3.
СТЕПЕНЬ ИССЛЕДОВАННОСТИАнализ существующих подходов:
Способ
Недостатки
PDF-файлы на сайте вуза
Неудобны на мобильных, большой расход
трафика
Требуют установки, не работают при
ограничениях
Зависимость от партнёрства с вузом
Мобильные приложения
Приложения-агрегаторы («Кампус»)
Вывод: наиболее перспективным является чат-бот для ВКонтакте. Он не требует установки,
работает в привычной среде, сохраняет доступность при ограничениях.
4.
ЦЕЛЬ И ЗАДАЧИ ИССЛЕДОВАНИЯЦель: разработать и программно реализовать инструмент на платформе ВКонтакте для
получения актуального расписания занятий в условиях ограничения доступа к интернету.
Задачи:
1. Провести анализ способов предоставления расписания в российских вузах
2. Изучить структуру API системы расписания ОГУ им. И.С. Тургенева
3. Спроектировать архитектуру программного комплекса
4. Реализовать бота для социальной сети «ВКонтакте»
5. Выполнить тестирование и оценить эффективность
5.
ПОСТАНОВКА ЗАДАЧИИсходные данные:
• Расписание доступно на сайте oreluniver.ru/schedule
• Официальный API отсутствует
• Сервер требует заголовок X-Requested-With: XMLHttpRequest
• Сервер проверяет географическое положение клиента, требуется прямое соединение
Требования к разрабатываемому инструменту:
• Работать через платформу ВКонтакте
• Автоматически получать актуальное расписание
• Поддерживать студентов и преподавателей
• Быть отказоустойчивым при недоступности API
6.
ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ И ИНСТРУМЕНТЫКомпонент
Технология
Язык программирования
C# DOTNET 10
База данных
SQLite + Entity Framework Core
HTTP-запросы
HttpClient + System.Text.Json
Взаимодействие с VK
VkNet
Механизм получения событий
Long Poll API
7.
АРХИТЕКТУРА ПРОГРАММНОГО КОМПЛЕКСАУровни архитектуры:
1. Уровень взаимодействия с VK API — приём/отправка сообщений
2. Уровень маршрутизации (Listener) — Navigation, Schedule, Setup
3. Уровень бизнес-логики — управление расписанием, кэширование, настройка
4. Уровень доступа к данным — API вуза + SQLite
5. Уровень хранения — БД + JSON-файлы
Ключевые компоненты:
• BaseAPI — работа с HTTP, rate limiting, offline-режим
• CacheManager — кэширование расписания (снижение нагрузки в 10+ раз)
• BotListenerManager — маршрутизация на основе паттерна «Listener»
8.
ЭЛЕМЕНТЫ ИССЛЕДОВАНИЯ (РЕАЛИЗАЦИЯ КЛИЕНТА)Клиентский модуль UniverAPI:
• Наследует BaseAPI
• Реализует
методы:
GetDivisionsForStudents,
GetCourses,
GetScheduleByGroup
Пример запроса к API университета:
1
request.Headers.Add("x-requested-with", "XMLHttpRequest");
2
var response = await client.GetAsync(
3
$"/schedule/{groupId}///{timestamp}/printschedule");
Особенности:
• 2 запроса/секунду
• 5 ошибок за 10 минут → offline на 30 минут
GetGroups,
9.
РЕЗУЛЬТАТЫ РАБОТЫСтатистика использования (июнь 2026):
• Зарегистрировано: 2 521 пользователь
• Активных групп: 452
• Запросов за 3 месяца: более 630 000
Пиковые нагрузки
• 2 июня 2026: 13 934 запроса
• 1 июня 2026: 10 197 запросов
• 11 мая 2026: 9 812 запросов
Эффективность кэширования:
• Время ответа без кэша: 1,5–3 сек
• Время ответа с кэшем: 0,05–0,2 сек
Бот
доступен
по
адресу
https://vk.ru/oreluniver_schedule
10.
ЗАКЛЮЧЕНИЕЦель достигнута: разработан и внедрён VK-бот для получения расписания в условиях
ограничения мобильного интернета.
Решённые задачи:
1. Проанализированы способы предоставления расписания
2. Изучен недокументированный API ОГУ
3. Спроектирована модульная архитектура
4. Реализован бот на .NET + SQLite
5. Проведено тестирование (подтверждена эффективность)