ВКИ НГУ (PWA)
Расписание занятий и студенческий сервис ВКИ НГУ





О проекте и концепция
ВКИ НГУ PWA — это высокоскоростное мобильное веб-приложение и Telegram Mini App, развернутое для студентов и преподавателей Высшего колледжа информатики НГУ. Сервис решает проблему доступа к актуальному расписанию занятий, работает полностью оффлайн и мгновенно адаптируется под любые мобильные устройства.
Ключевые возможности
- Фронтенд на React 19 + Vite 6 + SCSS с интеграцией PWA (vite-plugin-pwa) и Lottie
- Высокоскоростной асинхронный API-бэкенд на Python & FastAPI с ORM Tortoise и PostgreSQL
- Оффлайн-доступ к расписанию через Service Worker & Cache Storage
- Встроенная система Web Push уведомлений (VAPID) и автопарсер расписания групп/преподавателей
Инженерные вызовы и решения
Парсинг нестабильной структуры файлов расписания
Исходные файлы расписания колледжа имеют нарушенную ячеистую структуру, частые объединения строк и опечатки в именах.
Создан отказоустойчивый парсер на Python с библиотеками openpyxl, pandas и pymupdf, нормализующий строки по регулярным выражениям.
Работа приложения в подвальных помещениях без интернета
Студенты часто сверяются с расписанием внутри аудиторий, где мобильная сеть и Wi-Fi полностью отсутствуют.
Интегрирован Service Worker со стратегией кэширования Stale-While-Revalidate, сохраняющий API-ответы и статику локально.
Информирование об изменениях в расписании
Пользователи пропускают важные замены пар из-за отсутствия времени на ручную проверку сайта колледжа.
Разработан сервис подписок и отправки мгновенных Web Push уведомлений (VAPID) при обнаружении обновлений парсером.
Выводы и вынесенный опыт
- PWA технологии идеально подходят для ежедневных мобильных сервисов.
- Работа в режиме offline-first кардинально улучшает удовлетворенность пользователей.