← Все проекты

Расписание РГЭУ

Неофициальное приложение для студентов РГЭУ. Расписание, аудитории, личный кабинет и Moodle в одном месте.

Год
2025–2026
Статус
в использовании
Роль
Один разработчик — дизайн, Android, интеграции
Стек
Kotlin · Jetpack Compose · Material 3 · Navigation Compose · Jetpack Glance · Android Keystore · WebView · WorkManager
Экран расписания группы ИСТ-331 с карточками зачётов и бейджем «Сегодня»
Задача
Собрать в одном приложении то, что у вуза разбросано по трём сайтам: расписание, личный кабинет и Moodle.
Пользователи
Моя учебная группа пользуется приложением каждый день.
Платформа
Android 7.0+, Kotlin, Jetpack Compose, Material 3.
Избранные группы и преподавателиИзбранное
Поиск по ~1560 группам и преподавателямПоиск
Расписание группы ИСТ-331 по неделямРасписание
Личный кабинет студента с успеваемостьюКабинет
Облик «Основной», светлая тема. Нижняя навигация: Избранное, Поиск, Аудитории, Кабинет.

Поиск свободных аудиторий

Фича, которой нет на сайте вуза

Проблема
API расписания не умеет искать по аудиториям. Чтобы узнать, свободна ли 303, нужно открыть расписания всех групп.
Решение
Приложение само строит индекс занятости на устройстве.

Приложение обходит расписания примерно 1560 групп и преподавателей, по 8 запросов одновременно, и складывает индекс «аудитория → когда занята». Индекс кэшируется в файл и работает без сети.

Как строится индекс аудиторий
1560расписаний обойдено
173аудиторий в индексе
  1. API вуза не умеет искать по аудиториям.
  2. Приложение обходит расписания всех групп и преподавателей, по 8 запросов одновременно.
  3. Из каждого занятия берётся аудитория и время.
  4. Индекс «аудитория → когда занята» сохраняется в файл и работает без сети.
Список из 173 аудиторий с числом занятий в расписанииАудитории
Занятость аудитории по днямАудитория
Список аудиторий с числом занятий и экран аудитории с выбором даты.

Вход в личный кабинет

Проблема
Портал отклоняет вход у не-браузерных клиентов.
Решение
Вход через скрытый WebView, данные входа шифруются в Android Keystore.

Логин и пароль хранятся только на устройстве. Когда сессия истекает, приложение тихо входит заново.

Три облика

Основной, Газета и РГЭУ(РИНХ): у каждого своя светлая и тёмная тема, плюс динамические цвета Android 12+. Виджет на Jetpack Glance — ещё 5 тем.