353.51K

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. Проведено тестирование (подтверждена эффективность)

11.

СТАТИСТИКА

12.

СТАТИСТИКА
English     Русский Rules